The main use case for OPC classic specifications is the online data exchange between devices and HMI or SCADA systems using Data Access functionality. In this use case the device data is provided by an OPC server and is consumed by an OPC client integrated into the HMI or SCADA system. OPC DA provides functionality to browse through a hierarchical namespaces containing data items and to read, write and to monitor these items for data changes. The OPC classic specifications are based on Microsoft COM/DCOM technology for the communication between software components from different vendors. Therefore OPC classic server and clients are restricted to Windows PC based automation systems.
OPC UA incorporates all features of OPC classic specifications like OPC DA, A&E and HDA but defines platform independent and secure communication mechanisms and generic, extensible and object-oriented modelling capabilities for the information a system wants to expose. OPC UA is directly integrated into devices and is used for configuration, diagnostic and maintenance use cases in addition to online data exchange. OPC UA is an integrated communication interface used from sensor level devices up to enterprise applications.
The OPC 10000-6defines different transport mechanisms optimized for different use cases. The first version of OPC UA is defining an optimized binary TCP protocol for high performance intranet communication as well as a mapping to accepted internet standards like Web Services. The abstract communication model does not depend on a specific protocol mapping and allows adding new protocols in the future. Features like security and reliability are directly built into the transport mechanisms. Based on the platform independence of the protocols, OPC UA servers and clients can be directly integrated into devices and controllers.
The OPC UA Information Modelprovides a standard way for Serversto expose Objectsto Clients. Objectsin OPC UA terms are composed of other Objects, Variablesand Methods. OPC UA also allows relationships to other Objectsto be expressed.
The set of Objectsand related information that an OPC UA Servermakes available to Clientsis referred to as its AddressSpace. The elements of the OPC UA ObjectModel are represented in the AddressSpaceas a set of Nodesdescribed by Attributesand interconnected by References. OPC UA defines eight classes of Nodesto represent AddressSpacecomponents. The classes are Object, Variable, Method, ObjectType, DataType, ReferenceType andView. Each NodeClasshas a defined set of Attributes.
This specification defines Nodes of the OPC UA NodeClasses Object, Method, Variable, ObjectType and DataType.
Methods are used to represent commands or services of a system.
Properties are Server-defined characteristics of Objects, DataVariables and other Nodes. Properties are not allowed to have Properties defined for them. An example for Properties of Objects is the DeviceLocation Property of an AutoIdDeviceType ObjectType.
OPC UA defines a graphical notation for an OPC UA AddressSpace. It defines graphical symbols for all NodeClassesand how different types of Referencesbetween Nodescan be visualized. Figure 1shows the symbols for the six NodeClassesused in this specification. NodeClassesrepresenting types always have a shadow.
Figure 2shows the symbols for the ReferenceTypesused in this specification. The Referencesymbol is normally pointing from the source Nodeto the target Node. The only exception is the HasSubtype Reference. The most important Referenceslike HasComponent, HasProperty, HasTypeDefinitionand HasSubtypehave special symbols avoiding the name of the Reference. For other ReferenceTypesor derived ReferenceTypesthe name of the ReferenceTypeis used together with the symbol.
Figure 3shows a typical example for the use of the graphical notation. Object_A and Object_B are instances of the ObjectType_Y indicated by the HasTypeDefinition References. The ObjectType_Y is derived from ObjectType_X indicated by the HasSubtype Reference. The Object_A has the components Variable_1, Variable_2 and Method_1.
To describe the components of an Objecton the ObjectTypethe same NodeClassesand Referencesare used on the Objectand on the ObjectTypelike for ObjectType_Y in the example. The instance Nodesused to describe an ObjectTypeare instance declaration Nodes.