BLOG

Some OPC UA Definitions

opc ua, Updates, Blog

Some OPC UA Definitions

30 Jan, 2019

EXOR International is convinced that OPC Unified Architecture will be the industrial interoperability standard. The addition of a publish/subscribe model and the running of OPC UA over the standard Time-Sensitive Network, will only add to its adoption. We thought that a quick summary of the main terms used in industry networking as it refers to OPC UA would be useful. Please then see below a short list.

The objective of this list was to save you time when you needed to reference a certain definition. In compiling this list I would like to thank the OPC Foundation website and Wikipedia from whom most of the background information came.

 

API (Application Program Interface)

is the set of interfaces that allow one software application to use the services of another. In the industrial world, this historically referred to the interface between two pieces of software located in the same processor. With OPC UA the API generally refers to the set of interfaces that an OPC UA toolkit vendor provides to a device developer. As toolkits are unique, most APIs work differently. The API may include interfaces to the data model or sometimes the interaction between the encoding layer, the security layer and the transport layer.

 

BLOB (Binary Large Object Block)

provide a way to transfer data that has no OPC UA data definition. Normally, all OPC UA data is referenced by some sort of data definition which explains the data format. BLOB data is used when the application wishes to transfer data that has no OPC UA definition. BLOB data is user defined and could be anything: video, audio, data files or anything else.

 

ENCODINGS

is a specific way to convert an OPC request or response into a stream of bytes for transmission. There are currently two types of encoding in OPC UA: OPC UA Binary and XML. OPC UA Binary is for compact encoding with smaller messages, less buffer space and better performance. XML is an ample encoding that is used in many enterprise systems. Though easier for enterprise servers to process, XML requires more processing power, larger messages and high buffer requirements.

 

HTTP (Hypertext Transfer Protocol)

is the low-level protocol that allows a client application such as a web browser to request a web page from a server. HTTP messages request data or send data in a standardized format.

 

HTTP/SOAP OPC UA TRANSPORT

is the second transport currently supported in OPC UA. This transport demands higher resources it is used because HTTP and SOAP are supported by practically all enterprise applications. It is a standard way of moving serialized OPC UA messages between a client and a server.

 

MAPPINGS

The OPC UA specifications are abstract, unlike more traditional specification such as Modbus which runs over multi-drop RS485. However, the specifications for OPC UA operation are done to maintain the ability to take advantage of future technologies. A mapping refers to how those abstract specifications are linked onto a specific technology.

 

OPC UA XML ENCODING

is a method to serialize data using Extensible Markup Language or XML for short. The encoding is a specific way of mapping a data type to the actual data that appears on the wire. In XML encoding, data is mapped to the highly-structured, ASCII character representation used by XML. XML can be large and impede performance. The encoding is used as many large enterprise application programs support XML by default.

 

OPC UA BINARY ENCODING

is a method to serialize data using an IEEE binary encoding standard. An encoding is a specific way of mapping a data type to the actual data that appears on the wire. In Binary encoding, data is mapped to compact binary data representations that demand fewer bytes. This lower use makes it more efficient to transfer and process by embedded systems. Binary encoding is heavily used by industrial automation systems.

 

OPC UA APPLICATION

In industrial networking, there is a distinction between the end user application and the protocol stack. The end user application implements various sets of defined rules and functions. Whereas the protocol stack moves well-defined data between the application and some external device using a restrictive interface. This is not the case in OPC UA. In OPC UA, the application references the end user application, the OPC UA object model and the set of OPC UA services implemented by the OPC UA device.

 

OPC UA CLIENT

is the side of OPC UA communication that initiates the communication session. One of the most interesting parts of the OPC UA structure is that clients in OPC UA are much more flexible than other network clients. OPC UA Clients have the capability to search out and discover OPC UA servers, discover how to communicate with the OPC UA server, discover what capabilities the OPC UA servers have, and configure the OPC UA server to deliver specific pieces of data when and how they want it.

 

OPC UA SERVER

is the side of an OPC UA communication that provides data to an OPC UA client. There is no standard OPC UA server either in functionality, performance or device type. Devices from small sensors to large machines may be OPC UA servers. Servers may host from a few data points to many thousands. OPC UA servers may use mappings with high security and lower performance XML or communicate without security using high-performance OPC UA Binary Encoding. They may be completely configurable and offer the client the option to configure data model views, alarms and events or completely static.

 

OPC UA TCP TRANSPORT

is a protocol that establishes a low-level communication channel between a client and a server. Most of what the OPC UA TCP transport does is to negotiate maximum buffer sizes so both sides understand the limits of the other.

 

PROTOCOL STACK OR STACK

implements the data model and the services of that protocol. An API connects that data and service model to the data of the end user application. Though protocol stack vendors can implement this in many different ways, in general, an OPC UA protocol stack is comprised of three components: data encoding, security and network transport.

SECURITY PROTOCOL

protects the privacy and integrity of messages. OPC UA takes advantage of several standards, well-known security protocols.

 

SERIALIZATION

is the process of taking a service and creating the series of bytes that an OPC UA server can process to return the value of an attribute. Serialization dictates how data elements like a floating point value are transformed into a series of bytes that can be sent serially over a wire. Two types of serial encoding are currently supported by OPC UA: OPC UA Binary and OPC UA XML.

 

SOAP (Simple Object Access Protocol)

extends XML and provides a higher level of functionality. SOAP adds the ability to make remote procedure calls within an XML structure.

 

TRANSPORTS

A transport is a mechanism that moves an OPC UA message between a client and server. All OPC UA messages are delivered over a TCP/IP connection. Within TCP, there are two kinds of sessions that message over TCP, and they are called transports when using OPC UA: OPC UA TCP and SOAP/HTTP.

 

TRANSPORT PROTOCOL

provides the end-to-end transfer of OPC UA messages between OPC UA clients and servers. Once an OPC UA service message is encoded and passes through securitization, it is ready for transport. Two transports are currently defined for OPC UA: OPC UA TCP and SOAP/HTTP. The underlying TCP provides the socket-level communication between clients and servers.

 

WEB SERVICES

is a generic term for placing Internet services in a structured way. The majority of Internet applications today are built using Web services. HTTP, SOAP, XML are the basic technologies of Web services applications and are some of the technologies that can be used by OPC UA clients and servers.

 

XML (Extensible Markup Language)

is a highly structured way of specifying data such that applications can easily communicate. XML transfers all data as ASCII – the one commonly understood data format for all computer systems. XML uses a grammar to define the specific data tags that are used by an application to pass data.