[Серверное администрирование, Умный дом, Инженерные системы] Zabbix + OPC DA

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
25-Май-2021 02:32


В последних релизах Zabbix "из коробки" стал поддерживать некоторые популярные протоколы промышленного оборудования. Имея поддержку Modbus и MQTT, его использование с системами промышленной автоматизации стало чуточку проще. Но подобный подход к мониторингу такого рода оборудования не всегда возможен. Как правило, на предприятиях используется большое количество устройств промышленной автоматики разных лет и от разных производителей, поддерживающих разные протоколы обмена. OPC серверы являются универсальным инструментом обмена данными с такими устройствами. Информация на тему интеграции Zabbix и OPC DA в сети практически отсутствует. Возможно, мой небольшой опыт в этом направлении окажется полезен. Для чего нам ZabbixВ нашем сценарии использования Zabbix последний не является заменой имеющейся SCADA-системе. Параллельное развертывание системы мониторинга позволит иметь возможность гибкой настройки триггеров и своевременного получения оповещений о нештатных ситуациях на оборудовании. Также мы сможем создавать дополнительные информационные панели с графиками, которые смогут давать быстрое представление о ходе тех. процессов. Взаимодействие с OPC серверамиСамой сложной задачей, которая стоит перед нами, является организация взаимодействия с OPC-серверами. В ходе поисков готового решения такого взаимодействия стало понятно, что подходящих нам вариантов не так много. Из того, что было найдено, наиболее пригодным к использованию оказался консольный клиент OpenOPC.Установка OpenOPCКак было сказано ранее, речь идет о стандарте OPC DA, а значит, о технологии DCOM и, соответственно, ОС Windows. В нашем случае установка OpenOPC производилась на машину с Windows XP, где и находится проприетарный OPC сервер. После завершения установки необходимо добавить путь до opc.exe в системную переменную среды PATH.
Проверим работу утилиты. Для начала выведем в консоль список доступных OPC серверов:
C:\Users\Администратор> opc.exe -q
Merz.OPC_SAIA_S-BUS.1
C:\Users\Администратор>
Теперь попробуем получить теги в удобном нам формате - csv:
C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT
ATP.Register.OAT,197,Good,05/24/21 07:16:15
C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT ATP5.Register.T_inlet ATP5.Register.T_outlet
ATP.Register.OAT,198,Good,05/24/21 07:16:41
ATP5.Register.T_inlet,627,Good,05/24/21 07:16:41
ATP5.Register.T_outlet,654,Good,05/24/21 07:16:41
C:\Users\Администратор>
Если что-то пошло не такВ ходе экспериментов с opc.exe выяснились некоторые моменты. Первое: каждый OPC клиент запускал новую копию OPC сервера, а их параллельная работа невозможна. Так как запустить используемый нами OPC сервер как службу не получилось, то через DCOM был настроен запуск OPC сервера от определенного пользователя. Все OPC клиенты - SCADA и агент Zabbix - были также настроены на запуск от этого пользователя. Второе: выявлены некоторые недостатки в работе самого OpenOPC. Например, клиент не вычитывает теги, в названии которых присутствуют символы, отличающиеся от латинских. С этим пока пришлось смириться и решать такие проблемы путем переименования тегов в OPC сервере.Установка Zabbix агентаНа ту же машину установим Zabbix агент, который сможет работать под Windows XP, например, zabbix_agent-5.2.0-windows-i386-openssl.msi. Агент будет выполнять активные проверки. Чтобы облегчить дальнейшую конфигурация агента, во время установки заполним следующие поля:
  • Ноst name - уникальное имя хоста, совпадающее с именем узла сети на Zabbix сервере.
  • Zabbix server IP/DNS - IP-адреса Zabbix сервера.
  • Server or Proxy for active checks - IP-адрес Zabbix сервера для активных проверок.

Конфигурирование Zabbix агентаВ конфигурационный файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf были внесены некоторые изменения.
  • Увеличено время выполнения скрипта.
    ### Option: Timeout
    #  Spend no more than Timeout seconds on processing.
    #
    # Mandatory: no
    # Range: 1-30
    # Default:
    # Timeout=3
    Timeout=30
  • Создан параметр для мониторинга.
    #  User-defined parameter to monitor. There can be several user-defined parameters.
    #  Format: UserParameter=<key>,<shell command>
    #
    # Mandatory: no
    # Default:
    # UserParameter=
    UserParameter=opc[*],opc.exe -o csv -s $1 $2
Узел сети и элементы данных на сервере ZabbixНа Zabbix сервере создадим узел сети. Имя узла сети должно совпадать с Ноst name, указанном при установке агента, интерфейс - IP-адрес агента.
Далее к созданному узлу сети добавим элемент данных c типом Zabbix агент (активный). Ключом должна являться конструкция типа: opc[<ИМЯ OPC СЕРВЕРА>, <ЗАПРАШИВАЕМЫЕ ТЕГИ ЧЕРЕЗ ПРОБЕЛ>].
Значениями элемента данных будут строки, разделенные запятыми:
ATP2.Register.OAT,273,Good,05/24/21 15:21:33
ATP2.Register.GVS.T_inlet_W,501,Good,05/24/21 15:21:33
ATP2.Register.GVS.T_outlet_W,445,Good,05/24/21 15:21:33
ATP2.Register.T_outlet_w_com,404,Good,05/24/21 15:21:33
ATP2.Register.RAD.T_outlet_W,256,Good,05/24/21 15:21:33
ATP2.Register.P_in_W_com,39,Good,05/24/21 15:21:33
ATP2.Register.P_out_W_com,36,Good,05/24/21 15:21:33
ATP2.Register.RAD.P_outlet_W,43,Good,05/24/21 15:21:33
ATP2.Register.FIRE.P_gidrant,68,Good,05/24/21 15:21:33
Зависимые элементы данныхСоздадим зависимые элементы данных для того, чтобы распарсить CVS, полученный в самом элементе.
В предобработке используем JavaScript, который получит необходимую нам строку в CVS, проверит качество тега и вернет результат.
function (value){
    var nr_line = 4;
    var lines = value.split('\n');
    var fields = lines[nr_line].split(',');
    if(typeof fields[2] != "undefined" &&  fields[2] == "Good"){
      return (typeof fields[1] != "undefined") ? fields[1] : null;
    }
    return null;
}
Пример визуализации полученных данных:
ЗаключениеТеперь, когда данные от оборудования находятся в Zabbix, можно приступить к дальнейшей организации мониторинга: создание и обработка разнообразных триггеров, генерация графиков, отчетов и т. д.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_servernoe_administrirovanie (Серверное администрирование), #_umnyj_dom (Умный дом), #_inzhenernye_sistemy (Инженерные системы), #_zabbix, #_monitoring, #_monitoring (мониторинг), #_monitoring_oborudovanija (мониторинг оборудования), #_scada, #_opc_da, #_openopc, #_zabbix_monitoring (zabbix мониторинг), #_servernoe_administrirovanie (
Серверное администрирование
)
, #_umnyj_dom (
Умный дом
)
, #_inzhenernye_sistemy (
Инженерные системы
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 24-Ноя 05:09
Часовой пояс: UTC + 5