OPC UA defines 8 Node Class types in the address space Object, Variable, Method, ObjectType, VariableType, ReferenceType, DataType, View. The COM UA Proxy maps only the nodes of Node Class types Object, Variable to the OPC DA types as shown in the figure below. Only the nodes under the Objects node are considered for the COM UA Proxy address space and others such as Types, Views are not mapped.

Figure A.4shows an example mapping of OPC DA to OPC UA information.

image010.png

Figure A.4– Sample OPC DA mapping of OPC UA Information Model and Address Space

A node of Object Node class in the OPC UA server is represented in the Data Access COM UA Proxy as a Branch.

The root of the Data Access COM UA Proxy is the Objects folder of the OPC UA Server.

The OPC UA Address space hierarchy is discovered using the Browse Service for the Objects Node using the following filters:

  • BrowseDirection as Forward
  • ReferenceTypeId as Organizes and HasChild.
  • IncludeSubtypes as True
  • NodeClassMask as Object and Variable

The DisplayName of the OPC UA node is used as the Name for each Branch in the Data Access COM UA Proxy

Each Branch in the Data Access COM UA Proxy is assigned 3 properties:

  • UA Browse Name(Property ID: 613): The value of the BrowseNameattribute of the node in the OPC UA Server is assigned to this property.
  • UA Description(Property ID: 614): The value of the Descriptionattribute of the node in the OPC UA Server is assigned to this property, if a Description attribute is provided.
  • Item Description(Property ID: 101): The value of the DisplayName attribute of the node in the OPC UA Server is assigned to this property.

NOTE COM DA Clients typically display the ItemID and the Item Description. Since the ItemID generated by the UA Proxy may be particularly difficult to read and understand, proxies may use the DisplayName as value for the Item Description Property as it will be easier to understand by a human user.

A node of Variable Node class in the OPC UA server is represented in the Data Access COM UA Proxy as an Item.

The DisplayName of the OPC UA node is used as the Name for each Item in the Data Access COM UA Proxy.

The NodeId of the OPC UA node is used as the ItemId for each Item in the Data Access COM UA Proxy. But the ‘=’ character is replaced with ‘-’ in the string. E.g. NodeId: ns=4,i=10, ItemID = “ns-4;i-10” or NodeId: ns=4,s=FL102, ItemID = “ns-4,s-FL102”

Each Item in the Data Access COM UA Proxy is assigned the following properties based on the node attributes or its references:

Standard Properties:

The other AccessLevel provided by OPC are ignored

  • Server Scan Rate (Property ID: 6): The value of the MinimumSamplingIntervalattribute of the node in the OPC UA Server is assigned to this property.
  • Item EU Type (Property ID: 7): The EU Type value is assigned based on the references of the node in the OPC UA Server:

Analog(1): if the node in the OPC UA Server references a EURange propertynode, then it is assigned the Analog EU Type.

Enumerated(2): if the node in the OPC UA Server references a EnumStrings propertynode, then it is assigned the Enumerated EU Type.

Empty(0): For a node in the OPC UA Server that does not meet above criteria, the type is set as 0 (Empty)

New Properties:

  • UA BuiltIn Type(Property ID: 610): The identifier value of the DataType node associated with the DataType attribute of the node in the OPC UA Server is assigned to this property.
  • UA Data Type Id(Property ID: 611): The complete NodeId value (namespace and identifier) of the DataType node associated with the DataType attribute of the node in the OPC UA Server is assigned to this property.
  • UA Value Rank(Property ID: 612): The value of the ValueRankattribute of the node in the OPC UA Server is assigned to this property.
  • UA Browse Name(Property ID: 613): The value of the BrowseNameattribute of the node in the OPC UA Server is assigned to this property.
  • UA Description(Property ID: 614): The value of the Descriptionattribute of the node in the OPC UA Server is assigned to this property.

For generating ItemIDs, the Proxy uses Namespace Indices. To assure that Clients can persist these ItemIDs, the Namespace Indices must never change. To accomplish this the Proxy has to persist its Namespace Table and only append entries but never change existing ones.

The Proxy also has to provide a translation from the current Namespace Table in the Server to the persisted Namespace Table.

If you move or copy the Proxy to another machine, the Namespace Table has to be copied to this machine as well.