The main use case for OPC standards 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 classic OPC standards are based on Microsoft COM/DCOM technology for the communication between software components from different vendors. Therefore classic OPC server and clients are restricted to Windows PC based automation systems.

OPC UA incorporates all features of classic OPC standards like OPC DA, A&E and HDA but defines platform independent communication mechanisms and generic, extensible and object-oriented modelling capabilities for the information a system wants to expose.

The OPC UA network communication part defines different mechanisms optimized for different use cases. The current version of OPC UA is defining an optimized binary protocol for high performance intranet communication as well as Web Services. It allows adding new protocols in the future. Features like security, access control 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 Nodes to represent AddressSpace components. The classes are Object, Variable, Method, ObjectType, VariableType, DataType, ReferenceType and View. Each NodeClass has a defined set of Attributes.

This specification makes use of almost all OPC UA NodeClasses.

Objectsare used to represent real-world entities such as Devicesand (communication) Networks as well as software entities such as Blocks. An Objectis associated to a corresponding ObjectTypethat provides definitions for that Object.

Variablesare used to represent values. Two categories of Variablesare defined, Propertiesand DataVariables.

Propertiesare Server-defined characteristics of Objects, DataVariablesand other Nodes. Propertiesare not allowed to have Propertiesdefined for them. Examples for Propertiesof Objectsare the device serial number and the block tag.

DataVariablesrepresent the contents of an Object. DataVariablesmay have component DataVariables. This is typically used by Serversto expose individual elements of arrays and structures. This specification uses DataVariablesto represent the Parametersof both Blocksand Devices.