OPC UA has been designed to provide semantic interoperability. This enables Clients and Servers to exchange data with unambiguous shared meaning.
To make this possible, OPC UA comprises a data model and rules how to represent the data in the Address Space. It defines an Object as the fundamental element to represent the data and activity of an underlying system. Objects contain Variables, Events and Methods and can have relationships to other Objects. The OPC UA Object Model uses the object oriented programming (OOP) paradigm and therefore provides features such as data abstraction and inheritance.
The collection of Objects that the Server makes available to Clients builds the Address Space which is structured according to principles of the Address Space Model.
OPC UA also allows defining semantics for Variable data. In current systems, the data exposed and exchanged are often just simple data points; i.e., just an Integer, a Float, or a Boolean. OPC UA allows specifying that a Float can be seen as currently measured temperature of an article; a Boolean can signify the state of a valve (open or closed). In addition to simple data types, OPC UA also supports Structured Data Types. Structured Data are a powerful construct for specifying user-defined, complex Data Types. An example of a Structure is an Address. It contains the country, region, city, city code, street and street number.
Note – The Address Space Model is specified in OPC UA Part 3 The UA Services are used to access the elements in the Server Address Space like browsing, reading or writing a variable value, calling a method or receiving events from the Object.
Note – The OPC UA Services are specified in OPC UA Part 3