OpcUa_any: Difference between identification methods ‘BrowsePath’ and ‘NodeId’

Hello!
Does anybody have any experience using the different identification methods ‘BrowsePath’ and ‘NodeId’?

Maybe this is something new in Automation Studio 6.

My guess is that if I select ‘NodeId’ I’m supposed to write the complete path from the root like this example from an ABB Omnicore:
/0:Root/0:Objects/3:Robots/3:OmniCore/2:RAPID/3:T_ROB1/3:GU_MachineConfig/3:GripCmd_PowerOn
But if I want to use the ‘BrowsePath’ option, what is the 'StartingNode’ and the ‘RelativePath’? I haven’t been able to find any information about this.

I found it in online help B&R Online Help

Hmm… maybe you could help me understand then by using this NodeID as an example:

/0:Root/0:Objects/3:Robots/3:OmniCore/2:RAPID/3:T_ROB1/3:GU_MachineConfig/3:GripCmd_PowerOn

What is ‘starting node’ and what is the ‘relative path’ in this case?

From these sentences:

“BrowsePath of the node consisting of a StartingNode and a RelativePath. If no StartingNode is specified, the RelativePath must contain the complete BrowsePath. When specifying a NamespaceIndex, the relative index from the namespace URIs table must be used.”

I would guess that it is up to you.

Option 1:

Starting node: “”

Relative Path: “/0:Root/0:Objects/3:Robots/3:OmniCore/2:RAPID/3:T_ROB1/3:GU_MachineConfig/3:GripCmd_PowerOn”

Option 2:

Starting node: e.g. “/0:Root/0:Objects/3:Robots”

Relative Path: the rest “/3:OmniCore/2:RAPID/3:T_ROB1/3:GU_MachineConfig/3:GripCmd_PowerOn”

But this is only an untested guess. So maybe someone else from BRCommunity can share his/her experiences?

Also, after reading the help I’m not sure if I should add ‘&’ or not in the path.
&/0&:Root&/&0&:Objects&/3&:Robots&/3&:OmniCore&/2&:RAPID&/3&:T_ROB1&/3&:GU_MachineConfig&/3&:GripCmd_PowerOn

Example of local variable: /x:&:&:/x:MyTask/x:MyVariable . Here is example of browse path I used in the past.

1 Like

NodeId option is way the fastest option.. Just read with UAExpert or other tool the NodeId on the top + with the nameSpaceID

ns=5;s=::Test.myStatus –> Syntax from UA Part 6: Mappings - 5.3.1.10 NodeId

1 Like

Ok. Then I was mistaken. I thought the NodeId should be the whole browse path.

Is the ‘&’ character only required for local variables?

Is the ‘&’ character only required for local variables?

The characters . / : ! # & are reserved. If a reserved character is used in a BrowseName ( so not in the NodeId part… ) , it must be preceded by a “&” in order to be used in the RelativePath.

The BrowseName of node on the B&R embedded OPC UA server is the default scope “::” and must therefore be specified as “&:&:”.

1 Like

I was looking for a couple of simple examples to show the difference of the ‘NodeId’ and ‘BrowsePath’ options. Here is a summarize:

NodeId is a relative path. Example from @job.franken: ns=5;s=::Test.myStatus

BrowsePath is an absolute path. Example from @kovarj: /0:Root/0:Objects/2:DeviceSet/2:X20BC008U/2:X2X/2:SubDevices/2:ST2/2:ProcessData/2:DigitalInput01

When using ‘BrowsePath’ you have the option to split the path:

  • Option 1: do not split the path:
    Starting node: “”
    Relative Path: “/0:Root/0:Objects/2:DeviceSet/2:X20BC008U/2:X2X/2:SubDevices/2:ST2/2:ProcessData/2:DigitalInput01”

  • Option 2: split the path:
    Starting node: “/0:Root/0:Objects/2:DeviceSet/2:X20BC008U/2:X2X/2:SubDevices/2:ST2”
    Relative Path: “/2:ProcessData/2:DigitalInput01”

Thank you @kovarj and @job.franken for your assistance!

2 Likes

thanks for great summary, I marked it as a solution

1 Like