Professional Communication
Software Development Tools

OPC Foundation member and certified logos

QuickOPC for OPC Data Access (OPC DA)

OPC Data Access (OPC DA) is the original OPC specification from the "OPC Classic" family. Its common use it to move real-time data from PLCs, DCSs, and other control devices to HMIs and other display clients, but it gained broader usage scope over the time. The current version of the OPC Data Access specification is 3.0. It leverages earlier versions while improving the browsing capabilities and incorporating XML-DA Schema.

OPC DA is fully supported by QuickOPC. You can develop OPC clients with data access capabilities easily with help of QuickOPC components.

OPC Data Access version 1 logo OPC Data Access version 2 logo OPC Data Access version 3 logo

In addition to the COM/DCOM based OPC DA, QuickOPC also supports the SOAP-based OPC XML-DA specification - see further below.

Supported OPC DA Operations

With QuickOPC, you can perform following OPC Data Access operations:
  • Discover (browse) OPC servers (applications) on the computer and on the network.
  • Browse the address space of the OPC server.
  • Read one or more values/items/node attributes.
  • Write one or more values/items/node attributes.
  • Subscribe to changes of a value/item/node attribute, and possibly later change the parameters of the subscription, or unsubscribe.
  • Browse access path for an item.
  • Browse OPC properties of an item.
  • Get value of one or more OPC properties of an item.

Most developers use the imperative programming model to create their applications. You can also:

OPC self-tested logo

QuickOPC for OPC XML-DA

The OPC XML-DA (Data Access) specification builds on the OPC Data Access specifications to communicate data in XML. It incorporates SOAP and Web services. The current version of the OPC XML-DA specification is 1.01. XML is a technology that is readily available across a wide range of platforms, and the OPC XML-DA is not tied to Microsoft COM/DCOM as the other OPC "Classic" specifications are.

OPC XML Data Access (OPC XML-DA) is the OPC Foundations's adoptions of the XML set of technologies to facilitate the exchange of plant data across the Internet, and upwards into the enterprise domain. Note: For newer installations, OPC Unified Architecture (OPC UA) provides a superset of OPC XML-DA functionality. There is, however, a large installed base of OPC XML-DA servers. 

OPC XML-DA logo

OPC XML-DA is fully and transparently supported by QuickOPC. You can develop OPC clients with XML data access capabilities easily with help of QuickOPC components.

 

Useful links: Documentation / Examples / Knowledge Base

Code Example

As usual in QuickOPC, we have strived for providing a concise API that will allow you to achieve your goals in quickly. In additional, due to the similarities between OPC XML-DA and the COM/DCOM-based OPC-DA, we have generalized our component to work with both these specifications in the same way (in most cases). This means that you can write your code without making a distinction between the underlying technologies, and mix OPC COM and OPC XML freely, even in a single method call. In many cases, the only difference you will not is that the OPC XML servers are identified by their URL, and not by their ProgID/CLSID and the computer they reside on.

The code below (in C# language) connects to an OPC XML-DA server, and reads and displays an item value, using the QuickOPC component in .NET.

// Read item value and display it in a message box 
MessageBox.Show(EasyDAClient.SharedInstance.ReadItemValue(
"http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx", "Dynamic/Analog Types/Int").ToString());

The code below subscribes to changes of an item, and displays the value with each change:

// The callback is a lambda expression that displays the value 
EasyDAClient.SharedInstance.SubscribeItem(
"http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx", "Dynamic/Analog Types/Int", 1000,
(_, args) => Console.WriteLine(args.Vtq.Value), null);

No other product can do this in such a clear and concise code, in a single statement! The programming is straightforward, and the developer can focus on getting the work done and not on fighting the intricacies of OPC protocols.

The same code simplicity is maintained in other programming languages, such as Visual Basic (VB.NET).

Supported OPC XML-DA Operations

With QuickOPC, you can perform following OPC Data Access operations:
  • Browse the address space of the OPC server.
  • Read one or more values/items/node attributes.
  • Write one or more values/items/node attributes.
  • Subscribe to changes of a value/item/node attribute, and possibly later change the parameters of the subscription, or unsubscribe.
  • Browse OPC properties of an item.
  • Get value of one or more OPC properties of an item. 

QuickOPC for OPC Alarms and Events (OPC A&E)

OPC Alarms&Events provides alarm and event notifications on demand (in contrast to the continuous data flow of OPC Data Access). These include process alarms, operator actions, informational messages, and tracking/auditing messages.

OPC A&E is fully supported by QuickOPC. OPC clients with alarms and events features can be developed easily.OPC Alarms&Events version 1 logo

If you need OPC Alarms&Conditions for OPC Unified Architecture, click here - QuickOPC supports it too.

Supported OPC-A&E Operations

With QuickOPC, you can perform following OPC Alarms&Events operations:
  • Discover (browse) OPC servers (applications) on the computer and on the network.
  • Browse the address space of the OPC server.
  • Get state of an event condition.
  • Acknowledge an active condition.
  • Query for event categories and event conditions.
  • Subscribe to events, and possibly later change the parameters of the subscription, or unsubscribe.
  • Refresh the event subscription.

Most developers use the imperative programming model to create their applications. You can also:

OPC Alarms & Events Example in C#

The code below (in C#) shows how to subscribe to event notifications and display each incoming event using a callback method that is provided as lambda expression, using QuickOPC:

// The callback is a lambda expression that displays the event 
EasyAEClient.SharedInstance.SubscribeEvents(
    "", "OPCLabs.KitEventServer.2",
1000,
    (_, args) => Console.WriteLine(args));

No other product can do this in such a clear and concise code, in a single statement!

Try It

Many more examples come with the product. And, all OPC Alarms & Events features of QuickOPC can be used from many languages and tools - not just C#, but also VB.NET, VB6, C/C++. VB6, PHP, Excel (VBA), Delphi, Perl, Python and more.

 

Testimonial

Thank you for doing what you guys do. Thank you for creating QuickOPC. Thank you for making life easier for developers like us. Without any prior OPC AE programming experience, starting from scratch, it took us just a few hours to get something valuable out to solve real-world problems. Without QuickOPC, it would be practically impossible. Thank you.

Forum user