Недорогой мониторинг для серверного помещения (часть 2 – практическая)

Описание “железа” – см. часть 1.

Сборка стенда

Для “практической” части был собран стенд в составе:

  • преобразователь протокола С2000-ПП производства НВП “Болид”;
  • контроллер С2000-КДЛ производства НВП “Болид”;
  • термогигрометр (комбинированный датчик температуры и влажности) С2000-ВТ производства НВП “Болид”;
  • извещатель магнитоконтактный С2000-СМК производства НВП “Болид”;
  • датчик протечки точечный С2000-ДЗ производства “Риэлта”;
  • адресный расширитель С2000-АР1 исп. 02 производства НВП “Болид”;
  • извещатель объемный Фотон-10М производства “Риэлта” (такой “завалялся”);
  • блок питания 12В AT-12/1.5 DIN производства “AccordTec”;
  • переходник RS485-USB купленный на aliexpress (на распространенном чипе CH340G, linux определяет его как “QinHeng Electronics HL-340 USB-serial adapter”). Стало интересно, как будет отрабатывать система в самой дешевой конфигурации; UPD. 07/02/20 Переходник RS485-USB проработав 3 дня – отвалился. Признан неустойчивым, но годным для пуско-наладки;
  • UPD. 07/02/20 одно-портовый преобразователь MGate MB3170 производства MOXA (взял из того, что было на руках);
  • тонкий клиент TONK 1811 от ГК “ТОНК” (был куплен на avito за 500 рублей) на процессоре Intel Atom N270 со встроенной графикой GMA950.

Тонкий клиент был “немного доработан”:

  • DOM-модуль на 2Гб с установленным Windows XP embedded заменен на 2,5 HDD ATA 60Гб от старенького ноутбука (пришлось докупить шлейф, SATA-HDD почему-то не подхватился – порт SATA в BIOS включал);
  • увеличен размер оперативной памяти DDR2 SO-DIMM с 1Гб до 2Гб;
  • установлен Linux Mint 19.1 “Tessa” Xfce Edition и настроен удаленный рабочий стол с помощью TightVNC;
  • “доработана” система охлаждения – уменьшил радиатор, чтобы поместился HDD практически “заподлицо” с корпусом, убрал верхнюю крышку и сверху “присобачил” какой-то вентилятор 120 мм, подключенный через резистор. Тут же пропали все “тормоза”, стало вполне вменяемо работать.
Общая схема стенда – при пуско-наладке
Общая схема стенда – рабочий вариант
Фото стенда (С2000М и световой оповещатель не задействованы)

Настройка оборудования Болид

Вся настройка производится в среде Windows, соответственно перед началом работ нужно установить драйвер на переходник RS485-USB, а также две “супер”-программы от НВП “Болид”, которые поставляются бесплатно: Orion-prog и Uprog. Далее приборы по отдельности подключается к переходнику RS-485/USB к портам A-B RS-485 “Орион” (используется прямая раскладка, а не как на COM-портах).

ВАЖНО: при всех последующих шагах у С2000-ПП перемычка XP1 на плате должна быть снята.

Шаг 1. Воткнуть в USB- разъем переходник RS-485/USB и посмотреть в диспетчере устройств, какой номер COM-порта назначен переходнику. Драйвера у переходника должны быть установилены без восклицательных знаков в “Диспетчере устройств”.

Шаг 2. От имени администратора запустить Orion-prog, выбрать нужный COM-порт и выполнить поиск и посмотреть версию прошивки прибора. Зайти на официальный сайт производителя и проверить наличие более свежей прошивки и при необходимости (скорее всего потребуется) – выполнить обновление (на момент написания статьи: для С2000-ПП – 1.32, С2000-КДЛ – 2.22).

*Прошивка 1.32 по факту у меня ставилась “криво” – в Uprog конфигурация из прибора не считывалась. Поэтому “откатился” обратно на 1.31.

Шаг 3. Установка адреса у приборов (сначала у С2000-ПП, например, 2 и потом у С2000-КДЛ – 3). Для этого запускаем Uprog – у всех приборов по умолчанию адрес 127, поэтому настраивать приборы в начале необходимо по-одному. Более подробное видео от производителя см. YouTube.

Шаг 4. После установки адреса на С2000-КДЛ необходимо задать адреса датчиков в двухпроводной линии связи (ДПЛС). Они также по умолчанию имеют адрес 127 (причем кружочек с датчиком в Uprog не подсвечивается). Считываем конфигурацию прибора (Ctrl+F3) и последовательно подключаем датчики выходам ДПЛС +/-, задавая адреса. При наведении на датчик в контекстном меню “Запрос типа АУ” можно уточнить тип датчика или “Запрос АЦП АУ” – узнать работает ли датчик (например, для магнито-контактного извещателя АЦП при замыкании: 100, а при размыкании: 50). По факту у меня следующая адресная конфигурация: 1 – геркон С2000-СМК, 2 – температура С2000-ВТ, 3 – влажность С2000-ВТ, 4 – протечка С2000-ДЗ, 5 – адресный расширитель С2000-АР1 исп. 02 (с подключенным к нему объемным извещателем Фотон-10М).

Далее переходим на вкладку “Входы” и делаем следующее:

  • указываем типы датчиков: для температурного – 10, для измерения влажности – 15, для все остальных – 6 (технологический);
  • для технологических входов задаем “Время восстановления, с” – это время, через которое шлейф возвратится в состояние “Норма” после получения состояния “Нарушение”. Нужно указать цифру не менее интервала опроса в Zabbix (я принял 10 секунд);
  • отключим “Управление индикацией АУ” (0), “Контроль на обрыв и КЗ” и “Контроль состояния резервной батареи”, чтобы упростить настройку.

После всех “манипуляций” с С2000-КДЛ выполняем “Запись конфигурации в прибор”.

Шаг 5. Настраиваем С2000-ПП.

По вкладке “Прибор” настройки приведены на картинке (это самые “ходовые” и у большинства устройств они идут по-умолчанию). Аналогичные настройки должны быть у COM-порта переходника RS485-USB и любого другого устройства, подключенного в сеть Modbus. Я для прибора С2000-ПП в сети Modbus выбрал адрес 11 (адрес в системе “Орион” – 2!).

Потом переходим во вкладку “Устройства” и начинаем заполнять “Таблицу зон”:

  • первый столбец я указал “3” – это адрес прибора С2000-КДЛ в системе “Орион”;
  • номер ШС (“шлейф сигнализации”) – это адреса датчиков (фактически ШС=адрес, можем пропустить несколько адресов, если не хотим забирать с них информацию);
  • № раздела Modbus – можно сгруппировать наши датчики в группы. В целях упрощения – я этого не стал делать и всем приписал 1 раздел;
  • тип зоны – очень важный параметр. Выбираем его, согласно типу датчика.

После настройки С2000-ПП выполняем “Запись конфигурации в прибор”.

Шаг 6. Объединяем С2000-ПП и С2000-КДЛ в сеть по RS-485 Орион, присоединяем датчики к С2000-КДЛ (можно “кучкой” под две клеммы), а переходник RS-485/USB подключаем к выходу Modbus C2000-ПП. Перемычку XP1 устанавливаем в замкнутое положение (важно: после установки перемычки нужно перезагрузить прибор сбросом питающего напряжения). Все – система “готова к бою”.

Проверяем “работоспособность” в бесплатной консольной программе Modpoll Modbus Master Simulator (далее – “Modpoll”), например, по адресу прошивки “С2000-ПП” или по отдаче информации с С2000-КДЛ по адресу “40000” – это первый датчик.

Прошивки приборов “для ознакомления” можно скачать здесь.

Настройка Zabbix

Предупреждение: Zabbix настраивал в первый раз, как и Linux Mint (так как Zabbix под Windows нет).

Для создания загрузочной USB-флешки с Linux Mint я использовал образ с оффсайта и программу balenaEthcher.

Установка Zabbix 4.0 делалась по инструкции от производителя (дистрибутив zabbix-release_4.0-2+bionic_all.deb).

Из терминала с помощью команд “sudo apt install + имя приложения/пакета” установил:

  • gedit – текстовый редактор (встроенный vi – это верх глумления над “Виндузятниками”);
  • пачку пакетов (потребуются для установки модуля расширения) – autoconf, automake, libtool, pkg-config;
  • модуль расширения – libzbxmodbus. Про него на habr.com есть отдельная статья (я на нее буду постоянно ссылаться, так как она выпущена в корпоративном блоге Zabbix, т.е. можно считать “официальным источником”) и он недавно обновился, как раз для работы с Zabbix 4.0. Сам модуль и более-менее подробная инструкция лежат на GitHub-е.

Небольшие нюансы в установке:


    tar zxvpf libzbxmodbus-0.9.tar.gz 
// распаковка. Это можно сделать и в графической оболочке, далее уже в терминале
    cd libzbxmodbus-0.9 
//перейти в папку libzbxmodbus-0.9 
    ./configure --prefix=/etc/zabbix --enable-zabbix-3.2 
//"долго думал", что значит [2|3|3.2] в описании
    make
    sudo make install 
//запуск с повышением прав доступа

При изучении работы модуля libzbxmodbus стало понятно, что применить схему с пультом С2000М не получится, потому что в этом случае получение данных с термогигрометров выглядит так: запись в регистр 46179 номера нужной зоны и потом забор данных с регистра 46328 – т.е. весьма нетривиально (в “больших” SCADA-системах, такое реализовать возможно, например, в MasterSCADA).

Прописываем в конфигурационном файле etc/zabbix/zabbix_server.conf ссылки на расширение и подключаем “железо” к “серверу” с Zabbix. Для переходника RS485-USB устанавливать драйвера не пришлось, а вот как понять какой номер USB будет задействован я так и не понял, хорошо что сработало подключение к /dev/ttyUSB0 (посмотреть, что устройство обнаружено в системе можно командой lsusb).

Как и с Windows, проверяем с помощью утилиты Modpoll (я запускал linux i386), что “железки” подключены и информация с них доступна.

Так как в статье описывается процесс настройки на примере Zabbix 2.2 – там интерфейс немного другой, то приведу пояснения и картинки настроек.

Шаг 1. Создаем узел сети и группу, в которые наши узлы будут входить (например, узел – “Контроль состояния окружающей среды” и группу – “Инженерная инфраструктура”):

Настройка>Узлы сети>Создать узел сети>Вводим наши названия >Добавить

Шаг 2. Создадим элементы данных. В статье рекомендуется создавать шаблоны, но так как у нас система не содержит повторяющихся элементов, поэтому пропущу этот шаг. Например, если бы у нас было несколько кондиционеров, подключаемых по Modbus, то можно было бы воспользоваться функционалом системы.

Настройка>Узлы сети>В строке содержащей название нашего узла “Контроль состояния окружающей среды” нажимаем на “Элементы данных”>в появившемся окне нажимаем “Создать элемент данных”.

Начинаем “забивать” наши датчики:

Небольшие нюансы:

  • в статье используется синтаксис функции “modbus_read_registers”, а по описанию GitHub “modbus_read” – второй вариант короче и работает;
  • можно вместо макросов {$MODBUS_PORT} и {$MODBUS_SLAVE} указывать порт в виде /dev/ttyUSB0 и “11“, но это будет неудобно, если потом потребуется изменить порт USB или адрес С2000-ПП. Для преобразователя Modbus RTU / Modbus TCP в поле макроса
    {$MODBUS_PORT} указать IP-адрес преобразователя и порт (вида 192.168.0.30:502);
  • в документации указано, что для запроса состояния зоны (столбец “№ зоны Modbus”) на С2000-ПП необходимо обратиться на: “адрес регистра 40000+М, где М = (№ зоны –1)” – вот так ход: “№ зоны минус 1″;
  • не делайте очень частый опрос по времени: С2000-ПП начнет возвращать ошибку “exception error 15” – прибор не успевает подготавливать данные (выражается это в постоянном свечении индикатора на приборе) ;
  • для температуры и влажности забираются данные с регистрами 3000-…
  • в окне “Элементы данных” также есть нужная закладка “Предобработка”. Тут можно отредактировать, что будет показываться “в итоге”. Температура и влажность, получается из считываемых значений, которые необходимо разделить на 256: “Пользовательский множитель”- 0,0039 (т.е. 1/256);
  • Для дискретных герконов, датчиков протечки и т.п. нужно еще использовать “Отображение значений”, связано это со способом предоставления информации.

Немного о том, в каком виде предоставляются данные при опросе зон.

Допустим, получили ответ в десятичном формате 9148(D). Переведем в шестнадцатеричный формат (HEX): получим 23BC – по инструкции к прибору С2000-ПП это два события с кодами 23(HEX)/35(D) и BC(HEX)/188(D). Далее идем смотрим Таблицу 5. “Список событий (состояний ШС) системы «Орион»”. В ней находим, 35 “Восстановление технологического входа” и 188 “Восстановление связи со входом”. Переводить D-HEX-D нет необходимости, первое событие – это целая часть от деления полученного значения на 256, а остаток – второе событие (9148=35*256+188). При опросе технологических входов будем забирать, только первое событие (приоритетное), которое “должно” принимать состояния 35 и 36 (“Восстановление технологического входа” и “Нарушение технологического входа”). Отбрасывать дробную часть (второе событие) будем используя настройку Элемента данных “Тип информации: Числовой (целое положительное)”. Также можно добавить другие события – например, “обрыв ДПЛС”.

Предобработка значений
Преобразование значений
Дополнительный способ входа в “Преобразование значений”

Шаг 3. Заполняем макросы порта и номера устройства:

Настройка>Узлы сети>”Контроль состояния окружающей среды”>выбираем “Макросы”

Шаг 4. Вывод показаний на панель управления:

Стартовый экран>Все панели, выбрать “Создать панель”>В появившемся окошке задать “Имя панели” и пользователя, которому эта панель будет доступна>Нажать “Создать новый виджет”>Тип “Обзор данных”, Интервал обновлений “10 секунд”, Группы узлов сети “Инженерная инфраструктура”>Добавить>Отрегулировать размер панели и нажать “Сохранить изменения”:

Осталось настроить оповещения – это будет “домашним заданием” для тех, кто решится внедрить связку Bolid + Zabbix. Появились вопросы – прошу в комментарии.

P.S. Эта статья на Хабре.

UPD. 07/02/20 Замена переходника RS485-USB на “железный” преобразователь Modbus RTU / Modbus TCP.


4 Comments

  1. Юрий

    “в окне “Элементы данных” также есть нужная закладка “Предобработка”. Тут можно отредактировать, что будет показываться “в итоге”. Температура и влажность, получается из считываемых значений, которые необходимо разделить на 256: “Пользовательский множитель”- 0,0039 (т.е. 1/256);”

    при получении отрицательных температур результат может удивить. Но надо проверить по форматам, может быть и не удивит

    1. admin (Автор записи)

      Есть такой нюанс, описан в документации на С2000-ПП. Спасибо за уточнение.
      Просто я его “опустил”, так как отрицательных температур в серверных не бывает, а наружу его ставить – необходима доработка по степени защиты.

      1. Юрий

        К сожалению и я его упускал, прочитав РЭ минимум 7 раз, и сделав КВТ.
        Как только дошло дело до Нормальных испытаний в камере Холода-тепла (а я принципиально их провожу более жесткими для всех приборов) – вылезла “неувязочка”, которую было, кстати говоря, сложно увидеть, если не посадить человека переда Камерой на 5 часов чтобы он Смотрел и писал Протокол – как оно чего.

        Да, из интересного будет – Управление Реле. Весьма занятно может оказаться, ибо можно брать как модули ДПЛС с программированием порогов настройкой комплекта, так и из Zabbix-а.

        И дня, на всякий случай тут в статье разобраны не все варианты состояний шлейфов.
        то-есть их разбор и анализ дело не такое простое. Если будут другие типы шлейфов, к примеру, но это уже другая история)

        1. admin (Автор записи)

          Я не упустил, а опустил (осознано пропустил).
          Реле в виде СП2 в планах – только его нужно купить.
          Я специально отключил функции контроля КЗ и выставил тип шлейфа – технологический + сделал подрезку по первому событию, так как без этого действительно вариаций много.

Добавить комментарий для admin Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить