C# winform程序连接OPC服务器,用事务实时显示服务器数据。 但是在程序运行2个多小时后,实时更新不起作用

另外程序中还有个Timer定时器,整点写入数据库中的OPC服务器中的数据还是会变化的,连接没断,就是不实时显示数据了急,提供个可行的方案,谢谢unsafepublicde... 另外程序中还有个Timer定时器,整点写入数据库中的

OPC服务器中的数据还是会变化的,连接没断,就是不实时显示数据了

急,提供个可行的方案,谢谢
unsafe public delegate void DATACHANGEPROC(uint sHandle, uint gHandle, uint iHandle, object value, long timeStamp, ushort quality);

初始化函数中 m_dataChange = new DATACHANGEPROC(DataChange);

连接OPC服务器中,有调用
ASDAC_SetDataChangeProc(m_ServerHandle, m_dataChange);

unsafe public void DataChange(uint sHandle, uint gHandle, uint iHandle, object value, long timeStamp, ushort quality) //实时数据变化事件
展开
 我来答
百度网友94f02eb
2011-04-21 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4468万
展开全部
这种情况是比较多见的。
这也是 读 OPC 数据容易出现的假死情况。
情况的原因很多,有的是OPC对外的服务管道出现问题,有的是数据触发出现问题。
你可以在 DataChange里做日志记录,看看读不到数据时的状况,以及故障发生的周期是否比较固定,再做进一步判断。

如果周期比较固定,可以采用 C# 程序定时重置连接的方式来解决。
更多追问追答
追问
假死情况!
如果新建一个线程,来单独 做 实时数据更新的工作, 是否可以解决此问题
追答
这种假死,不是程序没有响应。
而是, C# 与 OPC SERVER 直接的连接管道pipe 出现假死。

虽然显示的是未断开,但是内部已经不再工作了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式