OPC UA-Opcua Milo Eclipse-重新连接,手动创建连接,订阅结构对象

问题描述

我是学生,我需要OPC UA连接。我花了将近一个星期的时间独自尝试解决此问题,但没有成功,所以我想问几件事,如果有人可以帮助我,我将感到非常高兴。

1)订阅结构(带有字段的对象) 我需要订阅包含两个数组(代表曲线)的对象,因此存在带有x坐标的数组和带有y坐标的数组,但是我不知道该怎么做。我可以分别订阅它们,但不能订阅整个结构。

2)是否有可能不使用端点发现来订阅 我之所以要问的原因是,我想自己创建一个连接,所以甚至认为当我的应用程序可用时,OPC UA服务器暂时无法运行。当我使用端点发现时,这是不可能的,因为它没有运行。但是我认为如果我手动创建端点,milo应该处理重新连接,还是我错了?

JakubZnamenáček

解决方法

  1. 您只需使用结构化值订阅变量的NodeId。您必须确保启动时客户端正在读取DataTypeDictionary。参见this example。如果服务器正确地在数据类型字典中公开了结构定义,则不需要太多其他操作。

  2. 您有责任重试直到拥有EndpointDescription。一旦有了端点并创建了OpcUaClient实例,它将在第一次调用connect()之后连接并保持重新连接,但是您必须获取端点并自行配置客户端。