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 |
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 |
Namespace for NodeIds and BrowseNames defined in OPC 10000-100. The namespace index is server specific. |
Mandatory |
|
Namespace for NodeIds and BrowseNames defined in this specification. The namespace index is server specific. |
Mandatory |
|
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.
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 |
0 |
0:EngineeringUnits |
|
2 |
2:DeviceRevision |