Namespaces are used by OPC UA to create unique identifiers across different naming authorities. The Attributes NodeId and BrowseName are identifiers. A Node in the UA AddressSpace is unambiguously identified using a NodeId. Unlike NodeIds, the BrowseName cannot be used to unambiguously identify a Node. Different Nodes may have the same BrowseName. They are used to build a browse path between two Nodes or to define a standard Property.

Servers may often choose to use the same namespace for the NodeId and the BrowseName. However, if they want to provide a standard Property, its BrowseName shall have the namespace of the standards body although the namespace of the NodeId reflects something else, for example the EngineeringUnits Property. Another example shown in Figure 30 is the ParameterSet and the GlobalVars object components of a Ctrl Resource instance. The ParameterSet node BrowseName shall use the OPC DI namespace and the GlobalVars node BrowseName shall use the namespace defined by this specification. All NodeIds of Nodes not defined in this specification shall not use the standard namespaces and are typically using the same namespace like the Ctrl Resource object instance, for example local server.

Table 41 provides a list of mandatory and optional namespaces used in a Controller Server.

Table 41 – Namespaces used in a Controller Server

NamespaceURI

Description

Use

http://opcfoundation.org/UA/

Namespace for NodeIds and BrowseNames defined in the OPC UA specification. This namespace shall have namespace index 0.

Mandatory

Local Server URI

Namespace for nodes defined in the local server. This may include types and instances used in a Ctrl Resource represented by the server. This namespace shall have namespace index 1.

Mandatory

http://opcfoundation.org/UA/DI/

Namespace for NodeIds and BrowseNames defined in OPC 10000-100. The namespace index is server specific.

Mandatory

http://PLCopen.org/OpcUa/IEC61131-3/

Namespace for NodeIds and BrowseNames defined in this specification. The namespace index is server specific.

Mandatory

http://PLCopen.org/OpcUa/IEC61131-3/FB/

A server may provide IEC or PLCopen defined Ctrl Function Block libraries.

Optional

User defined types and instances in a Ctrl Resource

A server that provides access to different Ctrl Resources may provide a separate namespace for each Ctrl Resources if it is required to create unique identifiers across Ctrl Resources.

Optional

Vendor specific types

A server may provide vendor specific types like types derived from Ctrl Configuration or Ctrl Resource in a vendor specific namespace.

Optional

Global user defined library

A server may provide global user defined Ctrl Function Block libraries in a user specific namespace.

Optional

Figure 30 shows an example for the use of namespaces in NodeIds and BrowseNames.

image034.png

Figure 30 – Example for the use of namespaces in NodeIds and BrowseNames

Table 42 provides a list of namespaces and their index used for BrowseNames in this specification. The default namespace of this specification is not listed since all BrowseNames without prefix use this default namespace.

Table 42 – Namespaces used in this specification

NamespaceURI

Namespace Index

Example

http://opcfoundation.org/UA/

0

0:EngineeringUnits

http://opcfoundation.org/UA/DI/

2

2:DeviceRevision