![](/img/trans.png)
[英]How do I (only) update the timestamp of an OPC UA Node using an Eclipse Milo OpcUa Server?
[英]How can I get OPC UA node name in Eclipse Milo?
我跟着 ManagedSubscriptionDataExample.java ( https://github.com/eclipse/milo/blob/master/milo-examples/client-examples/src/main/java/org/eclipse/milo/examples/client/ManagedSubscriptionDataExample.java ) github 页面上的示例,用于从 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());
}
我得到回应:
信息:收到的订阅值: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})
我看到该名称为空,并且没有方法可以获取节点名称。 但是如果我使用 OPC 客户端“OPC Expert”,我也可以获得节点的名称,就像它们在 PLC 上一样:
还有其他选项可以获取变量的名称吗?
UaExpert 做的记账比你做的多。 您应该知道您为哪些节点创建了 MonitoredItems,并且能够从这些节点获取 BrowseName 或 DisplayName 属性。
在该回调中,您可以访问 NodeId - 这应该是您访问 Node 和您感兴趣的任何属性的关键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.