如何从PLC访问所有数据库中的所有变量(不指定数据库或变量的名称)?

问题描述 投票:-2回答:2

在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获取所有内容。

python plc opc-ua
2个回答
0
投票

您正在寻找Browse服务。

查看您正在使用的工具包的文档或示例。


0
投票

找到答案:

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
© www.soinside.com 2019 - 2024. All rights reserved.