1

我正在使用节点 opc ua 客户端连接到 opc ua 服务器。我在服务器上添加了一个项目的订阅,如下所示:

...

addMonitoringFor(opcNode, callback) {
  const monitoredItem = opcSession.monitor({
      nodeId: opcua.resolveNodeId(opcNode.nodeId),
      attributeId: opcua.AttributeIds.Value
    }, {
      samplingInterval: 100,
      discardOldest: true,
      queueSize: 10
    },
    opcua.read_service.TimestampsToReturn.Both
  );

  monitoredItem.on("changed", dataValue => {
    if (dataValue === undefined || dataValue.value === null) {
      callback(`The subscription for the Opc Servernode ${opcNode.nodeId.replace(/\./g, " ")} failed.`);
    } else {
      callback(null, dataValue.value.value);
    }
  });
}

...

仅在数据实际更改时才调用 on change 函数,但我希望获得具体时间序列的数据。

如何做到这一点?

4

0 回答 0