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) //实时数据变化事件 展开
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) //实时数据变化事件 展开
1个回答
展开全部
这种情况是比较多见的。
这也是 读 OPC 数据容易出现的假死情况。
情况的原因很多,有的是OPC对外的服务管道出现问题,有的是数据触发出现问题。
你可以在 DataChange里做日志记录,看看读不到数据时的状况,以及故障发生的周期是否比较固定,再做进一步判断。
如果周期比较固定,可以采用 C# 程序定时重置连接的方式来解决。
这也是 读 OPC 数据容易出现的假死情况。
情况的原因很多,有的是OPC对外的服务管道出现问题,有的是数据触发出现问题。
你可以在 DataChange里做日志记录,看看读不到数据时的状况,以及故障发生的周期是否比较固定,再做进一步判断。
如果周期比较固定,可以采用 C# 程序定时重置连接的方式来解决。
更多追问追答
追问
假死情况!
如果新建一个线程,来单独 做 实时数据更新的工作, 是否可以解决此问题
追答
这种假死,不是程序没有响应。
而是, C# 与 OPC SERVER 直接的连接管道pipe 出现假死。
虽然显示的是未断开,但是内部已经不再工作了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |