客户端和服务器之间的双工通信 open62541(OPC-UA)

问题描述

我想在客户端和服务器之间建立双向数据通信。以下示例说明了我想要实现的目标。

例如:客户端每秒发送一个请求以读取两个节点 ID(这些节点 ID 是数字)的值。然后在客户端程序中添加这些数字并将其提供给用户。 然后在 60 秒后,服务器告诉客户端乘以这个数字。所以现在客户端每秒都在乘以节点 ID 的值。然后在 60 秒后,它再次切换回加法。 我可以通过客户端从服务器请求数据,但我想弄清楚如何让服务器从客户端请求数据?

编辑:我想在我原来的问题中添加一些新信息。原因是让帖子更清晰。下图描述了我想要实现的目标。

enter image description here

在上图中,provider 可以可视化为服务器方法,consumer 可以可视化为客户端方法。现在如果安全消费者2(客户端2)连接到安全提供者2(服务器2),如何将从安全提供者2接收到的数据传递给安全提供者1。(因为客户端只能连接到单个服务器)。open62541的特性是否允许以下数据流: 安全提供者 2--> 安全消费者 2 --> 安全提供者 1?如果是,你能提供一个例子吗?谢谢

解决方法

OPC UA 的工作原理并非如此。

相反,您的客户端可以监视服务器中某个 VariableNode 的 Value 属性,然后根据当前值以某种方式运行。

,

OPC UA 协议执行其文档指定的操作,而您要求的操作是不可能的。

但是您可以让客户端读取值和乘数,并在客户端执行您想要的操作,除了 OPC UA