OPCUA Python中get_values()方法的nodes参数格式及使用方法
OPC UA Python中client.get_values()的nodes参数格式及转换方法
nodes参数的数据结构
调用client.get_values()时,传入的nodes参数需要是OPC UA Node对象的列表,不能直接传入字符串格式的节点ID。
转换方法
遍历现有的node_ids字符串列表,用client.get_node()方法把每个字符串ID转换成对应的Node对象,再将这些对象存入列表即可作为nodes参数。
完整代码示例
from opcua import Client client = Client("Server Address") client.session_timeout = 3000 client.connect() node_ids = ["ns=2;s=/Plc/DB190.DBD24:REAL", "ns=2;s=/Plc/DB190.DBD28:REAL", "ns=2;s=/Plc/DB190.DBD32:REAL",] # 将字符串节点ID转换为Node对象列表 nodes = [client.get_node(node_id) for node_id in node_ids] # 一次性获取所有节点的值 values = client.get_values(nodes) print(values) # 输出结果列表,顺序与node_ids完全对应 client.disconnect() # 操作完成后断开连接
补充说明
client.get_node()可以直接解析西门子Sinumerik格式的节点ID字符串,无需额外格式转换get_values()返回的结果列表顺序和传入的nodes列表顺序严格一致
内容的提问来源于stack exchange,提问作者sb72
相关产品推荐
相关产品推荐

