Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3
minLevel3
typeflat
printablefalse
separatorpipe

Overview

The OPC UA address space is comprised of "namespaces", which are used to organize related nodes.  The DataAccess namespace of the Servers’s address space models the objects and items configured in ACM. When the Server is started, the DataAccess address space is empty. Object nodes and item Data Variable nodes are added as monitored items are requested by the client. This allows the address space to only contain nodes that clients are requesting, rather than modeling the entire SCADA system.

Info
Custom Views of the DataAccess namespace is not supported.

Node Ids and Item Names

The DataAccess namespace is index 2 in the Server. All items requested from ACM must be created in this namespace. All NodeIds in the DataAccess namespace are of type string and have 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

ExamplesExample: 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.

Info
titleCase 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 address space DataAccess namespace by a client application. The browsing functionality is done in a virtual manner because the entire ACM configuration is not modeled in the address space; only the objects and items that have an associated Monitored Item are. As a client browses, objects being browsed, such as folders, devices, and connections, are created in the address space if they do not already exist there. Data items associated with those objects can be browsed but are not created in the address space automatically. Item nodes are only created when a Monitored Item for it is requested by a client so at browse time, not all data items in the browse list will exist in the address space.

If a monitored item has been created by a client, any client can browse to that item’s node and do an attribute read of the item. If a monitored item for the node has not been created by a client, browsing to the node will return a BadNodeIdUnknown error when trying to read the attributes.

Monitored items can be directly created from any browse list item using the functionality of the client, usually a drag-drop sequence.

Info
Because browsing is done in a virtual manner by the Server, it does not support browse continuation points.
Info
Browsing of custom Views is not supported.

Monitored Items

Monitored items are used to obtain real time data from the ACM system by OPC UA clients. Nodes representing ACM items do not exist in the DataAccess namespace until a client requests a monitored item for it.

When a monitored item is requested by a client, the item name used is validated by ACM. Refer to the section Node Ids and Item Names for correct node id and item name formats. If the item name is not valid, the Server will return “Bad NodeId Unknown” to the request. If the item name is valid, a Data Variable Node for the item is created in the DataAccess namespace if it does not already exist. Once successfully created, the monitored item is available to publish data to the client  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.

Warning

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.