OPC UA - opcua milo eclipse - 重新连接,手动创建连接,订阅结构(对象)
OPC UA - opcua milo eclipse - reconnection, manual creation of connection, subscription to structure (object)
我是一名正在写论文的学生,我需要 OPC UA 连接。我花了将近一周的时间试图自己解决这个问题,但没有成功,所以我想问一些问题,如果有人能帮助我,我会很高兴。
1) 订阅结构(带字段的对象)
我需要订阅包含两个数组(代表曲线)的对象,所以有 x 坐标的数组和 y 坐标的数组,但我不知道该怎么做。我可以单独订阅它们,但不能订阅整个结构。
2) 是否可以不使用端点发现来订阅?
我问的原因是我想自己创建连接,所以即使我认为 OPC UA 服务器不是 运行,但我的应用程序会在它可用时连接到它。当我使用端点发现时这是不可能的,因为它不是 运行。但我认为如果我手动创建端点或者我错了,milo 应该处理重新连接?
Jakub Znamenáček
您只需订阅一个结构化值的Variable的NodeId。您必须确保客户端在启动时读取 DataTypeDictionary。参见 this example。如果服务器在数据类型字典中正确公开结构定义,则不需要太多其他内容。
您有责任重试,直到获得 EndpointDescription。一旦你有了端点并创建了一个 OpcUaClient
实例,它会在你第一次调用 connect()
后连接并保持重新连接,但你必须自己获取端点并配置客户端。
我是一名正在写论文的学生,我需要 OPC UA 连接。我花了将近一周的时间试图自己解决这个问题,但没有成功,所以我想问一些问题,如果有人能帮助我,我会很高兴。
1) 订阅结构(带字段的对象) 我需要订阅包含两个数组(代表曲线)的对象,所以有 x 坐标的数组和 y 坐标的数组,但我不知道该怎么做。我可以单独订阅它们,但不能订阅整个结构。
2) 是否可以不使用端点发现来订阅? 我问的原因是我想自己创建连接,所以即使我认为 OPC UA 服务器不是 运行,但我的应用程序会在它可用时连接到它。当我使用端点发现时这是不可能的,因为它不是 运行。但我认为如果我手动创建端点或者我错了,milo 应该处理重新连接?
Jakub Znamenáček
您只需订阅一个结构化值的Variable的NodeId。您必须确保客户端在启动时读取 DataTypeDictionary。参见 this example。如果服务器在数据类型字典中正确公开结构定义,则不需要太多其他内容。
您有责任重试,直到获得 EndpointDescription。一旦你有了端点并创建了一个
OpcUaClient
实例,它会在你第一次调用connect()
后连接并保持重新连接,但你必须自己获取端点并配置客户端。