![](/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.