Professional Communication
Software Development Tools

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-DA 1.x Logo OPC-DA 2.x Logo OPC-DA 3.x 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 color small

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

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.NET component. It works in multiple versions of Microsoft Visual Studio.

// 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.

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

 

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 A-E 1x

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

Of course, 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.

 

Footnote & required disclosure: Connectivity Software (QuickOPC, Excel Connector, OPC Wizard, etc.) is a suite of software development kits (SDKs) for development of automation software applications. Installing Connectivity Software or its parts or options does not change system settings.