在plc数据库中,我有一个名为“status”的数据库,它有一个名为“Temperature”的变量。既然我知道名字,我就像这样访问这个变量的值:
from opcua import Client
client = Client("url")
client.connect()
temperature = client.get_node("ns=3;s=\"status\".\"Temperature\"").get_value()
现在,如何在不了解数据库或变量名的情况下获取此信息?我想要一个通用代码,它从给定的PLC URL获取所有内容。
您正在寻找Browse
服务。
查看您正在使用的工具包的文档或示例。
找到答案:
from opcua import Client
client = Client("url")
client.connect()
node = client.get_objects_node()
def walk(node):
a = node.get_children()
for child in a:
if child.get_children():
walk(child)
else:
try:
print(type(child.get_browse_name()), child.get_value())
except:
pass