NodeId NodeIds in running OPC UA Servers are represented as an ID and a NamespaceIndex. In order to make reference to Nodes in the offline AutomationML file, a more flexible way to reference a Node is needed, both directly and indirectly, possibly long before the real Node is present in a running Server. The NodeId AML AttributeType is defined with four top-level attributes, as shown in Figure A.6

image032.png

Figure A.6 – NodeId AttributeType definition

ServerInstanceUri – an optional attribute used to indicate the ServerInstanceUri of the Server containing the NodeId. If empty or missing, the context should be assumed to be the “local” Server. The type is xs:anyURI.

Alias – An indirect reference to a NodeId to be resolved by an alias Server at runtime. The Alias attribute type is defined in A.2.3.

RootNodeId – An ExplicitNodeId from which to traverse the BrowsePath in case the BrowsePath is not empty. The ExplicitNodeId attribute type is defined in A.2.3. If the BrowsePath is empty or not present, the node is identified by the RootNodeId or the NodeId resolved from the alias.

BrowsePath – An optional RelativePath to follow from either the RootNodeId or the NodeId resolved from the Alias. See the definition of the RelativePath structure in OPC 10000-4.

If a BrowsePath is present and not empty in a NodeId, then the RootNodeId should be a well-known NodeId like the NodeId of the Root Object (NS=UA, i=84) or the NodeId of the FxRoot Object (NS=UAFX, i=71).

Either the Alias attribute or the RootNodeId attribute shall be present. If both are present, the Alias attribute shall be ignored.

A typical use case for the BrowsePath in a Descriptor is to reference the corresponding variable in the AddressSpace from the PublishedData of a PublishedDataSet if the variable does not contain a real NodeId. The RootNodeId attribute of the NodeId AttributeType refers to the starting point of the BrowsePath, and the Elements of the BrowsePath direct to the target. Figure A.7 shows an example.

image033.png

Figure A.7 – Example for the use of the BrowsePath

The formal definition of the BrowsePath is given in Table A.3.

Table A.3 – Formal definition of the BrowsePath

0

ReferenceTypeId

NamespaceUri

http://opcfoundation.org/UA/

NumericId

35

IncludeSubTypes

False

IsInverse

False

TargetName

NamespaceUri

https://www.acme.com/BottleMachineProject/

Name

ME_BottleMachineProject

1

ReferenceTypeId

NamespaceUri

http://opcfoundation.org/UA/

NumericId

47

IncludeSubTypes

False

IsInverse

False

TargetName

NamespaceUri

http://opcfoundation.org/UA/FX/AC/

Name

FunctionalEntities

2

ReferenceTypeId

NamespaceUri

http://opcfoundation.org/UA/

NumericId

35

IncludeSubTypes

False

IsInverse

False

TargetName

NamespaceUri

https://www.acme.com/BottleMachineProject/

Name

BottleMachineFE

3

ReferenceTypeId

NamespaceUri

http://opcfoundation.org/UA/

NumericId

47

IncludeSubTypes

False

IsInverse

False

TargetName

NamespaceUri

http://opcfoundation.org/UA/FX/AC/

Name

OutputData

4

ReferenceTypeId

NamespaceUri

http://opcfoundation.org/UA/

NumericId

35

IncludeSubTypes

False

IsInverse

False

TargetName

NamespaceUri

https://www.acme.com/BottleMachineProject/

Name

BottleIdOut