What does it mean for an Object to not be browsable?|OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
What does it mean for an Object to not be browsable?
Avatar
Alen Galinec
New Member
Members
Forum Posts: 2
Member Since:
10/06/2022
sp_UserOfflineSmall Offline
1
09/26/2023 - 02:37
sp_Permalink sp_Print

Hello everyone,

In the OPC UA Core specification Part 20 (File Transfer), section:

 
there is a statement about an object "that is not browsable in the AddressSpace and can only be accessed with the NodeId and FileHandle".
 
Could someone please explain to me what it means for an object to not be browsable in the address space and how to achieve that?
How can a client access a node about which the node manager knows nothing about? As soon as I register a new node with the node manager it is part of the address space and visible, even if it does not have a browse name (e.g. I can see it with UaExpert).
 
Is a node "not browsable" when it doesn't have a parent node, i.e. it contains no references through which a client could get to it?
What should in that case its "parent" be? Can a node not have a parent?
 
Thanks in advance.
Avatar
Randy Armstrong
Admin
Forum Posts: 1568
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
09/26/2023 - 06:52
sp_Permalink sp_Print

1) The issue you have is specific to the way you are using the your SDK. You could create a NodeManager that managed 'virtual nodes' that are not stored in memory.

2) Not browseable means the Node is not returned if you call Browse or TranslateBrowsePaths but it may be accessible with Read or Call.

Servers that support RolePermissions need to check if a target of a Reference is accessible before returning a reference in a call to Browse. This means the set of References returned by Browse can change depending on the access rights of the Session. In some cases, nodes may not be accessible to any Session but they still exists.

In this case, the NodeId is returned from Methods like GenerateFileForRead and the Client can use that NodeId to call Read/Call.

Lastly, no Node needs to have a "Parent". Even even a Node is the target of a hierarchical reference and appears below it in a tree view that does not mean the source of reference is the Node's "Parent". The concept of "Parent" only shows up in the NodeSets to assist implementors that need to build their internal structures; the Parent means that when the Parent is deleted then so is the child.

Avatar
Alen Galinec
New Member
Members
Forum Posts: 2
Member Since:
10/06/2022
sp_UserOfflineSmall Offline
3
09/26/2023 - 07:20
sp_Permalink sp_Print

@Randy thanks for the explanation, it helps me understand the concept a little bit better.

I think the SDK I'm using doesn't have the concept of virtual nodes or if it does, then I don't know about it. I will have to ask the implementors.

Also regarding the "parent" nodes; I understand it is rather a matter of reference between nodes, not necessarily a hierarchy in a sense of parent-child relationship. What I meant is exactly what you described: objects appearing underneath other objects in a tree view.

I created a node without references to other existing nodes and without a browse name and added it to the NodeManager. This way the node wasn't visible within the "Objects" hierarchy in the UaExpert application. However, when I tried to add a "Custom Node" in the "Data Access View", entering the NS+NodeId returned by the GenerateFileForRead method, the application gave me an error message: ret=[BadAttributeIdInvalid] without any other information.

I will try to create a dummy Client app using the same SDK and see if it gives me a more detailed error (if any).

Forum Timezone: America/Phoenix
Most Users Ever Online: 510
Currently Online:
Guest(s) 9
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1435
Posts: 4860