08/31/2020
Hello! We have a discussion in our company about the browse names uniquness and where the browse name should be unique, because maybe we missunderstand the specification.
Can someone expalin in simple lines when the browse name should be unique?
I have a example, if we have a Node (which is Object) and we add to it componendOf 2 another nodes, this two nodes should have unique names or not?
Thanks in advance!
05/30/2017
1) The targets of HierarchicalReferences from ObjectTypes and VariableTypes to InstanceDeclarations shall have unique BrowseNames;
2) The targets of HierarchicalReferences from InstanceDeclarations shall have unique BrowseNames;
3) The targets of HasProperty references from all Nodes shall have unique BrowseNames;
4) The targets of NonHierarchicalReferences have no uniqueness requirement;
5) The targets HierarchicalReferences from Instances have no uniqueness requirement;
An InstanceDeclaration is an Instance which is a target of a HierarchicalReference from a ObjectType, VariableType or another InstanceDeclaration and has a HasModellingRule reference defined.
05/30/2017
Yes DeviceSet can have multiple targets with the same BrowseName.
So can any other instance and it is not prevented by the TypeDefinition.
The exceptions are HasProperty references which must be unique.
Note the special behavior of TranslateBrowsePathsToNodeIds which explains how to handle duplicate names that conflict with a name defined by a TypeDefinition: https://reference.opcfoundatio…..rt4/5.8.4/
If a Node has multiple targets with the same BrowseName, the Server shall return a list of NodeIds. However, since one of the main purposes of this Service is to support programming against type definitions, the NodeId of the Node based on the type definition of the starting Node is returned as the first NodeId in the list.
1 Guest(s)