Skip to content

OPC UA

OPC UA (Open Platform Communications Unified Architecture) is a communication standard for platform-independent, secure and reliable data exchange in industrial automation. It is governed by the OPC Foundation and is the modern architecture that replaced the older OPC Classic standards (DA, HDA, A&E).

inSCADA supports OPC UA in both the Client and the Server role.

  • Platform independence: it runs on Windows, Linux and embedded systems
  • Security: TLS/SSL encryption, certificate validation, user authentication
  • An object-oriented model: a hierarchical information model (the address space)
  • Discoverability: browsing the node space finds the available data automatically
  • Scalability: from a sensor up to a cloud platform

An OPC UA server organises its data in a hierarchy called the address space, built from nodes:

Root Objects / Server (server information) / DeviceSet (user data) / PLC_1 / Temperature (ns=2; s="PLC1.Temp") / Pressure (ns=2; s="PLC1.Press") / Status (ns=2; i=1001) Root Objects Server (server information) DeviceSet (user data) PLC_1 Temperature (ns=2; s="PLC1.Temp") Pressure (ns=2; s="PLC1.Press") Status (ns=2; i=1001) Sensor_1 Value (ns=3; s="Sensor1.Value") Types Views

Every node is identified by a unique node ID made of three parts:

  • Namespace Index (ns): which namespace it belongs to
  • Identifier Type: numeric or string
  • Identifier: the value itself (a number or a text)

Examples:

  • ns=2; s="PLC1.Temperature" — a string identifier
  • ns=2; i=1001 — a numeric identifier

OPC UA has a layered security model.

Security mode:

ModeDescription
NoneNo signing and no encryption
SignMessages are signed but not encrypted
SignAndEncryptMessages are both signed and encrypted

Security policy:

PolicyDescription
NoneNo security policy
Basic128Rsa15128-bit encryption (old, not recommended)
Basic256256-bit encryption
Basic256Sha256256-bit encryption + SHA-256 hash
Aes128_Sha256_RsaOaepAES-128 encryption + SHA-256

Authentication:

MethodDescription
AnonymousNo authentication
Username/PasswordSign in with a user name and password
Connection (endpoint URL, security settings) Device (grouped by a base path) / Frame (grouped by a node path) / Variable (identified by a node ID) Connection (endpoint URL, security settings) Device (grouped by a base path) Frame (grouped by a node path) Variable (identified by a node ID)
Data typeDescription
BooleanA single-bit value
SByteA signed 8-bit integer
ByteAn unsigned 8-bit integer
Int16A signed 16-bit integer
UInt16An unsigned 16-bit integer
Int32A signed 32-bit integer
UInt32An unsigned 32-bit integer
Int64A signed 64-bit integer
FloatA 32-bit floating-point value
DoubleA 64-bit floating-point value
StringA string
DateTimeA timestamp
EncodingDescription
BinaryOPC UA binary encoding (the default, and the fastest)
XMLXML-based encoding
JSONJSON-based encoding