我正在使用 OPC-UA .Net 堆栈学习 OPC-UA。订阅和发送数据的示例是在服务器端以 1 秒的刷新周期显式创建的——即每秒更新变量的值,其余的(通知客户端)由 OPC-UA 堆栈处理。由于循环是手工制作的,这意味着即使根本没有订阅它也可以工作。
好的。但是我想稍微反转一下——不要给变量设置静态值,不要依赖这个手动刷新周期,而是每当变量即将被读取(订阅需求)时,动态计算值并返回它给客户。
我OnReadValue
在变量上添加了处理程序,当客户端订阅该值时,它被触发,该值被计算并返回。几乎正是我所希望的 - 问题是它只完成一次。
我猜由于客户端每隔一段时间请求更新,因此在服务器上会有一些循环以这样的时间间隔进行。如何告诉服务器再次读取变量(以触发处理程序)?