open62541 浏览节点和使用它的方法

Posted

技术标签:

【中文标题】open62541 浏览节点和使用它的方法【英文标题】:open62541 browsing nodes an using its methods 【发布时间】:2020-02-07 12:10:05 【问题描述】:

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

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

例如: 我想浏览比根文件夹更深的节点“文件系统”,并想使用它的方法createFile。

【问题讨论】:

【参考方案1】:

要调用一个方法,你需要两个节点id:

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

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

从根节点(ns=0;i=84)开始,递归浏览所有子节点,直到找到具有特定浏览名称的节点。 https://github.com/open62541/open62541/blob/58bd161557111847d068650eff5ad670a9aa0395/examples/client.c#L61

如果您有浏览路径,请使用 TranslateBrowsePathsToNodeIds 服务。即,给/Objects/MyDevice/FileSystem/UploadFile(浏览名称的串联)和起始节点Root(ns=0;i=84),如果存在,服务器将返回该特定节点的节点ID。该服务采用相对路径,因此您也可以使用其他节点作为起始节点 https://github.com/open62541/open62541/blob/58bd161557111847d068650eff5ad670a9aa0395/examples/client_async.c#L183

【讨论】:

以上是关于open62541 浏览节点和使用它的方法的主要内容,如果未能解决你的问题,请参考以下文章

从 open62541Client 读取节点的 UA_Arguments

使用 Visual Studio 2017 构建 open62541 DLL

客户端和服务器之间的双工通信 open62541(OPC-UA)

open62541:同时获取订阅的所有变更监控项

在 Windows 中使用 open62541 构建一个简单的服务器

open62541:发布温度值