docs:modbus_knx


Этот материал описывает неочевидные моменты, которые возникают при интеграции устройств Modbus (счетчики, фанкойлы, инверторы) в шину KNX через специализированный шлюз.

Основная проблема: Modbus и KNX говорят на принципиально разных языках. Modbus оперирует регистрами (16/32 бита, float, raw data), а KNX — типизированными объектами (DPT). Задача шлюза — перевести одно в другое без потерь.

1. Аппаратные нюансы: физика и питание


  • Терминаторы (RS-485): На линии Modbus (RTU) обязательно должны быть установлены резисторы 120 Ом на обоих концах сегмента. Без этого возможны обрывы связи или лавина ошибок CRC [citation:10].
  • Общий GND: Используй экранированную витую пару. В отличие от M-Bus, для Modbus RTU важна общая нейтраль (GND) между шлюзом и ведомыми устройствами, чтобы «привязать» сигнал.
  • Питание шлюза:
    • Большинство чистых KNX-устройств питаются от шины (29–30 В). Однако шлюзы KNX-Modbus часто требуют дополнительного внешнего питания 24 В для работы интерфейса RS-485. Если шлюз не видит устройства — проверь, подано ли питание на клеммы RS-485 (обычно +/- или 24V/GND) [citation:10].
  • KNX Bus Load: Учитывай ток потребления шлюза от шины KNX. Интенсивный опрос Modbus (например, каждую секунду) создает дополнительную нагрузку на шину KNX из-за большого количества отправляемых телеграмм.

2.1 Выбор режима работы шлюза


В зависимости от задачи шлюз может работать в двух направлениях [citation:4]:

Режим Направление Типовое применение
Master Modbus (Client) Шлюз → Устройство Шлюз сам опрашивает датчики (счетчики, метеостанции). Самый частый случай.
Slave Modbus (Server) Устройство → Шлюз Внешняя BMS или ПЛК читает данные из KNX (например, статусы света).

2.2 Тонкости подключения: RTU vs TCP


  • Modbus RTU (RS-485):
    • Убедись, что скорость (Baud Rate), бит данных, четность (Parity) и стоп-биты совпадают с настройками ведомого устройства.
Важно: Если устройство одно, некоторые специалисты советуют отключать терминаторы на коротких линиях (< 3 м). Если устройств несколько — терминаторы обязательны на крайних точках [citation:10].

* Modbus TCP (Ethernet):

  • Используй порт 502 (стандарт).
Нюанс: Некоторые TCP-устройства «зависают» при частых переподключениях. В настройках шлюза ищи опцию «Persistent Connection» (Постоянное соединение) и включай ее, если интервал опроса меньше минуты [citation:1][citation:5].


Здесь кроется 90% ошибок. Modbus не строг, KNX — строг.


3.1 Адресация (Offset)

  • Запомни: Часто в паспорте прибора указан «Регистр 40001», а в поле адреса шлюза нужно писать 0 (Смещение).
  • *Физический адрес = Адрес_по_документации - 40001.*

3.2 Типы данных и Конечность (Endianness)

  • 16 бит (Word): Проще всего. Если значение влезает в диапазон 0…65535.
  • 32 бита (Double Word / Float): Вот здесь начинается боль.
    • KNX требует DPT 14 (Float, 32 бита) для реальных чисел.
    • Но Modbus может передавать байты в разном порядке.

Критично: Байтовый порядок (Byte Order):

  1.  Option 1 (Big-Endian / ABCD): Старший байт первый. (Обычный стандарт).
  2.  Option 2 (Little-Endian / CDAB): Младший байт первый. (Часто у китайских устройств).
  3.  Option 3 (Word Swap / BADC): Перепутаны слова.
  4.  Если на KNX приходит «мусор» типа 3.0e-39 или 1.2e+12 — значит, порядок байт неверный. Нужно менять настройку «Word Order» в шлюзе* [citation:9][citation:10].

3.3 Пример сложного преобразования (Из документации)


  • Что пишут в документации Modbus: «Напряжение: Uint32, Адрес 2 (2 регистра), множитель 0.01».
  • Что нужно выставить в ETS/шлюзе:
  1. Функция: 03 (Read Holding Registers).
  2. Стартовый адрес: 2 (или 1? Смотри спецификацию шлюза).
  3. Тип: Unsigned 32-bit (Uint32).
  4. Порядок: Big-Endian (обычно).
  5. Множитель: 0.01 (или разделить на 100).
  6. Тип KNX: **DPT 14.027** (Напряжение в Вольтах) [citation:10].

4. Диагностика: «Ничего не работает»


Прежде чем винить шлюз, проверь физику отдельно.

  • Золотое правило: Отсоедини шлюз и подключи к линии USB-to-RS485 конвертер.
  • Программой Modbus Poll (или QModMaster) опроси устройство [citation:10].
  • Если Modbus Poll читает — проблема в настройках шлюза.
  • Если Modbus Poll не читает — проблема в кабеле, терминаторах или адресе устройства.

Чек-лист отладки:

  • ✔ Светодиоды на шлюзе: горят TX (опрос) и RX (ответ)?
  • ✔ Нет ли конфликта адресов? У всех устройств (Slave ID) разные номера? (Обычно 1, 2, 3…).
  • ✔ Совпадает ли скорость в настройках шлюза и в устройстве? (Ошибка новичка: 9600 vs 19200).
  • ✔ Не перепутаны ли провода A/A’ и B/B’? (Попробуй физически поменять местами A и B).

Совет профи: Некоторые шлюзы (например, Intesis или Weinzierl) требуют, чтобы при первом программировании через ETS шлюз был физически изолирован от большой шины KNX (подключен только к ПК и питанию). «Тяжелый» KNX-трафик может мешать заливке прошивки [citation:3].

Antistatus 13.05.2026 11:27

  • docs/modbus_knx.txt
  • Последнее изменение: 3 ч. назад
  • admin