【问题标题】:How can I get OPC UA node name in Eclipse Milo?如何在 Eclipse Milo 中获取 OPC UA 节点名称?
【发布时间】:2021-12-19 13:32:21
【问题描述】:

我按照 github 页面上的 ManagedSubscriptionDataExample.java (https://github.com/eclipse/milo/blob/master/milo-examples/client-examples/src/main/java/org/eclipse/milo/examples/client/ManagedSubscriptionDataExample.java) 示例从 PLC S7-1200 读取 OPC 节点。

节点的值正在更新,但我无法获得名称。

代码:

subscription.addDataChangeListener((items, values) -> {
                for (int i = 0; i < items.size(); i++) {
                    logger.info(
                            "subscription value received: item={}, value={}, valueID={}",
                            items.get(i).getNodeId(), values.get(i).getValue(), items.get(i).getReadValueId());
                }

我得到回应:

INFO:收到的订阅值:item=NodeId{ns=4, id=4}, value=Variant{value=false}, valueID=ReadValueId(nodeId=NodeId{ns=4, id=4},attributeId=13,indexRange=null, dataEncoding=QualifiedName{name=null, namespaceIndex=0})

我看到 name 为 null 并且没有获取节点名称的方法。但是,如果我使用 OPC 客户端“OPC Expert”,我还可以获得节点的名称,就像它们在 PLC 上一样:

还有其他方法可以获取变量名吗?

【问题讨论】:

    标签: java opc-ua milo


    【解决方案1】:

    UaExpert 做的簿记工作比您做的多。您应该知道您为哪些节点创建了 MonitoredItems,并且能够从这些节点获取 BrowseName 或 DisplayName 属性。

    在该回调中,您可以访问 NodeId - 这应该是您访问 Node 和您感兴趣的任何属性的关键。

    【讨论】:

      猜你喜欢
      • 2022-07-08
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多