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 1894


2. У меню Лічильник у розділі Налаштування інтерфейсу RS485 вибрати Тип: Modbus Server

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

Навпроти відповідного значення даних опишіть формат отримання даних від датчика, відповідно до документації виробника датчиків.

Image 1899

Встановіть галочку в чек-боксі навпроти значення (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 1900

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

Відповідно на Дашборді для отримання метрів-кубічних треба виконати зворотну операцію в налаштуваннях віджету /1000.

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

Використовувати Ch для читання будь-яких даних за протоколом Modbus не обов'язково, це значення розраховується автоматично та зберігає споживання за період, який ви встановите на віджеті (година/день/місяць). Але якщо ваш лічильник води віддає такий параметр як швидкість потоку, то можна цей параметр по Modbus прив'язати до даних Ch1. У цьому випадку на віджеті в режимі реального часу відображатиметься швидкість потоку, але за період буде розраховано відповідне споживання води.
В результаті маємо:

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

Вдалих інтеграцій!

Ця стаття допомогла 10 людям. Чи допомогла вам ця стаття?