| |
OPC DA |
XML-DA |
| Classes / Methods |
Server and group objects with a total of 61 methods. COM calls are rather fast and OPC-DA defines a large number of relatively simple methods.
|
Server class with 8 methods. Web services calls may be slow and XML-DA defines few methods with more complex functionality. |
| Connection |
Permanent connection over one session
|
independent method calls |
| Asynchronous Calls |
Read and write methods can be called asynchronously
|
All methods can be called synchronously or asynchronously. |
| Browse |
Browsing one branch is done by a sequence of calls: BrowseChangePosition, BrowseOPCItemIds for branches, BrowseOPCItemIds for items, GetItemId for each item.
|
One branch is browsed in a single method call, that has several parameters to define the browse mode and mutliple browse filters. |
| Read / Write |
Read/write is handled in the group object, requiring a sequence of method calls: AddGroup, AddItems, Read or Write This design allows high performance. Item identifier strings are only used in the AddItem method, Read/Write calls use the integer handle returned by Additems.
|
Each read/write call is independent. An array of item identifiers is passed to the server and it returns an array with values and status information. |
| Item Properties |
There are different ways to query and access item properties.
|
There is one method to query and read item properties |
| Data Change Callback |
DataChanged call backs can be defined for Groups. The server calls the client callback method when an item value changes. This feature allows changes to be handled with low latency and low overhead.
|
Web services do not support callbacks. The client has to poll the server for value changes. XML-DA defines Subscriptions for this purpose. The XML-DA server buffers value changes for all items defined in a subscription and returns all buffered values on a poll. The latency depends on the poll intervall but even on a low poll rate the client gets all value changes.
|