关于使用OPCDAAuto.dll连接OPCServer的问题

文久 2018-02-07 08:52:17
使用OPCDAAuto.dll开发的客户端,在本地连接Matrikon OPC Server。
可以连上OPC Server,可以创建Group,可以添加点。以订阅方式,可以通过Datachange收到数据。
但是有两个问题:
1、可以正常设定Group的deadband参数,设定后,再去读取deadband参数,可以看到Group的deadband参与已经改变为设定值。但是无法正常设定UpdateRate参数。设定后,再去读取UpdateRage参数,可以看到该值始终保持100ms。
2、DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)函数收到的TimeStamps值,毫秒值一直为0。但是实际服务器端数据的 变化速率肯定快于1s。为什么使用OPCDAAuto.dll返回的时间戳,收不到毫秒值。
...全文
943 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Airboy1 2019-02-18
  • 打赏
  • 举报
回复
最近项目需要使用C#读写OPC Server,可以把源码发下参考吗,谢谢您了?
永恒的放逐 2018-03-19
  • 打赏
  • 举报
回复
在连接前修改参数,这样参数设置有效,如果Connect之后修改参数不起作用,你可以试试看 MyServer.OPCGroups.DefaultGroupIsActive = true;//激活组。 MyServer.OPCGroups.DefaultGroupDeadband = 0;// 死区值,设为0时,服务器端该组内任何数据变化都通知组。 MyServer.OPCGroups.DefaultGroupUpdateRate = 100;//默认组群的刷新频率为100ms MyServer.Connect(remoteServerName, remoteServerIP);//连接本地服务器:服务器名+主机名或IP
SoulRed 2018-03-13
  • 打赏
  • 举报
回复
本地测试的话0ms很正常,他有可能是返回的近似值,例如0.4ms他取整后就成0了。四舍五入嘛,如果想测这个函数是否真的是否正常工作。你可以部署在外网,测试

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧