如何在 Eclipse Milo 中获取 OPC UA 节点名称?
Posted
技术标签:
【中文标题】如何在 Eclipse Milo 中获取 OPC UA 节点名称?【英文标题】:How can I get OPC UA node name in Eclipse Milo? 【发布时间】: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=NodeIdns=4, id=4, value=Variantvalue=false, valueID=ReadValueId(nodeId=NodeIdns=4, id=4,attributeId=13,indexRange=null, dataEncoding=QualifiedNamename=null, namespaceIndex=0)
我看到 name 为 null 并且没有获取节点名称的方法。但是,如果我使用 OPC 客户端“OPC Expert”,我还可以获得节点的名称,就像它们在 PLC 上一样:
还有其他方法可以获取变量名吗?
【问题讨论】:
【参考方案1】:UaExpert 做的簿记工作比您做的多。您应该知道您为哪些节点创建了 MonitoredItems,并且能够从这些节点获取 BrowseName 或 DisplayName 属性。
在该回调中,您可以访问 NodeId - 这应该是您访问 Node 和您感兴趣的任何属性的关键。
【讨论】:
以上是关于如何在 Eclipse Milo 中获取 OPC UA 节点名称?的主要内容,如果未能解决你的问题,请参考以下文章
Springboot 实现操作OPC ua Server 的数据读写 | 代码教程
Springboot 实现操作OPC ua Server 的数据读写 | 代码教程