我订阅标签后如何知道plc连接是否丢失?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我订阅标签后如何知道plc连接是否丢失?相关的知识,希望对你有一定的参考价值。

我创建了一个客户端应用程序,它具有通过OPC UA服务器监视多个标签的订阅(c#)。如果在客户端运行时OPC服务器和PLC之间的连接丢失,则客户端将停止从服务器接收信息,并且永远不会通知plc不再可访问。

我正在评估通过OPC服务器为一个标签实现定期读取操作,以实际知道plc连接是否有效,但如果OPC UA中存在本机机制,我想避免它。

是否有一种方法(例如,一个事件)通知客户端与plc的连接是否因运行的订阅而丢失?

答案

当与目标系统的连接丢失时,兼容的OPC UA服务器必须发送带有“错误”状态代码之一的通知。这是正常的通知事件,与“好”通道事件相同,它只是携带一个不同的DataValue,它恰好具有设置了相应位的StatusCode,因此它表明存在问题。

因此,您需要检查传入通知中的StatusCode。如果您已经这样做了,但是服务器在通信丢失的情况下确实没有发送任何内容,您需要向服务器供应商投诉,因为这种行为对于任何严肃的服务器都不是真的可以接受。

注意:在订阅受监控项目时,有一些方法可以指定数据更改“过滤器”,您可以判断是否要通知,例如只是时间戳改变而不是值等。但无论如何设置过滤器,都会发送StatusCode中的更改。因此,问题不在于具有不正确的滤波器组。

以上是关于我订阅标签后如何知道plc连接是否丢失?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Flutters 应用内购买插件检查订阅有效性?

PLC 未连接到 KEP 服务器 (OPC)

多个下载按钮

IIS中如何设置服务器session丢失问题。

西门子PLC和GE的PLC如何走以太网通讯?

snap7协议连接plc被拒绝