QuickOPC User's Guide and Reference
Operational Methods Overview
Development Models > Imperative Programming Model > Operational Methods Overview
In This Topic

"Operational methods" are methods that communicate with the target environment (OPC servers etc.), directly or indirectly. Auxiliary methods, which may also exist on the objects, are not listed here.

Many methods exist in two forms:

In OPC, operations are much more effective if performed together in a group, at once. For example, doing a read of 100 values is much faster if performed at once, using the multiple-operation method, instead of repeatedly calling the single-operation method in a loop. For this reason, you should use the multiple-operation methods whenever possible. An exception to this rule are methods that act as substitute for event handlers (these methods are consistently named PullXXXX), where the recommendation is the opposite - you should normally use the single-operation method form instead.

Operational method naming conventions

The name of the operational method usually consists of a verb that denotes what the method does, and sometimes a noun which describes either the affected entity (such as in "ReadItem", or the outcome of the method (such as in "BrowseObjects").

Usually, the name of the multi-operation method is derived from the name of the single-operation method by using a plural instead of singular form of the noun (if it is present), and preceding the noun it with "Multiple" (or adding it at the end, when the noun is missing). For example, "ReadItem" becomes "ReadMultipleItems", and "Write" becomes "WriteMultiple". Such methods use an array of argument objects (one for each operation) as an input, and return an array of results (one for each operation again); the indexes in the output array correspond to the indexes in the input array.

When an input or output array is replaced by a list in the method signature, a word "List" appears at the end of the method name. This happens with all multiple-operation methods (where the word "Multiple" is removed then), and also with some single-operation methods where the argument or result happens to an array already.

Conceptually, the methods with "List" in their name are performing the same operations as those without it. Except where it is specifically needed, this documentation therefore does not refer to these methods explicitly. The name of the base method is used instead. For example, when this document talks about the "ReadMultipleValue" method, the method "ReadValueList" is also implied.

Legend to the tables

This chapter explains some of the notation used in the tables that follow:

When two or more methods appear in the table cell on the same line, separated by a comma, they perform precisely the same function, but differ only in the form of arguments accepted or results returned. Typically, this is with method that work with lists, that ar in addition to methods that work with arrays.

When multiple lines with different methods are listed inside a single table cell, then other methods with slightly different purpose are all derived (by extension) from the primary method listed in bold. This grouping helps you to understand the internal relations of the methods, where only a handful of primary methods is used to provide richer functionality, by means of method overloads, or methods with different names. The primary method is always the most general one and can always be used. It is, however, often more convenient to use the derived methods, which are more specialized, and give shorter and more understandable code.

Methods listed in the tables here are considered (unless stated otherwise), for the purpose of the explanation in this document to be methods of the objects listed even though (in .NET) in reality, they may be implemented as extension methods on the object or interface. They are also generally available under COM development platform, on the respective COM interfaces. There are other sets of extension methods, for .NET only, which further enhance the functionality of listed objects. These extension methods are not listed here, but rather under Layered Extensions for .NET.

Methods that are only available on the COM development platform are listed in italics. They are currently methods that accept or return lists instead of arrays, which is a necessity for some COM tools or languages that lack a sufficient support for COM safe arrays.

Methods that primarily exist for internal implementation (infrastructure) reasons are grayed out, and you should not normally used them.

EasyDAClient operation methods

This object is for OPC Data Access (OPC "Classic", COM/DCOM-based) and for OPC XML-DA.

Purpose Single-operation Method Multiple-operations Method
Read a named item (value/timestamp/quality). ReadItem

ReadMultipleItems, ReadItemList

Read a named item value. ReadItemValue

ReadMultipleItemValues, ReadItemValueList

Get value of OPC property. GetPropertyValue

GetMultiplePropertyValues, GetPropertyValueList

Write a named item (value/timestamp/quality). WriteItem

WriteMultipleItems, WriteItemList

Write value into a named item. WriteItemValue

WriteMultipleItemValues, WriteItemValueList

Browse the computer for OPC (DA) servers.


Browse for child nodes.

Browse for child branches.

Browse for child leaves.




Browse for access paths.

BrowseAccessPaths, BrowseAccessPathList

Browse for available item properties. BrowseProperties
Subscribe to changes of an OPC item. SubscribeItem

SubscribeMultipleItems, SubscribeItemList

Change parameters of a subscription to an OPC item. ChangeItemSubscription

ChangeMultipleItemSubscriptions, ChangeItemSubscriptionList

Unsubscribe from changes of an OPC item. UnsubscribeItem

UnsubscribeMultipleItems, UnsubscribeItemList

Unsubscribe from changes of all OPC items. UnsubscribeAllItems
Attempt to pull an OPC item change. PullItemChanged

PullMultipleItemChanges, PullItemChangeList

EasyAEClient operation methods

This objects is for OPC Alarms and Events (OPC "Classic", COM/DCOM-based).  

Purpose Single-operation Method Multiple-operations Method
Get the current state information for a condition instance.

GetConditionState, GetConditionStateList

Acknowledge a condition in the event server. AcknowledgeCondition
Browse the computer for OPC (A&E) servers. BrowseServers

Browse for child nodes.

Browse for event areas.

Browse for event sources.




Find event categories supported by the server.

Find event conditions supported by an event category.

Find attributes associated with an event category.




Find event conditions associated with the source. QuerySourceConditions
Subscribe to OPC events. SubscribeEvents
Change parameters of an event subscription. ChangeEventSubscription
Force a refresh of active and inactive unacknowledged conditions. RefreshEventSubscription
Unsubscribe from particular OPC events. UnsubscribeEvents
Unsubscribe from changes of all OPC events. UnsubscribeAllEvents
Attempt to pull an OPC event. PullNotification

PullMultipleNotifications, PullNotificationList

EasyUAClient operation methods

This object is for OPC Unified Architecture (OPC UA). 

Purpose Single-operation Method Multiple-operations Method

Browse nodes in server's address space.

Browse data nodes.

Browse data variables.

Browse event sources.

Browse OPC methods.

Browse notifiers.

Browse OPC objects.

Browse OPC object types.

Browse OPC properties.

Browse OPC variables.











BrowseMultiple, BrowseList
Call OPC method. CallMethod CallMultipleMethods, CallMethodList

Change parameters of a subscription.

Change parameters of a data change subscription.



ChangeMultipleMonitoredItemSubscriptions, ChangeMonitoredItemSubscriptionList


Discover OPC elements using a generalized query.

Discover available OPC applications (LDS).

Discover available endpoints of a server (LDS).

Discover available OPC servers on a host (LDS).

Discover available OPC servers on a network (LDS-ME).

Find OPC applications, given LDS endpoints.

Globally discovers OPC applications (GDS).

Globally discovers OPC servers (GDS).









Attempt to pull OPC data change notification. PullDataChangeNotification PullMultipleDataChangeNotifications, PullDataChangeNotificationList
Attempt to pull OPC event notification. PullEventNotification PullMultipleEventNotifications, PullEventNotificationList
Attempt to pull OPC server condition change notification. PullServerConditionChange PullMultipleServerConditionChanges, PullServerConditionChangeList

Read data of a given node's attribute.

Read value of a given node's attribute.



ReadMultiple, ReadList

ReadMultipleValues, ReadValueList

Subscribe to changes of a monitored item.

Subscribe to data changes.

Subscribe to events.




SubscribeMultipleMonitoredItems, SubscribeMonitoredItemList
Unsubscribe from changes of a monitored item. UnsubscribeMonitoredItem UnsubscribeMultipleMonitoredItems, UnsubscribeMonitoredItemList
Unsubscribe from changes of all monitored items. UnsubscribeAllMonitoredItems

Write data into a node.

Write value into a node.



WriteMultiple, WriteList

WriteMultipleValues, WriteValueList


The features discussed here, or some of them, may not be available in all editions of the product. Check the Product Editions page for differences between the editions. The trial license has all features enabled (and is limited in period for which it provides valid data), but licenses for specific commercial editions may have functionality limitations.
See Also