Как получить доступ ко всем переменным во всех базах данных из ПЛК (без указания имени базы данных или переменной)? - PullRequest
0 голосов
/ 03 сентября 2018

В базе данных plc у меня есть база данных с именем «status», в которой есть переменная с именем «Temperature». Поскольку я знаю имена, я получаю доступ к значению этой переменной следующим образом:

from opcua import Client
client = Client("url")
client.connect()
temperature = client.get_node("ns=3;s=\"status\".\"Temperature\"").get_value()

Теперь, как я могу получить эту информацию без знания базы данных или имени переменной? Я хочу общий код, который берет все из заданного URL ПЛК.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Нашел ответ:

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
0 голосов
/ 03 сентября 2018

Вы ищете услугу Browse.

Проверьте документацию или примеры того комплекта инструментов, который вы используете.

...