С2000 пп ардуино

Дешифрация протокола Орион Bolid

В данной статье рассматривается пример общения шифрованными сообщениями через протокол Орион Болид. Маленький шажок для самодельного IOT популярной системы безопасности.

Введение

Бо́льшая часть устройств Bolid обычно связывается между собой двумя проводами через RS-485 в большинстве случаев с параметрами 9600/8-N-1.

Для общения используются 2 шифрованных протокола: Орион или Орион Про. На момент написания статьи я пока не знаю в чём между ними разница, во всяком случае дальше будет речь о протоколе Орион (без “Про”).

Существует устройство С2000-ПП для общения с bolid-устройствами через протокол Modbus-RTU. Но его функционал крайне ограничен.

Протокол Орион

Протокол Орион представляет из себя подобие Modbus-RTU, есть команда, количество передаваемых байт и CRC.

Мы общаемся со slave-устройствами как master, мы отправляем запросы, устройства нам отвечают.

Некоторые команды передаются в шифрованном виде, некоторые в открытом. Хорошим индикатором шифрованной команды является смещённый адрес в начале сообщения. У шифрованного сообщения смещение адреса идёт на 0x80 или 0d128. Как итог 127 возможных адресов + 128 число смещения = 255 (максимальное значение одного байта из 2^8 возможных).

Для того, чтобы устройства отвечали на шифрованные сообщения, необходимо задать “глобальный ключ” — GLOBAL_KEY для каждого устройства, хотя бы единожды (не проверял какой стоит по умолчанию).

При отправке шифрованных команд используется MESSAGE_KEY при каждом запросе.

Для общения с Bolid-устройствами нам нужно подключиться в любое место линии RS-485 (не забываем про терминаторы, иногда без них работа нестабильна).

Расчёт контрольной суммы

Для расчёта CRC используется CRC-8-Dallas, рассчитываемый табличным методом.

Установка “глобального ключа”

Для того, чтобы общаться с каким-то устройством, ему нужно задать “глобальный ключ” (для забавы и наглядности выбран ключ 0xBA, получается “BABA”).

Далее по тексту операция исключающего “или” (XOR) будет обозначаться символом “^”.

Зададим Bolid-устройству с адресом 3 глобальный ключ следующей командой:

0x03 — адрес Bolid-устройства, в данном случае устройство имеет адрес 3 (из возможных 1..127);

0x06 — количество передаваемых байт (итоговая длина сообщения минус один);

0x00 — GLOBAL_KEY ^ MESSAGE_KEY (в данном случае GLOBAL_KEY = MESSAGE_KEY, поэтому GLOBAL_KEY ^ MESSAGE_KEY == 0);

0x11 — команда на запись нового ключа устройства;

0xBA — новый GLOBAL_KEY;

0xBA — новый GLOBAL_KEY (повтор байта, видимо на всякий случай);

0x8D — контрольная сумма CRC-8.

Считаем статус устройства

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

0x83 — ADDRESS + 0x80(смещение адреса при шифровании) (ADDRESS == 3);

0x08 — количество передаваемых байт (итоговая длина сообщения минус один);

0x00 — GLOBAL_KEY ^ MESSAGE_KEY (они одинаковые, поэтому ноль);

0xED — 0x57 ^ MESSAGE_KEY команда на чтение статуса;

0xB8 — 0x02 ^ MESSAGE_KEY команда на чтение статуса;

0x62 — контрольная сумма CRC-8.

На данную команду мы можем получить ответ навроде:

0x83 — ADDRESS + 0x80 (ADDRESS == 3);

0x0A — количество передаваемых байт (итоговая длина сообщения минус один);

0xE2 — 0x88 ^ MESSAGE_KEY — назначение байта мне не известно;

0xB8 — 0x02 ^ MESSAGE_KEY — назначение байта мне не известно;

0xBE — 0x04 ^ MESSAGE_KEY — назначение байта мне не известно;

0xB9 — 0x03 ^ MESSAGE_KEY — назначение байта мне не известно;

0x7D — STATUS_1(0xC7) ^ MESSAGE_KEY;

0x2F — STATUS_2(0x95) ^ MESSAGE_KEY;

0x72 — 0xC8 ^ MESSAGE_KEY — назначение байта мне не известно;

0xD7- контрольная сумма CRC-8.

Мы получили 2 статуса STATUS_1 и STATUS_2:

199 и 149, соответственно.

Статус 199 — это “Восстановление источника питания”;

Статус 149 — это “Взлом корпуса прибора”.

Полный перечень статусов можно взять из документации на С2000-ПП.

Источник

С2000-ПП и Arduino. Соединяем Болид и ардуино по протоколу Modbus RTU. Часть 1. Теоретическая.

Относительно недавно компания Болид выпустила продукт под названием Преобразователь протокола «С2000-ПП», который, в частности, предназначен для преобразования Болидовского протокола Орион в протокол ModBus RTU. Я купил себе такую коробочку и решил попробовать подключить Болид к Ардуино. Зачем? Не знаю. Возможно разработаю SCADA-систему на базе ардуинки.
Я не буду копировать ТТХ и принцип работы преобразователя протокола — это все вы сможете прочитать сами в мануале. Перейдем сразу к практике.

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

Подключаться мы будем через преобразователь интерфейса RS485 — RS232 C2000-USB двумя способами: через программу предоставляемую Болидом, а так же с помощью программы для работы с com-портом «AccessPort». Вообще для работы с com-портом, как и для работы напрямую по протоколу Modbus RTU, существует великое множество программ, однако нам нужно максимально приблизится к ардуино. Данная программа предоставляет возможность без заморочек передавать и принимать в ответ данные в двоичном виде в HEX формате, что очень удобно. Скачать программу вы можете внизу страницы.

Итак, приступим. Для начала, на сайте Болида нужно скачать и установить последнюю версию программы Uprog, а так же программу Панель управления «С2000-ПП». Соберем схему для первичной настройки С2000-ПП.
Схема подключения С2000-ПП через С2000-USB к ПК
Здесь и далее, в качестве источника питания не обязательно использовать РИП-12, подойдет любой источник напряжением 12В и током 0,3А.

Далее запускаем Uprog и находим наш преобразователь протокола по адресу 127, если он был из коробки.
Находим С2000-ПП с помощью Uprog
Считываем конфигурацию.
Конфигурация С2000-ПП
На вкладке «Прибор» мы устанавливаем параметры соединения по интерфейсу RS485. Скорость я оставил 9600 бод, без контроля четности, 1 стоповый бит (8-N-1). Тип интерфейса — Modbus RS-485. В поле адрес мы указываем адрес слейва Modbus (т.е. адрес устройства на шине Modbus), в примере — 3. Максимальное значение адреса устройства С2000-ПП на шине — 247. Возможно ли такое количество устройств на шине одновременно — Болид не уточняет).

Далее — изменим адрес по-умолчанию на интерфейсе Орион, сделаем его так-же 3.
Смена адреса С2000-ПП на интерфейсе Орион
Установка адреса С2000-ПП на интерфейсе Орион
Остальные вкладки конфигурации мы пока рассматривать не будем. Отложим все это на потом. Настройка для наших нужд закончена, заливаем конфигурацию.
После этого отключаем С2000-USB от С2000-ПП и собираем схему для работы по протоколу Modbus RTU.
Схема для работы по протоколу Modbus RTU

После этого запускаем программу Панель управления «С2000-ПП» и осуществляем настройку подключения.
Настройка подключения в программе Панель управления «С2000-ПП»
Нажимаем кнопку COM — порт, указываем параметры соединения согласно тем, что мы настроили через Uprog и выбираем из списка com-порт к которому подключен C2000-USB. Нажимаем кнопку «подключиться».
Окно программы Панель управления С2000-ПП в случае успешного подключения
Обратите внимание на тип прибора — 36 и версию 131 (1.31) это нам понадобится в дальнейшем. Теперь для контроля обмена информацией на шине нажимаем на кнопку с изображением осциллограммы.
Окно наблюдение за линией
Здесь мы видим что обмен ведется. Программа посылает запросы, а преобразователь ей отвечает. Т.к. мы в будущем хотим подключиться к С2000-ПП с помощью ардуино и выполнять какие-то действия нам нужно для начала реализовать данный обмен с помощью программы AccessPort, а для этого нам нужно понять как строится запрос и что мы должны получить в ответ от С2000-ПП.
Давайте разбираться. Болид любезно сообщает нам что пакет Modbus имеет следующую структуру:
Структура пакета Modbus
Давайте посмотрим из чего состоит пакет:

  • 1й байт — адрес устройства на шине Modbus, к которому мы будем обращаться. В нашем примере это 3 или 0x03 в HEX формате;
  • 2й байт — функция с которой мы обращаемся к устройству. Согласно описанию С2000-ПП поддерживает следующие функции протокола Modbus RTU:
      1 (0x01) Чтение значений из нескольких регистров флагов (Read Coil Status)
      3 (0x03) Чтение значений из нескольких регистров хранения (Read Holding Registers)
      5 (0x05) Запись значения одного флага (Force Single Coil)
      6 (0x06) Запись значения в один регистр хранения (Preset Single Register)
      15 (0x0F) Запись значений в несколько регистров флагов (Force Multiple Coils)
      16 (0x10) Запись значений в несколько регистров хранения (Preset Multiple Registers)
  • с 3го по 254 байт (максимум) идет тело запроса или ответа;
  • Последние 2 байта это контрольная сумма всего сообщения в формате CRC16 Modbus.

Обратите внимание что сначала записывается младший байт контрольной суммы, а затем старший!
Теперь, обладая данной информацией, давайте составим свой запрос для определения типа и версии прибора С2000-ПП.
Для этого воспользуемся шаблоном который мы найдем в описании к устройству:
Структура запроса версии прибора С2000-ПП
Из запроса нам видно что данная информация хранится в 2х регистрах, адрес первого из которых — 46152. Нам нужно перевести данное число из десятеричной системы счисления в шестнадцатиричную. Это можно сделать любым известным вам способом или с помощью калькулятора в винде, выбрав вид калькулятора — «программист» 🙂

Итак, наш заброс без контрольной суммы будет выглядеть так:
0x03 (адрес прибора на шине), 0x03 (функция), 0xB4 0x48 (адрес регистра), 0x00 0x02 (количество регистров для чтения). Теперь нам осталось посчитать контрольную сумму. Алгоритм и функцию для расчета CRC16 Modbus мы рассмотрим в следующей части, а пока воспользуемся онлайн-калькулятором Online CRC Calculator
Получение CRC16 Modbus с помощью онлайн калькулятора
В поле вставим наш запрос 03 03 B4 48 00 02, input type и output type установим в положение HEX и нажмем кнопку «Calc CRC-16». Пролистав список алгоритмов вниз, найдем наш CRC-16/Modbus
Получение CRC16 Modbus с помощью онлайн калькулятора
Получив контрольную сумму запишем запрос полностью (помня о том как записывается контрольная сумма!):
03 03 B4 48 00 02 62 0F
Следующим шагом запустим AccessPort, отправим запрос и проанализируем полученный результат.
Итак, запускаем и открываем настройки Tools->Configuration.
Настройка программы AccessPort
В настройках com-порта выбираем порт к которому подключен C2000-USB, настройки выставляем те же 9600 8N1. Send display и Receive display устанавливаем в HEX. Нажимаем OK. Кнопкой включаем com-порт, в нижнее поле записываем побайтно в HEX формате наш запрос и нажимаем кнопку SEND.
Отправка данных в com-порт через программу AccessPort
В случае, если все сделано правильно, мы должны получить ответ в HEX формате от С2000-ПП в верхнем поле.
Получение данных из com-порта через программу AcceessPort
Мы получили ответ 03 03 04 00 24 00 83 D8 59 . Последние 2 байта — контрольная сумма, которую вы можете сами проверить.
Что-же нам прислали? Давайте еще раз посмотрим на структуру запроса версии прибора С2000-ПП:

  • 1й байт 0x03 — адрес ответившего прибора;
  • 2й байт 0x03 — код функции, которая была выполнена. Если бы запрос выполнился с ошибкой / не выполнился, то код функции вернулся бы с установленным с старшим битом 0x83;
  • 3й байт 0x04 — говорит нам о том что ответ состоит из последующих 4х байт;
  • 4й и 5й байты 0x00 0x24 — тип прибора в HEX формате;
  • 6й и 7й байты 0x00 0x83 — версия прибора в HEX формате;
  • 8й и 9й байты 0xD8 0x59 — контрольная сумма.

Теперь если мы переведем 00 24 и 00 83 из шестнадцатиричной системы в десятеричную, мы получим соответственно: тип прибора 36, версия прибора — 131.
Вот мы и закончили подготовительный этап для работы С2000-ПП компании Болид с ардуино. В следующей части мы подключим С2000-ПП к ардуино через конвертирующий модуль на базе чипа MAX485 , рассмотрим алгоритм расчета контрольной суммы CRC16 и выполним тот же запрос с помощью ардуино.

Источник

Недорогой мониторинг для серверного помещения (часть 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 мм, подключенный через резистор. Тут же пропали все “тормоза”, стало вполне вменяемо работать.

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

Вся настройка производится в среде 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-е.

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

При изучении работы модуля 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” – второй вариант короче и работает;
  • можно вместо макросов и указывать порт в виде /dev/ttyUSB0 и “11“, но это будет неудобно, если потом потребуется изменить порт USB или адрес С2000-ПП. Для преобразователя Modbus RTU / Modbus TCP в поле макроса
    указать 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.

Также в этом разделе

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

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

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

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

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

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

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

Источник

Adblock
detector