01/17/2017
Hello,
i hope you can help me. I very new in the world of OPC UA and i have some misunderstandings and problems.
Every Datatype have an numeric identifier. Is the numeric identifier a fixed list or can every developer choose a specific identifier?
Reason why im asking:
A Siemens OPCUA Server give me for a String Datatype the number 3014 and another software have the id 12 for a String.
What is the correct id? 12 oder 3014?
Thanks for your help and sorry for these beginner question 😉
Hello Andre,
Nodes are collected into a "namespace", which is an organization of these nodes. You can have multiple namespaces within the global address space. The official OPC UA data-types exist in namespace 0, so a UA-native String data-type should look like this:
ns=0;i=12
That is the official STRING data-type NodeId.
The other NodeId you mention refers to a completely different type altogether. But, since you didn't mention the namespace part of the NodeId I can't help but wonder if it is in a different namespace. Why would it be in a different namespace? because it could be a custom-type defined by Siemens. That's the one purpose of a namespace, to organize nodes/types from a different standard.
Here is a link to all of the namespace=0 nodes (official UA types): https://github.com/OPCFoundati.....odeIds.csv
I hope this helps.
Like any other types, OPC UA allows to create sub-types. So if this Server has a very specific string (e.g. a string that contains a hex format) this can be expressed in the type system. Clients - when they find a data type they don't know - can always browse the type hierarchy until they find a super-type they know. But Clients that do know this Server and its custom types will know the specifics for this string.
That said, the type on the wire and provided in a Read response will still be a string.
1 Guest(s)