如何解决将OPCDA客户端与OPC UA服务器进行通信
所以,这是我第一次在这里发帖,所以请耐心等待(不是英语为母语的人) 我在一个项目中必须将OPC DA客户端连接到OPC UA服务器(西门子PLC)。 三个月前,我从未听说过OPC,PLC等。这对我来说是全新的,而且有些令人困惑。 到目前为止,我在OPC DA客户端中使用包装器(OPC专家),将其显示为OPC UA服务器。 所以我在两端都有两个服务器,在中间(我正在工作)的一个客户端(C#堆栈)进行通信。 客户端为每个服务器打开两个会话,并在双方订阅感兴趣的项目(标签)。因此,我一方面获得了更改,另一方面将其写入。目前,我正在使用两个线程来读取每个订阅并写入更改。我正在使用一个文件,该文件将节点从一台服务器映射到另一台服务器中的节点。引号之间是文件的一行,(+)是分隔符。 “ ns = 3; s = UMUARAMA-> OA.OpcOAenterprise.1-> Test.Equipment.Motor.CV_E101.EquipmentControlCommand + ns = 3; s =” MotorControl_CV_E101“。” EquipmentCommand“。” 目前,我正在逐一读取预订中的MonitoredItems,并且如果找到任何值,则将该值写入另一台服务器。我敢肯定,有很多不那么愚蠢的方法可以做到这一点。因此,我正在寻求一些建议。预先感谢。
解决方法
我不知道您的包装器具有哪个api,但是在OPC UA中,您可以将事件注册到MonitoredItem,该事件在更改节点值时触发。
您可以在Github Repository from the OPCFoundation
中找到注册和处理程序的示例(606行)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。