open62541 / open62541-nodeset-loader

Library for loading opc ua nodesets from xml and sorting the nodes
Mozilla Public License 2.0
26 stars 23 forks source link

Missing inverse references in companion specification #205

Open keba-uso opened 1 year ago

keba-uso commented 1 year ago

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:

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.

matkonnerth commented 1 year ago

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.

matkonnerth commented 1 year ago

here is the code section which is considering the ParentNodeId: https://github.com/open62541/open62541-nodeset-loader/blob/3760a45d2706b83bc91503d1e40f04394bc3f2ec/src/Sort.c#L300