OPC Foundation announced the UA architecture vision in 2003 and formed the
UA working group in January 2004. The first parts of the specification were
released in June 2006.
The current UA specification consists of 11 parts. In Mai 2015 it was made
public so that not only OPC Foundation members can download
the specification from the OPC Foundation web site.
is much more complex than previous OPC specifications and is designed to:
- Use cross-platform capable communication instead
of Windows DCOM
- Combine the OPC DA, A&E, HDA functionality
into a single set of services
- Model complex data structures for collaboration
with other standards organizations
- Be implementable on different platforms, from
embedded systems to enterprise systems
The OPC Foundation web site
lists books that
describe the OPC specifications.
far most UA products are for embedded systems. This is understandable
because there are no established standards for these systems while for
Windows/.NET environments the DCOM based classic OPC solutions are widely
initial OPC specifications, based on DCOM communication, are now called
Classic OPC. The OPC DA (Data Access) specification was released in 1996.
It is for the communication of current data and still is the most widely
used OPC specification. Most applications use the specification version
2.05 despite the newer version 3.0.
Similar specifications were released for Historical Data (OPC HDA) and
Alarm & Events (OPC AE).
the introduction of XML Web Services and SOAP
the OPC Foundation released the XML DA specification in 2003. The release
was overshadowed by the announcement of OPC UA.
The XML DA specification is based on SOAP and specifies communication
records for a functionality similar to OPC DA.
The XML DA specification didnít find wide acceptance but is established in
areas such as e.g. Wind Farms.
OPC UA architecture concept was announced in 2003 and in 2006 draft
specifications were released. In 2009 the initial software kit became
In 2015 the UA specification was made public and in 2016 the UA
communication stack source code became Open Source.
OPC .NET (Xi)
.NET (Xi) specifies a .NET WCF based interface with the functionality of
Classic OPC DA/HDA/AE. The specification and sample code were released in
OPC .NET (Xi) has not been widely accepted but itís the only OPC .NET API
specification that can be used for Classic OPC DA/HDA/AE and OPC UA.
UA specification is structured to be implementation independent and adaptable
to new technologies. While this has important advantages, it makes reading
harder. Several specification documents have to be consulted for complete
- The Services part defines the UA core
services in an implementation independent way.
- The Mappings part describes how the UA core
services are mapped to the communications interface.
Currently two mappings are defined, Native (TCP/IP based) and Web
Services ( .NET3/4 based )
- The Access Types parts detail the data
structures passed to/from the services for
Data Access, Historical Access, Alarms and Conditions,
- The Address Space Mode and Information
Model part describe the UA core.
- The Profiles part defines possible subsets
of the UA functionality
The current status of the UA
specification is V1.3 for all parts.
The UA specification documents can be downloaded from the OPC
Foundation web site. Since Mai 2015 the documents are available to the
public. OPC Foundation members and non-members are prohibited from copying
and redistributing this specification. All copies must be obtained on an
individual basis, directly from the OPC Foundation.
The Accelerated Adoption work group was created in May 2009 with the
task to create additional profiles, samples and documentation to make the
development of UA server and client applications simpler and quicker. It
appears that the work was suspended without concrete results.
Foundation UA Developer Kits
The OPC Foundation OPC UA Software Development Kit
is available for OPC Foundation members.
The UA SDK V1.0 has been released 2009-07-31. This release of the SDK supports the
released versions of Parts 1 through 9 of the UA Specification (basically DA
The SDK V 1.1.320 Beta was released Sep-2-2010
Compliance Test Tool (CTT) V1.0
Release Candidate was released Sep-16-2010
The SDK V 1.1.324 Beta was released Nov-2-2010
The SDK V 1.1.331 Beta was released Aug-24-2011
The SDK V 1.2.334.3 was released Sep-2013
The SDK V 1.2.334.6 was released Nov-2013
The SDK V 1.2.335.0 was released Dec-2014
The SDK V 1.2.336.0 was released Jun-2015
The SDK V 1.3.340.0 was released Oct-2016
OPC Foundation now only maintains the UA communication stack software. Other
parts of the SDK, such as the COM interop converters, are provided as sample
code that needs to be tested and maintained by the member companies. The
complex SDK software is provided with little documentation, making the use
and adaptation difficult.
April 2016 the OPC Foundation made the UA SDK source code available as an
Open Source repository at http://github.com/opcfoundation,
with very restrictive license conditions for non-members.
UA core implements a network database with nodes that describe items and item
attributes. The nodes can be linked in a complex manner, allowing all kinds
if information structures to be modeled. Network databases are difficult to
implement and therefore the more restricted relational databases are far more
The OPC Foundation implemented a reference UA server and a SDK. Probably all
UA server products will base on this implementation. On this base the UA server development will probably
not be much more complex than the development of a DA, AE or HDA server based
on a server toolkit. The server developer can model the server according his
preferences and can ignore other UA features.
The UA client development/configuration
is significantly more demanding than it is for OPC DA clients. This is mainly
because UA server can be modeled in different ways. The server developer can
choose his favored structure and build the server accordingly. For client
applications to be universal, they must be able to handle all UA features
that different servers may use.
OPC UA Licensing
2015 the UA specification was made public and can be downloaded from the OPC
Foundation web site by members and non-members. Still OPC Foundation
members are not allowed to distribute with their UA products. Each user has
to individually download the specification from the OPC Foundation web site.
In April 2016 the OPC Foundation made the UA SDK source code available as an
Open Source repository at http://github.com/opcfoundation.
UA stack software is provided under a dual license policy. For OPC Foundation
members the OPC
Foundation RCL License and for non-members the GNU GENERAL PUBLIC LICENSE V2,
which requires all applications containing the UA stack software to be
distributed under the same open source license.
UA SDK sample code is provided under the OPC Foundation MIT license.
So far most UA products are for embedded systems. This is understandable
because there are no established standards for these systems while for
Windows/.NET environments the DCOM based classic OPC solutions are being
widely used for many years.
Advosol currently offers an OPC UA
Server Toolkit† that bases on the
OPC Foundation UA Communication Stack and the Advosol OPC DA .NET Server Toolkit.
The same application plug-in .NET assemblies can be used with the Advosol OPC
DA/AE, OPC HDA, UA and XML DA server toolkits. Users of Advosol toolkits for
classic OPC can simply upgrade to UA.
For client developers Advosol offers UA option OPCDA.NET-UA, OPCHDA.NET-UA, OPCAE.NET-UA. Applications developed
for classic OPC DA can access UA servers through the same API.
For applications that only need Data Access (OPC DA) functionality XML DA is
a viable alternative. Based on .NET3 XML DA has the same communication
security as UA and DCOM is not used, eliminating the frustrating DCOM issues.
Advosol offers XML DA components that
make the XML DA server/client development simple. Gateways to/from OPC DA are
All Advosol XML DA products
are provided in versions for .NET2 and .NET3 (WCF). The secure and efficient
WCF communication configurations can be used when client and server are .NET3