我正在使用节点 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 函数,但我希望获得具体时间序列的数据。
如何做到这一点?