open62541浏览节点并使用其方法

问题描述 投票:0回答:2

我想浏览我的OPC UA服务器上的特定节点并使用其方法。我使用open62541堆栈,我想使用一个自制客户端。我的客户端连接到服务器,然后使用给定的示例to browse some Objects。它显示了根文件夹之后的第一层节点-如何找到特定的节点?还是我浏览到这一点?在open62541项目中是否有示例文件,我看不到会打开我的眼睛?

我也找到方法“ Service_TranslateBrowsePathsToNodeIds”,但我不太确定如何正确使用它,哪一部分对我来说很有趣。

例如:我想浏览节点“ FileSystem”,该节点位于比根文件夹更深的一层,并希望使用其方法createFile。

client opc-ua open62541
2个回答
0
投票

要调用方法,您需要两个节点ID:

  • 包含方法的对象节点ID
  • 方法节点ID

如果已经有了这些节点ID,则可以立即调用该方法。如果不,OPC UA通常支持两种方法来获取这些节点ID:


0
投票

如果我有节点ID,我可以使用UA_Client_call方法吗?还是我必须使用UA_Client_call_async?我尝试使用您的示例并将其修改为

UA_Variant input;
UA_String argString = UA_STRING("Hello");
UA_Variant_init(&input);
UA_Variant_setScalarCopy(&input, &argString, &UA_TYPES[UA_TYPES_STRING]);
size_t outputSize;
UA_Variant *output;
retval = UA_Client_call(client, UA_NODEID_STRING(3, "FileSystem"),UA_NODEID_NUMERIC(0, 13390), 1, &input, &outputSize,&output);

我希望我调用方法13390并为其提供输入字符串。我想用字符串作为名称创建一个新文件,但不幸的是它不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.