C++ Based OPC UA Client/Server SDK
OPC UA Specifications

The OPC UA specifications are partitioned in different parts also required for IEC standardization. OPC UA will be known as IEC 62541 standards. The following figure shows an overview of all specification parts split into the core specifications defining the base for OPC UA and the access type specific parts mainly specifying the OPC UA information models.

OPC UA specifications

The first two parts are not normative. The concepts part UA Part 1 gives an overview about OPC UA and UA Part 2 describes the security requirements and the security model for OPC UA.

Most important to understand how to model and access information are part 3 and 4. These two specifications are the key documents for the design and development of OPC UA applications. See OPC UA Fundamentals for more details about the content of these specifications.

The Address Space Model in UA Part 3 specifies the building blocks to expose instance and type information and thus the OPC UA meta model used to describe and expose information models and to build an OPC UA server address space.

The abstract UA Services defined in UA Part 4 represent the possible interactions between UA client and UA server applications. The client uses the Services to find and access information provided by the server. The Services are abstract because they are defining the information to be exchanged between UA applications but not the concrete representation on the wire and also not the concrete representation in an API used by the applications. The following figure shows the layered communication architecture of OPC UA.

Layered OPC UA communication architecture

The mapping of the UA Services to messages, the security mechanisms applied to the messages, and the concrete wire transport of the messages are defined in UA Part 6. Only implementers of UA stacks need to completely understand this specification. Since the OPC Foundation supplies proper UA stacks, typical UA application architects and programmers do not need to read this specification.

The base information model specified in UA Part 5 provides the framework for all information models using OPC UA. It defines the following:

  • The entry points into the address space used by clients to navigate through the instances and types of an OPC UA server
  • The base types building the root for the different type hierarchies
  • The built-in but extensible types like object types and data types
  • The Server Object providing capability and diagnostic information.

The profiles are defining useful subsets of OPC UA features in UA Part 7. Such a subset must be implemented completely by an UA application to ensure interoperability for the defined subset. The specification defines the subsets on two levels. The first level are Conformance Units defining a small set of functionality that is always used together and can be tested with Compliance Test Tools and verified as unit. The second level are Profiles composed of a list of conformance units. A profile must be implemented completely and will be verified as complete set during the certification of OPC UA products. The list of supported and used Profiles is exchanged during the connection establishment between client and server and allows the applications to determine if the needed features are supported by the communication partner.

The DA information model defines how to represent and use automation data and specific characteristics like engineering units in UA Part 8.

The AC information model specifies process alarm and condition monitoring specific state machines and types of events in UA Part 9.

The Programs information model defines a base state machine for the execution, manipulation, and monitoring of programs in UA Part 10.

The HA information model in UA Part 11 specifies the use of the history access Services and how to present information about the configuration of data and event history.

The aggregates used to compute aggregated values from raw data samples are specified in UA Part 13. The aggregates are used for historical access as well as the monitoring of current values.

UA Part 12 defines how to find servers in the network and how a client can get the necessary information to be able to establish a connection to a certain server.

To continue the OPC introduction you can read OPC UA Software Layers.