D105: в режиме Modbus сервер

D105 с интерфейсом RS485 в режиме Modbus сервер.

Универсальный счетчик импульсов smart-MAIC D105 G4 в Расширенной версии может принимать данные с датчиков и счетчиков по протоколу Modbus ASCII по интерфейсу RS485, сохранять данные на облачном сервере и визуализировать на Дашборде.

Вы можете подключить до 5-ти датчиков с мгновенными значениями, такими как температура, влажность, давление, CO2, напряжение и другие, и до 2-х счетчиков с накопительными значениями, которые измеряют потребление какого-либо ресурса, например, счетчики воды, газа, тепла.

Для настройки датчиков понадобится описание протокола и формата данных от производителя датчика.

Активация и настройка режима Modbus Server

1. Универсальный счетчик D105 G4 должен иметь тип лицензии Extended.

Проверить можно в настройках устройства на странице Статус.

Для получения Extended лицензии создайте Тикет в поддержку и укажите номер устройства, расширенная лицензия для D105 стоит 10€.

Image 1477


2. В меню Счетчик в разделе Настройка интерфейса RS485 выбрать Тип: Modbus Server

В меню настроек Modbus сервера установите скорость передачи данных Uart baud rate (макс. 57600 bauds), конфигурация последовательного интерфейса 8-N-1.
Напротив соответствующего значения данных и опишите формат получения данных от датчика, в соответствии с документацией производителя датчиков.

Image 1897

Установите галочку в чек-боксе напротив значения (T1 - T5 или Ch1/Ch2) в котором хотите сохранять данные с датчика и укажите:
- Запрос к датчику 6 байт в HEX формате

  • байт 0 – номер Slave устройства в сети. Обычно указан на датчике или в документации.
  • байт 1 – команда. Обычно команда чтения регистра 0x03
  • байты 2-3 – адрес регистра. Указано в документации к датчику.
  • байты 4-5 – размер данных для чтения. Указано в документации к датчику

- Формат данных от датчика (беззнаковый/знаковый/дробный): uint8 / uint16 / int16 / uint32 / int32 / float32

- Делитель/множитель для обработки дробной части значения.

Все эти параметры указаны в документации от производителя вашего датчика.

Специфика обработки данных с Modbus датчика

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

- мгновенные значения, которые определяют значение/состояние в текущий момент времени, такие как температура, влажность, давление, напряжение, CO2 и т.д.;

- накопительные значения, которые определяют потребление какого-либо ресурса во времени: вода, газ, энергия, тепло.

1. Мгновенные значения Т1 - Т5

Для приема мгновенных данных, хранения и обработки на Дашборде используются значения Т1 - Т5. Мгновенные значения на Дашборде обновляются раз в 5 секунд и каждую минуту сохраняются на облачном сервере. За период час/день/месяц мгновенные значения рассчитываются как средние арифметические. В базе данных значения T1 - T5 хранятся с двумя знаками после запятой, максимальное допустимое значение +21 474 836.47 / минимальное допустимое значение -21 474 836.47

2. Накопительные значения TCh1 и TCh2

Для обработки накопительных данных используйте значения TCh1 и TCh2, при этом на соответствующий импульсный вход ничего подключать не надо. В облачной базе данных значения TCh1 и TCh2 хранятся в формате без знакового целого числа, поэтому используйте мультипликатор для перевода вашего дробного значения в целое, например, мультипликатор *1000 для перевода кВт в Ваты / m3 в литры / Гкал в Ккал для сохранения в целых числах в Ch и TCh.


Рассмотрим пример, снятие данных со счетчика воды для учета расхода воды.
Счетчик воды по протоколу Modbus отдает текущее накопленное значение в метрах-кубических с тремя знаками после запятой в формате float32. Но так как накопительные данные сохраняются в целых числах, то чтобы не потерять дробную часть необходимо умножить на 1000. Данное значение мы будем хранить в накопительном счетчике TCh1.

Image 1898

Например, на счетчике воды имеем значение 5234.557 м3 которое мы сохраним в данных TCh1. Но так как TCh хранит целое значение, умножим наш счетчик на 1000 и сохраним. В итоге в данных TCh1 будет сохранено значение 5234557 литров. (для справки 1м3 = 1000 литрам)

Соответственно на Дашборде для получения метров-кубических надо выполнить обратную операцию в настройках виджета /1000.

Отдельно надо описать логику обработки значения Ch1.

Использовать Ch1 для чтения каких либо данных по протоколу Modbus не обязательно, данное значение рассчитывается автоматически и хранит потребление за период, который вы установите на виджете (час/день/месяц). Но если ваш счетчик воды отдает такой параметр как скорость потока, то можно данный параметр по Modbus привязать к данным Ch1. В этом случае на виджете в режиме реального времени будет отображаться скорость потока, но за период будет рассчитано соответствующее потребление воды.
В итоге имеем:

- Ch1 это потребление ресурса за период (час/день/месяц/год);
- TCh1 это накопительный счетчик, значение постоянно увеличивается и не зависит от периода.

Удачных интеграций!

Эта статья была полезна для 16 людей. Эта статья помогла вам?

Сервис поддержки клиентов работает на платформе UserEcho