dathlin / OpcUaHelper

一个通用的opc ua客户端类库,基于.net 4.6.1创建,基于官方opc ua基金会跨平台库创建,封装了节点读写,批量节点读写,引用读取,特性读取,历史数据读取,方法调用,节点订阅,批量订阅等操作。还提供了一个节点浏览器工具。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Subscription读取数据不全

davidchiu2005 opened this issue · comments

我通过subscription来订阅一个第三方opc ua server(KepserverEX 6.4)上的数据,共10个node,

每个node每隔100ms产生一个值,该值通过函数来生成,是递增的,这样能确保每个周期都有数据
通知到subscription;

但奇怪的是,不管server安装在局域网内的另一台机子上还是本机上,subscription订阅到的数据

都有缺失;作为对照,使用了java编译的另一个ua客户端来订阅数据,收到的数据是齐全的,同时,server本地存储的数据也是齐全的。

 所以,我不确定是是不是opc foundation提供的库有问题。不知道您有没有测试过相关的性能。

谢谢解答!

可能是 Subscription.PublishingInterval 的問題
若 PublishingInterval = 1000ms, 則一秒只會收到一筆通知

测试中,我已经设置为PublishingInterval = 0ms了

emmmm. 这部分是官方opc ua内核项目的源代码部分,和封装的没有没关系。原因需要进一步分析。

WinCC作为OPC UA服务器,订阅会丢失,我们暂且采用轮训解决。
若实在解决不了,我们订阅封装就打算直接采用轮训了。

https://github.com/lvyecangshan/Infrastructure/blob/master/Src/Infrastructure.Opc.OpcUaHelper/OpcClientByOpcUaHelper.cs

我测试一下试试,谢谢!

啊....链接不在了