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?
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.
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.