Обнаружение утечек воды. Еще одна интеграция ZABBIX и BOLID

Утечки воды и затопления часто становятся серьезной проблемой. В связи с этим возникает необходимость в организации мониторинга, который смог бы обеспечить раннее обнаружение утечек воды.

Постановка задачи для системы мониторинга: веб-интерфейс с информацией о состоянии всех элементов системы, оповещение технического персонала о произошедших событиях, например, на e-mail или в мессенджер Telegram, выдача светозвуковых сигналов в диспетчерских пунктах.

Ниже описан мой опыт построения подобной системы.

Структурная схема и оборудование

Мониторинг решено построить на базе приборов ИСО "Орион" от НВП “Болид”. На верхнем уровне использовать ZABBIX.

Доступная информация на тему интеграции ZABBIX и оборудования Bolid дана в статье на хабре за авторством little-brother. Эта же статья поможет при первом знакомстве с оборудованием и настройкой приборов Bolid.

Структурная схема системы выглядит так.

Полевое оборудование

Для обнаружения утечек воды из водопроводов и формирования адресного извещения используются как проводные, так и беспроводные извещатели.

  • Адресный датчик затопления С2000-ДЗ.

  • Радиоканальный адресный датчик затопления С2000Р-ДЗ

Средний уровень

За состоянием адресных извещателей следят контроллеры двухпроводной линии связи С2000-КДЛ и радиорасширители С2000Р-АРР32.

Передача информации на верхний уровень

Zabbix получает доступ к событиям, происходящим в системе «Орион», через преобразователь протокола «С2000–ПП», который работает в режиме «Орион-Master» (перемычка ХP1 установлена). На структурной схеме видно, что Zabbix подключен к «С2000–ПП» через Ethernet-сеть по средствам асинхронного сервера MOXA NPORT 5150, который работает в режиме TCP Server Mode, т.е. протоколом передачи данных между Zabbix и «С2000–ПП» является MODBUS RTU Over TCP.

Поддержка этого протокола реализована в Zabbix с помощью загружаемого модуля Monitoring Modbus (TCP, RTU and "RTU over TCP").

Скрытый текст

До недавнего времени Zabbix не поддерживал работу протокола MODBUS из коробки. Для этих нужд приходилось использовать загружаемый модуль. В такой ситуации нет принципиальной разницы - использовать ли асинхронной сервер и получить MODBUS RTU Over TCP или использовать более дорогую альтернативу в виде сетевого шлюза, например, MOXA MGATE MB3180 и получить предпочтительный MODBUS TCP.

С выходом версии Zabbix 5.2.0 ситуация изменилась. Теперь Zabbix стал поддерживать Modbus RTU, Modbus ASCII и Modbus TCP. Но несмотря на это, использование Modbus RTU Over TCP по прежнему возможно только через вышеупомянутый модуль.

Все это даёт повод задуматься о возможности перехода исключительно на Modbus TCP в будущем.

Исполнительные устройства

Для выдачи аварийных сигналов в диспетчерской оперативного персонала используем свето-звуковой извещатель и IP-реле RODOS-8. Подробности управления этими устройствами рассмотрим далее.

Настройка Zabbix

Для простоты понимания опустим некоторые технические подробности и примем, что Zabbix должен наблюдать за состоянием каждого прибора системы ИСО "ОРИОН". Тогда в нотации Zabbix узлом сети является прибор, например, С2000-ДЗ или С2000-КДЛ, а элементом данных - состояние этого прибора.

Скрытый текст

Описание всех имеющихся состояний смотрите в руководстве по эксплуатации к "С2000-ПП". При создании шаблонов я опирался на документацию к прошивке вер. 1.32

Этой информации достаточно, чтобы создать шаблоны узлов сети и значительно облегчить себе дальнейшую жизнь. Забрать шаблоны и правила преобразования значений для импорта в Zabbix можно на гитхабе. На текущий момент мной созданы шаблоны для С2000-ДЗ, С2000-КДЛ, С2000-ПП, С2000Р-АРР32, С2000Р-ДЗ.

Шаблон С2000-ДЗ в картинках

Шаблон С2000-КДЛ в картинках

Шаблон С2000-ПП в картинках

Шаблон С2000Р-АСР32 в картинках

Шаблон С2000Р-ДЗ в картинках

Конфигурация приборов ИСО "Орион"

Подробное описание настройки приборов "Болид" можно найти в сети. Обсудим только интересующие нас моменты.

Скрытый текст

Перед монтажом оборудования настоятельно рекомендую обновлять прошивки, назначать адреса и конфигурировать приборы на столе.

Конфигурация входов С2000-КДЛ

С2000-ДЗ, С2000Р-ДЗ и С2000Р-АРР32 подключаются к линии ДПЛС контроллера С2000-КДЛ, являются его входами и требуют конфигурации.

Настройка С2000-ДЗ и С2000Р-ДЗ

На вкладке "Входы" ПО UPROG датчики затопления должны иметь следующие свойства

Тип входа

17 - Водосигнальный

Автоперевзятие из тревоги

+

После перехода в состояние "Тревога затопления" и при восстановлении нормального состояния осуществляется перевод входа в состояние "Восстановление датчика затопления".

Без права снятия

+

Вход постоянно находится в состоянии "Взято", и его невозможно снять с охраны (отключить).

Время восстановления

5 c

Время, в течение которого вход должен быть в норме для восстановления из состояния "Тревога затопления", а также отработки "Автоперевзятие из тревоги".

Время задержки перехода в тревогу

0

Время, в течении которого вход должен быть нарушен для перевода его в состояние "Тревога затопления".

Контроль состояния резервной батареи

+

Формирование событий при изменении состояния резервной батареи.

Свойства С2000-ДЗ, С2000Р-ДЗ в картинках

Настройка С2000Р-АРР32

Свойства С2000Р-АРР32 должны выглядеть следующим образом.

Тип входа

5 - Охранный с контролем блокировки

Автоматическое перевзятие

+

Если вход находится в состоянии "Невзятие", то при восстановлении нарушения входа и нахождения в состоянии нормы в течение 15 секунд произойдет автоматический переход в состояние "Взято".

Автоперевзятие из тревоги

+

Осуществляет автоматический переход из состояния "Тревога" в состояние "Взято" при восстановлении нарушения входа.

Без права снятия

+

Вход постоянно находится в состоянии "Взято", и его невозможно снять с охраны (отключить)

Задержка взятия

+

Время восстановления

1 c

Время, в течение которого вход должен быть в норме для восстановления из состояния "Тревога ", а также отработки "Автоперевзятие из тревоги"

Контроль состояния резервной батареи

+

Формирование событий при изменении состояния резервной батареи.

Свойства С2000Р-АРР32 в картинках

Конфигурация С2000-ПП

В нашей системе «С2000-ПП» выступает в роли мастера и опрашивает приборы системы «Орион». Для того, чтобы это работало, требуется сконфигурировать и создать базу данных приборов в памяти «С2000-ПП».

Настраиваем интерфейсы «С2000-ПП». Адрес прибора - Modbus UID «С2000-ПП».

Приборы, состояние которых мы собираемся мониторить, требуется занести в Таблицу зон.

№ зоны Modbus - регистр, по которому мы сможем получить состояние прибора. Например, регистр зоны Modbus №1 = 40000, №2 = 400001 и т.д.

Адрес прибора - адрес контроллера С2000-КДЛ.

Номер ШС - номер входа контроллера С2000-КДЛ или 0, если требуется состояние самого С2000-КДЛ.

Тип зоны - 1 для С2000-ДЗ, С2000А-АРР32, С2000Р-ДЗ и 3 для С2000-КДЛ.

Настройка MOXA

Настраиваем сеть Ethernet. Если IP получаем от DHCP сервера, то не забываем его зарезервировать.

Network Settings

Настраиваем режим работы сервера, выбираем TCP Server Mode, Local TCP port выберем 4001, а свойству Max connection назначим 1.

Operating Settings

Настроим последовательный порт, через который мы получаем данные от C2000-ПП по Modbus RTU.

Serial Settings

Настройка IP-реле RODOS-8

После того, как настроим параметры сети, переходим к настройкам самого реле. Нам нужно, чтобы при подаче импульса реле включалось на заданный промежуток времени, после чего снова размыкалось. Такое поведение реле настраивается в разделе Setup->Relay config в веб-интерфейсе реле.

Настройка IP-реле

Настраиваем мониторинг

Добавляем узлы сети

Как мы условились ранее, узлом сети является каждый прибор ИСО "Орион". Создаём узел сети и привязываем к нему шаблон, соответствующий типу прибора и присваиваем макросам актуальные значения.

{$MODBUS_PORT} - тип протокола, ip и порт Moxa NPort 5150. Например, enc://192.168.0.164:4001, где enc указывает на использование Modbus RTU Over TCP.

{$MODBUS_SLAVE} - Modbus UID С2000-ПП, подключенного к Moxa NPort 5150.

{$MODBUS_REG} - Регистр в памяти С2000-ПП, к которому привязан добавляемый прибор.

{$NODATA_PERIOD} - Если от прибора не получено данных по Modbus дольше, чем указано в этом макросе, то активируется триггер Превышено время отсутствия по MODBUS

UProg и Zabbix cheatsheet
UProg и Zabbix cheatsheet
Добавление C2000-ДЗ в картинках

Для настройки мониторинга IP-реле и асинхронного сервера Moxa также создайте узлы учета. Для этих устройств имеются стандартный шаблон Templates/Modules/ICMP Ping

Настраиваем оповещения

Оповещать будем две группы пользователей: группу отдела АСУ и оперативный персонал. Способов оповещения будет два: Тelegram и светозвуковой извещатель в помещении диспетчерской.

Для того, чтобы каждая группа получала только те события, на которые пользователи способны отреагировать, в шаблонах сети созданы теги событий.

Создаем скрипты и способы оповещений

Настройка Telegram оповещений не должна вызывать трудностей. Рассмотрим только настройку светозвукового оповещения, для которого мы используем IP-реле, управляемое через UDP команды. Создадим скрипт /usr/lib/zabbix/alertscripts/rodos8.sh со следующим содержанием:

#!/bin/bash
user=admin
password=admin
host=127.0.0.1
echo -n "${1:-$user} ${2:$password} k1=2" > /dev/udp/${3:-$host}/8283

В /etc/zabbix/zabbix_server.conf для параметра AlertScriptsPath укажем значение /usr/lib/zabbix/alertscripts и перезапустим Zabbix.

Затем создадим новый способ оповещений с типом скрипт, укажем имя вызываемого скрипта и его параметры.

На этом создание оповещений завершим.

Настраиваем действия

Настройка действий тоже стандартна и довольно очевидна. Настроим выполнение действий в зависимости от значения тегов произошедших событий, которые определены в шаблонах.

Кроме этого, настроим повторяющиеся оповещения для IP-реле. Сделаем так: до того момента, пока триггер находится в состоянии "Проблема" и событие никем не подтверждено - каждую минуту "дергаем" реле.

Используя эскалации Zabbix, можно создать самые разнообразные сценарии оповещения. Например, если событие в течении определенного промежутка времени не решается или не подтверждается оперативным персоналом, то можно выдавать сигнал тревоги на пост охраны.

Карты сетей

Раздел веб-интерфейса Мониторинг -> Проблемы позволяет быстро проанализировать текущие или архивные проблемы. Получение оперативных данных, которые очень могут помочь в наладке, осуществляется в разделе Мониторинг -> Последние данные.

Чтобы иметь представление о том, как оборудование структурировано и в каком состоянии оно находится, создадим карты сети. Подготовленные изображения находятся на гитхабе.

Заключение

Настройка мониторинга завершена. Созданы шаблоны для простого добавления в мониторинг новых приборов. Кратко рассмотрено конфигурирование этого оборудования, настройка Zabbix и их интеграция.

Спасибо, что дочитали до конца. Буду рад, если окажется полезным.

Комментарии 5

    0
    День добрый! Если можно, от РП С2000-ПП добавочку:
    А ещё у Болида есть модуль на 20 реле в протоколе Modbus, стоимостью в 3.500 в розницу.
    А если бы вместо moxa использовали Болидовский c2000-Ethernet то надо было бы организовывать modbus_over_udp. но это было бы сильно дешевле в части цены.

    А ещё С2000-ПП имеет хорошую софтину для просмотра как оно работает по modbus — Панель управления С2000-ПП, которая запущенной на пк может отправлять события в телеграмм.
    А ещё С2000-ПП уже фактически модернизирован и там некоторые штуки упрощены, с сохранением всего старого фуенкционала
      0
      Из пушки по воробьям. Или хорошо когда бюджет бездонный. Завидую.
        0
        Для выдачи аварийных сигналов в диспетчерской оперативного персонала используем свето-звуковой извещатель и IP-реле RODOS-8. Подробности управления этими устройствами рассмотрим далее.

        Имхо, если строите на болиде, то и болидом оповещать, С2000-СП1, к примеру.
          0
          Такой вариант рассматривал, но быстро от него отказался.

          1. СП нужно как-то управлять. В этом плане IP-реле проще и прозрачней.

          2. В месте установки нет линии RS485, а Ethernet имеется. Кроме этого планируется устанавливать звуковые извещатели и в других помещениях, где такая же ситуация.
            0
            Понял. Если всё-таки будет целесообразно установить C2000-СП1 (С2000-КПБ), можно управлять с верхнего уровня через C2000-ПП. В конфигурацию ПП необходимо добавить релейные выходы и управлять ими через Modbus.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое