问题描述
我是学生,我需要OPC UA连接。我花了将近一个星期的时间独自尝试解决此问题,但没有成功,所以我想问几件事,如果有人可以帮助我,我将感到非常高兴。
1)订阅结构(带有字段的对象) 我需要订阅包含两个数组(代表曲线)的对象,因此存在带有x坐标的数组和带有y坐标的数组,但是我不知道该怎么做。我可以分别订阅它们,但不能订阅整个结构。
2)是否有可能不使用端点发现来订阅? 我之所以要问的原因是,我想自己创建一个连接,所以甚至认为当我的应用程序可用时,OPC UA服务器暂时无法运行。当我使用端点发现时,这是不可能的,因为它没有运行。但是我认为如果我手动创建端点,milo应该处理重新连接,还是我错了?
JakubZnamenáček
解决方法
-
您只需使用结构化值订阅变量的NodeId。您必须确保启动时客户端正在读取DataTypeDictionary。参见this example。如果服务器正确地在数据类型字典中公开了结构定义,则不需要太多其他操作。
-
您有责任重试直到拥有EndpointDescription。一旦有了端点并创建了
OpcUaClient
实例,它将在第一次调用connect()
之后连接并保持重新连接,但是您必须获取端点并自行配置客户端。