As described above, both the OPC UA Browsename and Displayname for Nodes representing COM DA Branches and Leafs are derived from the name of the corresponding item in the COM DA Server.
This name can only be acquired by using the COM DA Browse Services. In OPC UA, however, the BrowseName and DisplayName are Attributes that Clients can ask for at any time. There are several options to support this in a Wrapper but all of them have pros and cons. Here are some popular implementation options:
- Allow browsing the complete COM DA Address Space and then build and persist an offline copy of it. Resolve the BrowseName by scanning this offline copy.
- Pro: The ItemID can be used as is for the OPC UA NodeId.
- Con: The initial browse can take a while and may have to be repeated for COM DA Servers with a dynamic Address Space.
- Create OPC UA NodeId values that include both the COM DA ItemID and the Item name. When the OPC UA Client passes such a NodeId to read the BrowseName or DisplayName Attribute, the wrapper can easily extract the name from the NodeId value.
- Pro: Efficient and reliable.
- Con: The NodeId will not represent the ItemId. It becomes difficult for human users to match the two IDs.
- A number of COM DA Servers use ItemIDs that consist of a path where the path elements are separated with a delimiter and the last element is the item name. Wrappers may provide ways to configure the delimiter so that they can easily extract the item name.
- Pro: Efficient and reliable. The ItemID can be used as is for the OPC UA NodeId.
- Con: Not a generic solution. Only works for specific COM-DA Servers.
For wrappers that are custom to a specific Server, knowledge of the COM DA server address space can result in other optimizations or short cuts (i.e. the server will always have a certain schema / naming sequence etc.).