【问题标题】:Creating a Table in Node OPCUA在节点 OPCUA 中创建表
【发布时间】:2016-10-10 04:42:56
【问题描述】:

如何通过双向镜像将地址空间扩展到您的 SQL 数据库中,它会立即反映对端的变量或数据库端的任何值变化。 因此,如果我在数据库中有一个表,其值可以从外部更改(例如可以添加、删除或更新数据),我的 node-opcua 服务器将如何得到通知?

【问题讨论】:

    标签: node.js opc-ua


    【解决方案1】:

    在 OPC UA 中,创建的任何服务器都将遵循 SoA 架构。意思是服务器只有在某些服务请求时才会处理请求。

    在您的情况下,您可以借助订阅数据更改和监控将数据库中的表公开给客户端的节点来实现这一点。只有当该节点暴露给客户端时,才能订阅数据更改。

    一旦节点订阅了数据更改,服务器需要从客户端获取 2 个值。

    • 采样间隔:服务器刷新源数据的频率
    • 发布间隔:客户端请求服务器通知的频率。

    例如,采样间隔为 100 毫秒,发布间隔为 1 分钟。这意味着服务器必须每 100 毫秒从源(在您的情况下可能是数据库)收集样本,但客户端将每 1 分钟请求所有收集的样本。

    您将能够使用数据库中表的更改值来更新服务器。

    如果 SDK 支持多线程,那么还有另一种方法可以实现上述问题。

    • 在服务器应用程序中,让数据源(即数据库)对象在一个线程中运行。
    • 创建一个到服务器应用层的回调并用这个回调初始化数据源对象。
    • 当数据库中的数据发生变化时,触发从数据库调用数据源线程。如果是需要的数据,需要通知服务器,则调用之前初始化的回调函数。

    我希望这回答了你的问题。

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多