What is OPC UA and how does it affect your world?

OPC-UA is an important building block that enables users to build the next generation of software automation solutions.

By Simone Massaro, ICONICS Inc. May 15, 2008

OPC-UA is an important building block that enables users to build the next generation of software automation solutions. With complete backward compatibility ensured, vendors will have much to gain — and nothing to lose — by adopting the new OPC Unified Architecture.

Over the past decade, software vendors have used Object Oriented Architectures and Service Oriented Architecture to design products that are both scalable and reliable. Surprisingly, these successful architectural models have rarely been used to exchange information throughout the factory floor. The delay in the adoption of these technologies is mostly because automatic applications were lagging behind, and were designed to process simple row information, rather than to consume and transform complex information.

The information carried within an object is far richer than the information carried with simple row data. In a typical automation application, you rarely wish to analyze single, isolated row data. It’s far more interesting to analyze the data in terms of its relationship with other data — and in terms of the operation that can be performed.

Any real-life object carries a tremendous amount of information within it. For example, when thinking in terms of objects, the information carried by a “boiler” object is far superior to the simple combination of individual row data for pressure and temperature. A physical boiler is an object that we can physically interact with by turning it off or on, by changing a reference temperature setpoint or by analyzing how a change of a parameter affects the others. This information is logically grouped and must be analyzed all together.

In software terms, an object is a collection of properties (temperature, pressure), methods (turn off, turn on) and events (temperature is too high, pressure is too low). Objects are organized in hierarchies in such a way that an object can contain simpler smaller objects as properties (the valve of a boiler can, itself, be an object that exposes properties, methods and events). When thinking in these terms, it’s clear how beneficial it would be to map the data of the factory floor into a hierarchy of objects.

Dual nature

The new OPC Unified Architecture (OPC-UA) is the result of a multi-year collaboration of industry leaders that aims to create an open standard for exchanging information in a rich, object-oriented and secure way. This standard represents the answer to the fundamental need for mapping and exchanging real-life information in an object-oriented way.

OPC-UA has a dual nature: it is object-oriented and it is service oriented. The object-oriented nature of OPC-UA enables re-usability of assets across the factory floor and provides a common object management method to support complex and flexible data models. The service-oriented nature of OPC-UA allows for broader interoperability with other platforms, as well as for increased visibility and security.

OPC-UA standard

OPC-UA does not replace existing standards such as OPC, but rather complements them by providing a common interoperability layer for exchanging information and orchestrating processes. OPC-UA embodies all the functionality of the existing OPC servers and expands on top of them. Backward compatibility with previous standards will ensure quick adoption on the market.

One of the key problems with standards of this magnitude is that implementing them can be quite challenging. The OPC Foundation has taken many steps to guarantee that the implementation of the standard would be a relatively straightforward and easy process.

To facilitate the adoption of the new standard and to reduce the barrier to entry, the OPC Foundation has developed an OPC-UA software development kit (SDK). The SDK is the entry point to jump-start your existing applications and make them OPC-UA-enabled. The SDK consists of a series of application programming interfaces and sample code implementations. To that end, the UA specification is written to be platform-agnostic and, for that reason, the SDK comes in different flavors to facilitate adoptions on different platforms. The .Net, ANSI C and Java sample implementations will be provided to OPC Foundation members.

Each “flavor” of the SDK is designed to fit special needs in terms of platforms, memory and processor requirements, but they are all capable to seamlessly interoperate with each other. The .Net version of the SDK is more suited for rich client/server implementation, while the ANSI C version is more suited for thin implementation for embedded devices, where memory footprint and CPU utilization are more important. The Java implementation is more suited for the Web environment and thin clients but can also be used on other environments. Each software vendor can pick the implementation that they prefer, depending on the unique requirements for performance, cross-platform capability and Internet-friendliness.

In addition to the SDK, the OPC Foundation is also providing a series of binary adapters. The adapter can be used to grant direct access to all legacy COM-based OPC servers from the new OPC-UA Client. Simultaneously, the adapter can also be used to grant access to a subset of OPC-UA server features from legacy OPC clients.

Compliance tools

Software programming is not an exact science. Even with the availability of the OPC-UA SDK sample code, there is still room for errors such as misinterpretation of the specification or simple coding errors. So how do you reduce the number of errors and guarantee an unambiguous interpretation of the standard? How do you ultimately guarantee interoperability between software produced by different vendors?

The solution is provided again by the OPC Foundation through its new “logo” program. To facilitate the successful adoption of OPC-UA solutions, the OPC Foundation has been working on a series of compliance tools aimed at verifying that a given product is fully compliant with the standard. Software vendors can submit their applications to independent test companies that will certify the compliance with the standard using the compliance tools. Having a certified solution guarantees reliable data exchange between applications from different vendors, and is beneficial for everyone.

The OPC-UA SDK enables software vendors to quickly move information horizontally between devices on different industrial networks from different vendors, as well as vertically from the factory floor through the enterprise of multi-vendor systems — with stops in between.

Several leading suppliers have partnered to provide end-to-end solutions that leverage the OPC Unified Architecture to deliver value to end-user customers. We see an increasing interest for these technologies and are sure that OPC-UA is on the road to success as the leading standard for exchanging information on the factory floor and throughout the enterprise. Expect to see vendors quickly support OPC-UA in all of their new applications over the next few years.

Author Information
Simone Massaro is the product development manager at ICONICS Inc. With more than 10 years of experience in industrial automation software, Massaro has designed several successful ICONICS products such as GraphWorX32, WebHMI and ReportWorX, and has architected the next generation of ICONICS products in GENESIS64. He holds a Masters Degree in Computer Engineering, is a member of the OPC-UA Technical Adoption Committee and holds an honorary position in the Microsoft IT Council.

The OPC-UA specification is comprised of 12 different parts:



Address space


Information model



Data access

Alarms and conditions


Historical access