Client uses implicit MethodDeclarationId from Nodeset XML during Call request|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
Client uses implicit MethodDeclarationId from Nodeset XML during Call request
Avatar
Martin Lang
Germany
Member
Members
Forum Posts: 72
Member Since:
06/25/2014
sp_UserOfflineSmall Offline
1
01/31/2022 - 09:02
sp_Permalink sp_Print

Is it intended that a client calls implicit the method of the ObjectType (from the server object, ns=0) instead of the owner Object itself in the CallMethodRequest->ObjectId?

Seen in the instance space Server->ServerConfiguration->CertificationGroups->DefaultApplicationGroup->TrustList functions like OpenWithMasks.

The client request the Method with ObjectId ns=0;i=12642 (the real parent NodeId), but for the MethodId ns=0;i=12543 is used from the ObjectType instead of the real Method ns=0;i12663 below the parent object.

This ends up that some server did not find the HasComponent reference between the server ObjectId and the MethodId to call. Is this intended?

From https://reference.opcfoundatio.....Part3/4.7/

"NOTEThe owning Object or ObjectType is specified in the service call when invoking the Method."

To solve this requirement a server requires internal knowledge about the MethodDeclarationId or check internally whether the ParentNode is from a TrustListType and may redirect the method NodeId to the real method Node callback.

What is the advantage of this kind of behavior/requirement for the client?

Avatar
Randy Armstrong
Admin
Forum Posts: 1457
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
02/01/2022 - 01:00
sp_Permalink sp_Print

There are 3 cases:

1) ModellingRule=None: ObjectId: Type, MethodId: Method of Type;

2) ModellingRule=Mandatory/Optional: ObjectId: Instance, MethodId: Method of Type;

3) ModellingRule=Mandatory/Optional: ObjectId: Instance, MethodId: Method of Instance;

The MethodDeclarationId provides a short cut from the "Method of Instance" to the "Method of Type".

2) and 3) are 2 ways of doing the same thing. 2) was needed because Alarms have Methods (e.g. Acknowledge), however, Alarms do not always have instances in the AddressSpace. It is also useful for Clients that have the ObjectId and TypeDefinitionId because it means they do not need to Browse for the MethodId.

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