一次订阅多个OPC-UA节点

时间:2019-01-31 19:12:38

标签: opc opc-ua node-opcua

我需要订阅〜1000个节点,这些节点是按层次结构创建的,例如:

  

ns = 2; s = 0:制造E01。环境温度

     

ns = 2; s = 0:Manufacturing.E01.Ambient.WindDir

     

ns = 2; s = 0:Manufacturing.E01.Commands.AckAllErrors

     

ns = 2; s = 0:制造E03。环境温度

     

ns = 2; s = 0:Manufacturing.E03.Ambient.WindDir

     

ns = 2; s = 0:Manufacturing.E03.Ambient.WindSpeed

我以相同的方式对待每个更新,因此对每个更新调用subscription.monitor()函数并创建一个新的回调函数似乎并不是我的最佳方法。

是否可以使用某种模式预订多个节点,例如属于以下所有节点:

  

ns = 2; s = 0:Manufacturing.E01。

1 个答案:

答案 0 :(得分:3)

不,不是- 在OPC UA中无法订阅“文件夹”。

处理这种情况最简单的方法是,首先使用OPC UA 浏览服务浏览文件夹。

OPC UA服务器将从您请求的起始节点返回所有引用(OPC UA父子引用可能是组织 HasComponent ,具有属性,...)。

然后,您可以使用OPC UA CreateSubscription / CreateMonitoredItems 服务来订阅节点。