在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