OPCUA node id change

Hi everybody,

in one application I use a panel T30 as a VNC viewer to display the machine HMI.

Since the panel should sometimes switch to another VNC server, I use OPCUA to tell to the panel to which server it should point to.

In my (very limited) knowledge of OPCUA I always used the following steps:

  • check the nodeID of the parameter I need via UAExpert
  • set the value of that node id when needed
  • that’s it

now I received a T30 with a different firmware and the nodeID has changed!!

so I’m not able to access that parameter anymore… I mean I can find the new value using UAexpert, but if with each firmware upgrade the id is modified, that’s not a good way.

what do you usually do to read and set values of a certain nodeID? how do you find an unique identifier that does not change over different firmware versions?

Thanks

Hello,

Do you set nodeID with the AsOpcUac library? Check OPC UA client?

yes I set the value of the nodeID via the AsOpcUac library.

You should not use the numeric identifier of the nodeId on the T30, but the browsepath of the nodeId of the T30 and use the TranslatePath function block to get the NodeId. The browsepath will not change, when the T30 firmware is changed. In AS6 you could use the Ua_Browse function block and TranslatePathList function block.

thank you, that’s what I eventually did and worked well, even if it makes the AsOpcUac library even more complicated to be used…

what I don’t understand is why the nodeID changes with different firmwares, even if the namespaceUrl is not changed..

Technically the NodeId is not assigned by us, it is actually assigned by the OPC-UA server itself.
New firmware usually included updates on the used OPC-UA server, too … so if anything within the OPC-UA server changed, NodeIds might change. Same is the case if data points are added.

In the end its the nature of OPC-UA … similar to DNS and IP addresses.