Server Namespaces

Server Namespaces

DataAccess Namespace

DataAccess Overview

The OPC UA address space is comprised of "namespaces", which are used to organize related nodes.  The namespace that contains ACM related nodes is named "DataAccess" and is index 2 in the OPC UA address space.  The index number is how OPC UA references the namespace. 

Definitions

Node

ACM objects and items in the DataAccess namespace are referred to as nodes. There are two types of nodes: object nodes, which represent the $Server object, devices, folders, and connections as defined in ACM; and variable nodes, which represent ACM items that can be associated with an object node. The Value, StatusCode, and Timestamp attributes of a variable node directly correspond to the value, status, and timestamp of an item in ACM. Nodes in the DataAccess namespace are automatically added by the server when the first Monitored Item is created for the ACM object and item.

Node ID

Each variable node in the DataAccess namespace has a Node ID that is comprised of the namespace index, object name and item name.  The Node ID is in the following format:

ns=2;s=acmObject.itemname

  • ns=2:  indicates namespace 2, the DataAccess namespace

  • s=:  indicates the Node ID is a string 

  • acmObject – the device, Server, or connection object name as defined in ACM.

  • itemname – the item name as defined in the ACM user manuals

Example: ns=2;s=MyRtu.40001, ns=2;s=MyRtu.Demand

This format must be used when manually creating ACM monitored items in the client.

Monitored Items

Clients create Monitored Items for variable nodes in the OPC UA address space to subscribe to data, status, or timestamp changes. Monitored Items in the DataAccess namespace are used by OPC UA Clients to obtain real-time data from nodes associated with ACM items. When the real-time value is updated in ACM, the monitored item's value is updated, which subsequently updates the OPC Client.  Monitored items can be created using the Node ID of the DataAccess variable node to monitor, or by browsing the virtual list in the client.  Any item in the virtual list may have a monitored item created for it which in turn will create the associated node in the address space.

A single node in the namespace space can be referenced by multiple monitored items for any client that requires updates.

Case Sensitivity

Object names and Item names in OPC UA are case sensitive, but are not case sensitive within ACM. All client applications should use the same case when defining a monitored item so that multiple nodes for the same object and item are not created in the address space. For example, “myRtu.40001” and “MyRtu.40001” refer to the same object and item in ACM but will result in two separate nodes being created on the server.

Virtual Browsing

The OPC UA Server supports "virtual" browsing of the DataAccess namespace by a client application.  While all available ACM items and objects are represented visually in the client, a node for each will not exist on the OPC UA server until a Monitored Item has been created. This is similar to the way items are added in OPC DA Clients.

Some OPC UA Clients assume the entire browse list to represent nodes that already exist in the address space. This is not the case with virtual browsing.  If the client tries to perform an attribute read on a node that has not yet had a monitored item created, that read will fail. 

Virtual browsing does not support browse continuation points nor browsing of custom Views.

BadNodeIdUnknown

A "BadNodeIdUnknown" error may be returned for the following reasons:

  • Attempting to read the attributes for a node in the browse list that does not have a monitored item. 

  • The Node ID of a monitored item requested is not a valid ACM item name.

 

DataAccessDiagnostics Namespace

DataAccessDiagnostics Overview

The DataAccessDiagnostics namespace contains nodes that relate to the current client sessions and subscriptions active in the Server. The number of nodes in the address space can vary according to the number of sessions and subscriptions created by client applications.

Node Id

Clients should query the server to get the namespace index of DataAccessDiagnostics if needed as the index could change in future release versions of the server.

The type of the NodeIds are Integer, such as i=101.

Browsing

The DataAccessDiagnostics namespace does not implement virtual browsing as the DataAccess namespace does. Because the nodes are created automatically as a client creates sessions and subscriptions, browsing conforms to the OPC UA specification.

As clients add and remove sessions, subscriptions, and monitored items, nodes in this address space are added, removed, and updated. A client should re-browse the namespace to see the most current state of the server.

Diagnostics

The nodes in the address space provide the current state of the server. The information given is similar to the nodes in the SessionsDiagnosticSummary found in the Server address space, but in a simpler condensed format.

image-20260225-213711.png

Object

Usage

Object

Usage

SessionSummaryList object

Each client session will be listed as a separate child node.

Session object

Gives the name of the client session. The child node tags give specific information about the session itself.

TotalSessionCount

This node gives the total number of sessions being maintained by the client. It will be equal to the number of objects in the SessionSummaryList