【发布时间】: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 上一样:
还有其他方法可以获取变量名吗?
【问题讨论】: