open62541/open62541-nodeset-loader

Missing inverse references in companion specification

Opened this issue · 2 comments

This issue is related to the loading of companion nodeset files into the OPC UA server (using open62541). The version of the UA-Nodeset tested:

When nodes in a nodeset are missing inverse references to parent nodes, the following issues appear when trying to load the nodeset to the OPC UA Server:

  • AddNode (NODE_ID): Parent node not found
  • AddNode (NODE_ID): Reference type to the parent not found

The following UA-Nodes specifications have these issues:

While the nodesetLoader loads the nodeset without any critical errors, the problem is that the issued nodes are not browsable within the OPC UA address space (screenshot when testing the server with UAExpert):

image

The open62541 Pythod-based nodeset compiler handles these issues by assuming the reverse direction and always adding the inverse relation: nodeset_compiler.py:176. We should consider adding the same functionality within the nodesetLoader as well. Then these issues should be resolved.

I've taken a look at the AMLBaseTypes. There is a ParentNodeId specified, but no reference type.
ParentNodeId, but no reference type
in contrast to this variable will be added ParentNodeId, and reference Type

From my point of view this is an issue in the AML nodeset.

here is the code section which is considering the ParentNodeId:

if (NodesetLoader_isInstanceNode(data)) {