连接到具有字符串标识符的节点
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,只要格式正确,就可以正常工作。您要解析什么值?
我正在尝试使用 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,只要格式正确,就可以正常工作。您要解析什么值?