D105: в режиме Modbus сервер
D105 с интерфейсом RS485 в режиме Modbus сервер.
Универсальный счетчик импульсов smart-MAIC D105 G4 в Расширенной версии может принимать данные с датчиков и счетчиков по протоколу Modbus ASCII по интерфейсу RS485, сохранять данные на облачном сервере и визуализировать на Дашборде.
Вы можете подключить до 5-ти датчиков с мгновенными значениями, такими как температура, влажность, давление, CO2, напряжение и другие, и до 2-х счетчиков с накопительными значениями, которые измеряют потребление какого-либо ресурса, например, счетчики воды, газа, тепла.
Для настройки датчиков понадобится описание протокола и формата данных от производителя датчика.
Активация и настройка режима Modbus Server
1. Универсальный счетчик D105 G4 должен иметь тип лицензии Extended.
Проверить можно в настройках устройства на странице Статус.
Для получения Extended лицензии создайте Тикет в поддержку и укажите номер устройства, расширенная лицензия для D105 стоит 10€.
2. В меню Счетчик в разделе Настройка интерфейса RS485 выбрать Тип: Modbus Server
В меню настроек Modbus сервера установите скорость передачи данных Uart baud rate (макс. 57600 bauds), конфигурация последовательного интерфейса 8-N-1.
Напротив соответствующего значения данных и опишите формат получения данных от датчика, в соответствии с документацией производителя датчиков.
Установите галочку в чек-боксе напротив значения (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.
Например, на счетчике воды имеем значение 5234.557 м3 которое мы сохраним в данных TCh1. Но так как TCh хранит целое значение, умножим наш счетчик на 1000 и сохраним. В итоге в данных TCh1 будет сохранено значение 5234557 литров. (для справки 1м3 = 1000 литрам)
Соответственно на Дашборде для получения метров-кубических надо выполнить обратную операцию в настройках виджета /1000.
Отдельно надо описать логику обработки значения Ch1.
Использовать Ch1 для чтения каких либо данных по протоколу Modbus не обязательно, данное значение рассчитывается автоматически и хранит потребление за период, который вы установите на виджете (час/день/месяц). Но если ваш счетчик воды отдает такой параметр как скорость потока, то можно данный параметр по Modbus привязать к данным Ch1. В этом случае на виджете в режиме реального времени будет отображаться скорость потока, но за период будет рассчитано соответствующее потребление воды.
В итоге имеем:
- Ch1 это потребление ресурса за период (час/день/месяц/год);
- TCh1 это накопительный счетчик, значение постоянно увеличивается и не зависит от периода.
Удачных интеграций!
Сервис поддержки клиентов работает на платформе UserEcho