UAExpert cannot work correctly with subtypes of an abstract type when calling methods

Questions regarding the use of the UaExpert.

Moderator: uaexpert

Post Reply
Barbara Again
Jr. Member
Jr. Member
Posts: 1
Joined: 12 Sep 2024, 02:21

UAExpert cannot work correctly with subtypes of an abstract type when calling methods

Post by Barbara Again »

When calling methods on custom objects which take abstract data types as arguments, UAExpert is unable to prompt correctly for subtypes of the abstract data type.

More precisely, this does not work when the abstract data type is contained in a custom data type. I have observed it working correctly when the abstract data type is contained inside a data type from the base OPC/UA nodeset.

1. Calling a method with a custom argument type:
Image (https://ibb.co/vz84HQ4)

2. UAExpert prompts for the argument:
Image (https://ibb.co/7R8YTBF)

3. When the list of these items of a standard abstract database is filled, the elements are stale, and it is impossible to edit them and select a non-abstract subtype:
Image (https://ibb.co/hdvs0B6)

4. However, when calling a method that takes a standard type that has a list of items of the abstract data type inside:
Image (https://ibb.co/ZhFmYjd)

5. UAExpert prompts for the standard argument type:
Image (https://ibb.co/zNgPf5v)

6. Each of the items in the list has a 'type selector' ellipse next to it:
Image (https://ibb.co/1Q3x5wF)

7. When the list item is clicked, a dialog pops up to select the actual non-abstract type:
Image (https://ibb.co/Yj6fdkr)

The logfile is inconclusive. It only has entries like 'Browse succeeded'. When opening the argument type dialog, a message 'Read result returned 1 status 'Good'' appears in the log window in red, but since the status is 'Good', why is it red? and this happens for both types, both the standard type that can be populated correctly, and the custom type that can't.
===========================================================
15:36:16.617 | Attribute Plugin | My Sample Server | Read attributes of node 'NS11|Numeric|5001' succeeded [ret = Good].
15:37:03.743 | Reference Plugin | My Sample Server | Browse succeeded.
15:37:03.745 | Attribute Plugin | My Sample Server | Read attributes of node 'NS11|Numeric|7003' succeeded [ret = Good].
15:37:05.934 | Method Plugin | My Sample Server | The method has input and output arguments
15:37:05.952 | Method Plugin | My Sample Server | Read result 1 returned status 'Good'
15:37:16.475 | AddressSpaceModel | My Sample Server | Browse on node 'i=23603' succeeded.
15:37:18.296 | AddressSpaceModel | My Sample Server | Browse on node 'i=23608' succeeded.
15:37:22.955 | AddressSpaceModel | My Sample Server | Browse on node 'i=23603' succeeded.
15:37:25.007 | AddressSpaceModel | My Sample Server | Browse on node 'i=23604' succeeded.
15:37:37.371 | Reference Plugin | My Sample Server | Browse succeeded.
15:37:37.373 | Attribute Plugin | My Sample Server | Read attributes of node 'NS11|Numeric|7004' succeeded [ret = Good].
15:37:38.941 | Method Plugin | My Sample Server | The method has input and output arguments
15:37:38.966 | Method Plugin | My Sample Server | Read result 1 returned status 'Good'
===========================================================

Expectation is that when an argument type is being prompted, and the type has a scalar or list field of an abstract data type in it, then it should be possible to insert a non-abstract subtype of the abstract data type into that field or that list.

UAExpert version 1.7.1 540

User avatar
Support Team
Hero Member
Hero Member
Posts: 3171
Joined: 18 Mar 2011, 15:09

Re: UAExpert cannot work correctly with subtypes of an abstract type when calling methods

Post by Support Team »

Hello Barbara,

Thank you for the detailed description. As far as we can see from the information about your DataType, we created a similar DataType in a demo server and are not able to reproduce the problem.

Please check if your server has the correct field definition?

The relevant structure field must be marked as “AllowSubtype”. If you select the structure DataType in UaExpert you should see the following in the Attributes widget:
For DataTypeDefinition attribute:
--> StructureType 3 (StructureWithSubtypedValues)
For the affected structure field:
--> isOptional = true
Best regards
Unified Automation Support Team

Post Reply