01/25/2017
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. 🙂
05/30/2017
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.
01/25/2017
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.... 🙂
1 Guest(s)