连接到具有字符串标识符的节点

Connect to a node with a String identifier

我正在尝试使用 Eclipse Milo 编写通用 OPC-UA 连接器。 当我使用数字节点 ID(例如 ns=0;i=2258 时,从节点读取数据已经可以正常工作。在 milo 中,我可以像这样简单地构造 nodeID,例如:

NodeId nodeIdentifier = new NodeId(Unsigned.ushort(nameSpaceID), uint(nodeID));

而且效果很好。

但是当我尝试连接到带有生产节点字符串标识符的注释时,该节点只有一个字符串标识符,如图所示

进程失败并出现 StatusCode{name=Bad_NodeIdUnknown, value=0x80340000, quality=bad} 异常。 我像这样创建 nodeIdentifier NodeId nodeIdentifier = NodeId.parse(nodeIDString);

解析后的值如下所示:

ns=1;s=t|023_Messwert

首先,您不能因为喜欢就决定使用基于字符串的 NodeId。如果服务器将其公开为基于整数的 NodeId,那么这就是您必须使用的,就像 CurrentTime 节点被 ns=0;i=2258.

标识的情况一样

通过 NodeId.parse 解析基于字符串的 NodeId,只要格式正确,就可以正常工作。您要解析什么值?