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

问题描述 投票:0回答:1

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

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

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

opc opc-ua
1个回答
2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.