OPC UA 新手在这里!
我想以编程方式读取 OPC 服务器上可用的节点树,以将树呈现给用户。然后,用户将选择他们感兴趣的节点,应用程序将获取该节点的值。
我要使用的客户端是node-opcua。
我最初的想法是使用session.browse()方法递归地读出所有节点,从根开始:
...
const connectionStrategy = {
initialDelay: 1000,
maxRetry: 1,
}
const client = OPCUAClient.create({
applicationName: "MyClient",
connectionStrategy: connectionStrategy,
securityMode: MessageSecurityMode.None,
securityPolicy: SecurityPolicy.None,
endpoint_must_exist: false,
})
const endpointUrl = "opc.tcp://opcuaserver.com:48010"
async function main() {
await client.connect(endpointUrl)
const session = await client.createSession()
const browseResult = await session.browse("RootFolder") // start with root
for (const reference of browseResult.references) {
// recursively session.browse() nodeId of reference
}
await session.close();
await client.disconnect();
}
递归获取树的方法听起来可行吗?我想树木可以变大。有没有更好的方法?