拥有服务器实例时如何更改节点的值(node-opcua)

Ast*_*wie 4 opc-ua node-opcua

我正在使用 node-opcua 库。我有 OPCUAServer 实例。如何获取节点值并对其进行编辑?

我认为 OPC 客户端应该能够做到这一点,但我想与 OPC 服务器交互,因为我正在响应内部事件。

我应该使用像WriteRequest这样的东西来执行这样的操作吗?

Eti*_*nne 5

setValueFromSource或者,您可以在变量上使用该方法。这将绕过 writeValue 中发生的所有读/写访问检查。也是同步的

nodeToChange.setValueFromSource({ dataType: "Double", value: 3.14});
Run Code Online (Sandbox Code Playgroud)

setValueFromSource可以采用可选的状态代码

nodeToChange.setValueFromSource(
     { dataType: "Double", value: 3.14}, 
     opcua.StatusCodes.BadWaitingForInitialData
);
Run Code Online (Sandbox Code Playgroud)

如果未指定,则假定 StatusCodes.Good。

和可选的源时间戳

nodeToChange.setValueFromSource(
    { dataType: "Double", value: 3.14},
     opcua.StatusCodes.Good, new Date());
Run Code Online (Sandbox Code Playgroud)