我有一个场景,OPCUA 客户端不知道 OPCUA 服务器地址空间的构造,但客户端仍然知道连接凭据。OPCUA 客户端是否仍然可以在没有命名空间和节点 ID 的情况下访问来自服务器的数据。
我一直在通过在客户端请求期间指定命名空间和节点 ID 来获取服务器数据。
谁能帮我详细了解OPC UA 数据访问?
我有一个场景,OPCUA 客户端不知道 OPCUA 服务器地址空间的构造,但客户端仍然知道连接凭据。OPCUA 客户端是否仍然可以在没有命名空间和节点 ID 的情况下访问来自服务器的数据。
我一直在通过在客户端请求期间指定命名空间和节点 ID 来获取服务器数据。
谁能帮我详细了解OPC UA 数据访问?
TL;博士; 是的,您可以使用浏览服务来获取服务器内所有节点的列表。
更详细的答案:
每个服务器至少应该有以下节点(文件夹)。括号中是规范给出的命名空间 0(OPC UA 基本命名空间)中的节点 ID。
- Root (i=84)
- Objects (i=85)
- Types (i=86)
- Views (i=87)
从此处OPC UA 规范注册后,可以免费下载 OPC UA 规范第 4 部分。它定义了服务Browse
和BrowseNext
. 使用这些服务,您可以指示一个起始节点(即上述节点之一,例如,Root = namespace 0, ID 84)并获取其所有子节点。
node-opcua
您可以在这里找到一些示例代码:https ://github.com/node-opcua/node-opcua/blob/fd5e48bac996625aaa7c177d1f8ed0c40ee92fbc/test/end_to_end/u_test_e2e_BrowseRequest.js
在 open62541 中,浏览节点的示例如下所示: https ://github.com/open62541/open62541/blob/master/examples/client.c#L55