Работаю в АСУ ТП и начал изучать Python. Сейчас пытаюсь написать приложение, которое будет взаимодействовать с сервером ввода/вывода через OPC. Использую для этого модуль OpenOPC. Все методы просты и понятны. Вот только из OPC могу вычитать корневые узлы а сами OPC-теги не могу получить. Для всего это использую opc.list()
# -*- coding: cp1251 -*- #pywin32-221.win32-py2.7 import OpenOPC opc = OpenOPC.client() listServers = opc.servers() print "Список OPC серверов:" for nameServer in listServers: print listServers.index(nameServer) + 1, "-", nameServer numServer = int(raw_input("\nУкажите номер OPC сервера для подключения: ")) OPCServer = listServers[numServer - 1] print "Выбран источник:", OPCServer try: opc.connect(OPCServer) except: #Добавить обработчик исключений на случай если связь с OPC сервером #не удалось установить pass print "Подключение к серверу", OPCServer, "успешно" listOPCTag = [] listOPCTag = opc.list()
Подключаюсь я к специфичному источнику Infinity.OPCServer (возможно кому-то знаком и будет плюсом для понимания). Структура OPC-дерева на скриншоте во вложении.
И из этого получается получить наименование папок. А вот наименование самих тегов (например, Double - GS, RESET, T1…) вложенных в папку не получается получить метод list возвращает пустой массив.
Подскажите, может кто знает, как получить все opc-теги.
Заранее спасибо.