OPC UA (OPC Unified Architecture)

OPC Unified Architecture (OPC UA) Device Driver allows Iotellect Server to communicate with OPC UA Servers, i.e. act as an OPC UA Client. Data provided by OPC UA Servers (and hardware devices "behind" them) is converted into unified form to allow access from different Iotellect facilities. See Devices article for more information about the "normalized" representation of devices in Iotellect.

Driver Information

Driver Plugin ID Suffix:

device.opcua

Global Settings

None defined.

User Level Settings

None defined.

Device Account Properties

Connection Properties

Connection settings define how Iotellect Server communicates with a certain OPC UA Server. These settings may be accessed using Edit Device Properties action of device Context. Here is a list of available connection properties:

Setting

Description

URL

URL of an OPC UA server, of the format connectionType://serverAddress:serverPort[/serverPath]. Each component is explained below

  • connectionType: This can be either tcp or https

  • serverAddress: The hostname or IP address of the server.

  • serverPort: The port number on which the server is listening.

  • [/serverPath]: Optional, path on the server.

Address Space Source Paths

A table of OPC UA server address space nodes that will be "visible" from inside Iotellect Server along with their subnode trees.

Simply speaking, this is a list of OPC UA server's root nodes that are connected to Iotellect Server.

Enable Parallel Browsing

When enabled (default), the OPC UA driver browses all configured address-space root paths in parallel to speed up initial discovery. If your OPC UA server restricts the number of simultaneous browse operations per client, disable this property. In that case, the driver will browse the nodes sequentially to prevent excessive load on the server.

On OPC UA servers that limit the number of active browse continuation points, parallel browsing can cause Bad_ContinuationPointInvalid errors during device synchronization. To resolve this, either disable Enable Parallel Browsing (this slows down metadata reading) or increase the server-side limit — see the MaxBrowseContinuationPoints setting under Objects/Server/ServerCapabilities/MaxBrowseContinuationPoints on the OPC UA server.

Username

Username to use for authentication.

Set the value of User to Null or leave as an empty string to connect anonymously to OPC UA servers with Anonymous mode activated. The Password field will be ignored in this case.

Password

Password to use for authentication.

Security Mode

OPC UA communications security mode. Controls whether to encrypt connections to the OPC UA Server. If encryption is used, choose whether to sign or sign and encrypt communications, and which algorithm to use.

Options include:

  • None

  • Basic 128 RSA15, Sign

  • Basic 128 RSA15, Sign and Encrypt

  • Basic256Rsa15, Sign

  • Basic256Rsa15, Sign and Encrypt

  • Basic256Sha256, Sign

  • Basic256Sha256, Sign and Encrypt

  • Basic 256, Sign

  • Basic 256, Sign and Encrypt

To use any encryption (e.g. any option other than None) the Certificate property must be configured with a valid certificate. The certificate must be signed by a Certificate Authority root certificate trusted by the OPC UA Server to which the device is connecting. If connecting to an Iotellect OPC UA Server, the root certificate would be added to Trusted CA Root Certificates of the Iotellect Server providing the OPC UA Server.

Max Cache Age

Controls whether the OPC UA server should use cached value or attempt to read it from underlying data source (e.g. a device) upon Iotellect Server's read request. If the server does not have a value that is within the Max Cache Age, it will read to new value from the data source.

Setting this value to zero will effectively cause direct data source access during every synchronization. It may harm performance but can help to avoid outdated values.

Tag Hash Suffix

  • When enabled (default), a hash value is appended to the variable name. This ensures that variable names remain unique, even if the same tag name appears multiple times in different parts of the OPC UA server's address space.

  • When disabled, the hash suffix is not added to the variable name. This results in shorter and more readable variable names, but can be used only if there are no naming conflicts in the OPC UA server's address space.

Tags Read Strategy

Defines the method used to read data from the OPC UA server. Possible values are:

  • Sequential Reading (default): Reads tag values one after another in a sequence during regular device synchronization.

  • Sampling Subscription: Creates a subscription that periodically samples tag values at the specified interval.

  • Reporting Subscription: Creates a subscription that receives data updates from the server only when tag values change.

<Iotellect Server> continues to read tag values during regular synchronizations even if read strategy is Sampling or Reporting Subscription. This will cause excessive “duplicate” values to appear in the variable history as they are simultaneously polled and sampled/subscribed. To avoid periodic synchronizations when working in any of the subscription modes, enable Disable Synchronous Setting Value Reading/Writing (disableSynchronousSettingValueRW) in Generic Device Properties.

Receiving subscription updates triggered by the client itself is normal OPC UA behavior. The driver does not filter updates received from the OPC UA server via subscriptions.

Sampling Interval

Specifies the time interval at which the driver should sample the values of subscribed tags. Considered only when the Tags Read Strategy is Sampling Subscription. The default value is 1 second.

Max Tags Per Subscription

Defines the maximum number of tags that can be included in a single subscription. This can be used to manage network traffic and server load by grouping tags into smaller subscriptions. Considered only when the Tags Read Strategy is Publishing Subscription.

Max Message Size

The maximum size, in bytes, of a message that can be sent or received by the Iotellect OPC UA client. This setting helps control network traffic and prevents overly large data packets from causing communication issues. Increasing this value may be necessary when dealing with a large number of tags or large data values. This limit is applied to the entire encoded message.

Max Buffer Size

The maximum size, in bytes, of the buffer used for receiving OPC UA messages. The buffer must be large enough to hold the largest expected message. This value limits the largest chunk of decoded data.

Max String Length

The maximum allowed length, in characters, for string values retrieved from the OPC UA server. Increasing this setting allows the client to handle larger string data.

Max Byte String Length

The maximum allowed length, in bytes, for byte string values retrieved from the OPC UA server. Similar to Max String Length, but applies to byte strings rather than text strings. Applies to binary data.

Max Array Length

The maximum number of elements allowed in an array value retrieved from the OPC UA server. Increase this, if the server provides node values as arrays, and if the array size is large.

Certificate Trust Policy

Defines how to verify certificates provided via an SSL/TLS connection.

Certificate

Alias of an SSL/TLS certificate to use for authentication. The certificate with that alias must exist in the Client Certificate storage of the Iotellect server.

Process Nested Variables

When disabled (default), OPC UA variables that have a forward HasComponent reference are treated as Iotellect variables — their nested OPC UA variables are skipped. When enabled, such OPC UA variables are treated as Iotellect assets consisting of nested OPC UA variables.

Custom Definitions

When the driver extracts tag addresses from an OPC UA device, the tag names are assigned default variable names in Iotellect. The custom definitions table allows tag addresses to be assigned custom variable names. The mapping from OPC tag addresses to custom variable names has two columns:

Name

Custom variable name to which the OPC tag address will be mapped.

OPC Tag Address

OPC UA device tag address to be assigned custom variable name.

Event Subscriptions

Event subscriptions table defines how OPC UA events are converted into Iotellect events. It has the following columns:

Name

Name of Iotellect event. Should satisfy event naming rules, e.g. include only English letters, numbers and underscores.

Description

Human-friendly description of Iotellect event.

Object Path

Path of OPC UA nodes those events will be converted into Iotellect events.

Event Type

Type of OPC UA event that will be converted into Iotellect event.

Device Assets

OPC UA device driver creates an asset for each node of OPC UA server node tree.

Device Settings

OPC UA device driver creates a Device setting variable for each OPC UA node attribute.

Device Operations

OPC UA device driver creates a Device context function for each OPC UA node method.

The driver also provides Read History Values operation that retrieves a range of historical tag values from the OPC UA server.

Device Events

OPC UA device driver creates a Device context event for each record in Event Subscriptions table. It listens events matching the record and once such an event occurs it's corrected into an Iotellect context event defined by the record.

Connection Handling

This driver makes the device Online if:

  • TCP connection to an OPC UA server was successfully established

  • OPC UA authorization did not fail

Synchronization Details

OPC UA Servers are synchronized with Iotellect Server like any other Devices. Synchronization between Iotellect Server and an OPC UA Server includes the following steps:

  • Reading information about settings provided by the OPC UA Server and creation of Settings Cache. Settings are divided into several groups, according to OPC UA server's internal division.

  • Reading OPC UA Server setting values and storing these values in settings cache.

Data Model Mapping

The table below shows how OPC UA node types are mapped to Iotellect data model objects. The mapping of OPC UA Variable nodes depends on the processNestedVariables connection property.

OPC UA

Iotellect

Object

Asset

Variable (Process Nested Variables disabled, default)

Variable

Variable (Process Nested Variables enabled)

Asset with nested variables

Type Conversion

Common OPC UA data types are defined by the OPC UA specification. The following table shows how these types are converted to Iotellect types:

OPC UA Type

Iotellect Type

Boolean

Boolean

String

String

SByte

Integer

Byte

Integer

Int16

Integer

UInt16

Integer

Int32

Integer

UInt32

Long

Int64

Long

UInt64

Long

Float

Float

Double

Float

DateTime

Date

Guid

String

ByteString

String

XmlElement

String

NodeId

String

ExpandedId

String

StatusCode

Long

LocalizedText

Data Table

Arrays

Data Table

ExtensionObject

Data Table

Was this page helpful?