Numeric Node ID -> Method Call|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
Numeric Node ID -> Method Call
Avatar
Martin Fröls
New Member
Members
Forum Posts: 2
Member Since:
01/25/2017
sp_UserOfflineSmall Offline
1
02/03/2020 - 09:37
sp_Permalink sp_Print

Dear all experts,

 

i do have may be a tiny but sad making problem:

How do i call a method which does have an numerical node identifier type (and not an string type)? 

A very lot of documentation is based on an String-Type like "s=Machine/Start", but i do need something like

"i=909/Clear capture 1". 

And it seems to be that the "Opc.UaFx.Client" -> "CallMethod" routine generates automatically an OPCNodeID with condition type node 

during call, which end in error message "Used to indicate that the specified ObjectId is not valid or that the Method was called on the

ConditionType Node."

 

More Informations:

Used Language: .NET Console Application with VB

Node Address: "Root/Objects/Clear capture 1" or "Root/Objects/909"

NamespaceIndex: 1

Identifier Type: Numeric

Identifier: 909

NodeClass: Method

BrowseName: 1,"Clear capture 1"

DisplayName: "","Clear capture 1"

Description: "",""

Device is: Clip X Measurement Amplifier from HBM

 

It is definitely possible to call that method. Tried with two test clients:

1. UA Expert

2. OPC Watch from Traeger

 

I would be very happy about any help. 🙂

Avatar
Randy Armstrong
Admin
Forum Posts: 1445
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
02/03/2020 - 11:07
sp_Permalink sp_Print sp_EditHistory

NodeIds are opaque IDs no matter the DataType. There are 2 ways to get a Method NodeId:

1) Have knowledge of the information model and use the NodeId of the Method Declaration on the TypeDefinition.

2) Use the Browse or TranslatePathToNodeIds service on the Object and use the NodeId returned.

Neither way requires that you treat NodeIds with different DataTypes differently.

When conditions are not exposed in the address space as Objects then 1) is only option.

i.e. to acknowledge a condition you would pass in the ConditionID as the ObjectID and the NodeId of the AcknowledgeableConditionType.Acknowledge node.

https://reference.opcfoundatio.....rt9/5.7.2/

Avatar
Martin Fröls
New Member
Members
Forum Posts: 2
Member Since:
01/25/2017
sp_UserOfflineSmall Offline
3
02/04/2020 - 03:22
sp_Permalink sp_Print

Hi Randy,

thank you very much. The information is correct and good.

 

My problem is solved!

The node id, i have written above, is already the method id and the first node id requested by MethodCall(nodeId, nodeId)

is the node id one layer above, here the Objects folder.

 

OMG Martin think next time smarter.... 🙂

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