Недорогой мониторинг для серверного помещения (часть 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

  1. Юрий

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

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

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

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

      1. Юрий

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

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

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

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

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

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

Ваш адрес email не будет опубликован.

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