我需要订阅〜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。
答案 0 :(得分:3)
不,不是- 在OPC UA中无法订阅“文件夹”。
处理这种情况最简单的方法是,首先使用OPC UA 浏览服务浏览文件夹。
OPC UA服务器将从您请求的起始节点返回所有引用(OPC UA父子引用可能是组织, HasComponent ,具有属性,...)。
然后,您可以使用OPC UA CreateSubscription / CreateMonitoredItems 服务来订阅节点。