OPC-UA Browse Service
Browse node paths
The Browse Service functionality of the Edge Xpert device service searches for OPC-UA nodes along a specified path.
An example of a node path could be:
Objectshas a browse depth of 1,
Devicehas a browse depth of 2, and
Nodehas a browse depth of 3.
Browsing nodes to add subscriptions
To enable the Browse service, you must specify the following protocol properties when provisioning a device:
||When initiated, the browse starts from the
This would indicate a node with a Namespace Index (or nsIndex) of 3, a numeric ID type (indicated by the "i") and a node ID of 1001
BrowseSubFilter protocol property can be used to automatically subscribe to nodes of interest. This can take the following values:
If automatically subscribing to browsed nodes, the performance of the OPC-UA Device Service can be impacted when there are a lot of subscription events (e.g., if automatically subscribing to nodes on servers with large namespaces). If the OPC-UA Device Service has multiple connections to the same OPC-UA server, IOTech recommends that the Browse service is enabled on only one connection to prevent duplication and unnecessary overhead.
Adding a node without knowing the
Browse can be used to declare objects in a device profile without specifying the nodeID for a node. This can be implemented when using multiple devices and allows device profiles to be more general. It is not necessary to know the nodeID of individual nodes, so long as the starting node is known.
By specifying the browse path and starting node, the device service knows where to look for nodes and will add all nodes on the path that are defined in the device profile.
To use this feature, two new attributes must be added to the device resource.
||Path from the root node to the node||
||Information on the root node. Must contain the namespace index (nsIndex), ID type, and node ID
The format for this must be
This indicates a nsIndex of 0, numeric ID type ("i"), and node ID of 85
An example device profile for using the browse path to find nodes in the Prosys OPC-UA Simulation Server can be seen below:
deviceResources: - description: A Simulated Counter name: Counter1 isHidden: false properties: valueType: Uint32 readWrite: R units: String defaultValue: "0" attributes: browsePath: "Simulation/Counter" monitored: "True" nsIndex: "3" publishInterval: "500" startNode: "0,i=85" - description: A static UInt32 variable name: StaticUInt32 isHidden: false properties: valueType: Uint32 readWrite: RW units: String defaultValue: "0" attributes: browsePath: "StaticData/StaticVariables/UInt32" nsIndex: "5" startNode: "0,i=85" deviceCommands: - name: Counter1 isHidden: false readWrite: R resourceOperations: - deviceResource: Counter1 - name: StaticUInt32 isHidden: false readWrite: RW resourceOperations: - deviceResource: StaticUInt32