OPC Unified Architecture (UA) follows today’s and future requirements of industrial communication needs. It unifies and extends the individual standards of the first generation OPC (also called OPC COM or OPC Classic) using a service oriented architecture (SOA) paradigm. This result is platform independent, scalable and high-performance communication infrastructure. The use in small devices of process and measurement technology with their specialized operating systems is just as well possible as the use in enterprise applications on Unix/Linux machines or Mainframes.
The rich information model can represent complex relationships of data and its semantics. Specially designed transport protocols offer highest communication speed and interoperability.
Furthermore OPC UA provides security mechanisms like authentification, authorization, encryption and data integrity based on the latest cryptographic standards such as PKI, AES, and SHA.
OPC UA Is Service Oriented
The OPC UA architecture is a Service Orientated Architecture (SOA) and is based on different logical levels. All of the Base Services defined by OPC are abstract method descriptions which are protocol independent and provide the basis for the whole OPC UA functionality.
The transport layer transforms these methods into a protocol, which means it serializes/deserializes the data and transmits them over the network. Currently there are two TCP/IP based protocols specified for this purpose. One is a binary, high performance optimized TCP protocol and the second, a webservice based protocol. The binary protocol is mandatory and is supported by all UA stacks. Additional protocols are possible and may be added when necessary.
The OPC Information Model is not just a hierarchy based on folders, items and properties anymore, but a so-called Full Mesh Network based on Nodes instead. This network of Nodes can additionally transmit all varieties of meta information and diagnostic data. The closest image of a node would be an object, known from object-oriented programming (OOP). It can be composed of Variables that can be read or written, Methods which can be called, and Events which can be fired. An Event contains among other things a time of notification, a message and a severity. Nodes are used for process data as well as for all other types of meta data. The newly modeled OPC namespace now contains the Type Model used to describe all possible data types as well.
Based on this new architecture, other organizations are specifying their own information source, the so-called companion specifications. One of the first of these specifications is the DI (device integration) model. It describes devices and forms a base for further companion specifications like ADI, PLCopen, or FDI, which for their part define own information models. Client software has the ability to verify which of the so-called Profiles a server supports. This way clients can detect whether a server only supports DA (data access) functionality or additionally A&C (alarms and conditions), HDA (historical data access), etc. Additionally, information can be obtained whether a server supports e.g. the DI profile and therefore the client knows that there will be DI-specific device descriptions as well as configuration and diagnostic information available.
Additional important features of OPC UA are:
- service oriented architecture using a asynchronous request/response paradigm
- combines all features of the previous “classic OPC” specifications
- bulk operations for all access operations
- bandwith-friendly transmission
- redundancy support on client and server side, multiple redundancy
- heartbeat for connection monitoring in both directions; i.e. the server as well as the client recognize failures
- buffering of data and acknowledgements of transmitted data
- lost connections do not lead to data loss anymore; lost data packages can be fetched again
OPC UA Services
Abstract Definition of Services
The service oriented architecture (SOA) follows the request/response paradigm. OPC UA defines a fixed set of services with exactly defined parameters and behavior. These services are generic. There is for instance only one “Read” service for reading attributes, i.e. data as well as properties. There is a “Browse” for navigating through a UA server’s address space.
The genericity and standardization of these Services assures interoperability. They are combined into so-called “service sets” according to their purpose.
The following list shows these groups of services.
|SecureChannel Service Set||retrieve endpoint and security configuration to establish a secure connection|
|Session Service Set||create and administrate user-specific connection between application|
|NodeManagement Service Set||modify the server’s address space (if permitted)|
|View Service Set||navigate and follow (hierarchical) references in the server’s address space, search for and filter information|
|Attribute Service Set||read and write attributes of (an) node(s), especially the value attribute, but historical data or events as well|
|Method Service Set||invoke methods which a server provides at the nodes in its address space|
|MonitoredItem Service Set||create a set of attributes of nodes to be monitored by the server and for which changes should be reported|
|Subscription Service Set||create, modify, or delete monitored items|
|Query Service Set||perform a filtered search for information in the server’s address space|
OPC UA Data Model
OPC UA defines a generic object model including the associated type system. In addition to this data model, rules have been defined to describe how to transform every physical system into a model conforming with OPC UA to represent it in an OPC UA server. Every kind of device, function, and system information can be described using this meta model. The base type system supports relationships between objects, so-called references, as well as multiple inheritance. Thus it can be compared to a modern object oriented programming language. The base model provides object and variable types as well as reference and data types. Based on this model, OPC UA can represent every kind of data including their metadata and semantics.
The OPC UA data model forms the base for UA information models. Being specialized models, they extend the base by adding specific functionality like Data Acess, Alarms and Conditions, Historical Access or Programs.
The data and type model is arbitrarily expandable. It is mandatory for a server to provide its type model, especially if it provides types which are not UA base types, the so-called “well known types”. The goal is to specify extensions as possible as industry-sector-specific models. This is worked out in additional specifications, so-called companion specifications. Here, the OPC Foundation collaborates with other organisations to obtain common UA conform representations.