Nodes 节点
ua.nodes 是 Lazy Load 节点访问器, 让你像操作本地对象一样访问远程节点; 同时 OpcUaSession 上一组 browse 方法直接走 NodeId 字符串.
子页跳转
- 节点容器入口请参考 NodeCollection.
- 单节点包装请参考 OpcUaNode.
- 单层浏览请参考 Browse.
- 续翻分页请参考 BrowseNext.
- 含 ContinuationPoint 的浏览请参考 BrowseWithPaging.
- 路径批量解析请参考 TranslateBrowsePaths.
- 高频访问加速请参考 RegisterNodes.
三种访问节点的方式
# 方式 1: NodeId 字符串直接访问 (最直白, 最省 RPC)
with ua.read("ns=2;s=Temperature") as dv:
print(dv.value)
# 方式 2: Lazy Load 索引器 (像本地对象, 探索式)
node = ua.nodes["ns=2;s=Temperature"]
print(node.display_name, node.value)
t = ua.nodes.server["ServerStatus"]["CurrentTime"]
print(t.value)
# 方式 3: 路径解析
node = ua.resolve("/Objects/Server/ServerStatus/CurrentTime")
with node.value as dv:
print(dv.value)
三种方式底层都走相同 RPC, 选你觉得最自然的就行.
选择指南
| 场景 | 推荐 |
|---|---|
| 已知精确 NodeId (生产代码) | 方式 1 字符串 |
| 标准 ns=0 节点 | 方式 2 + WellKnownNodes |
| 浏览树 / 一次性脚本 | 方式 2 索引器 |
| 100+ 路径批量初始化 | translate_browse_paths |
| 长期运行高频访问 | register_nodes 加速 |