Modbus RTU/TCP на практике: настройка, диагностика и типовые ошибки

Modbus RTU/TCP на практике: настройка, диагностика и типовые ошибки

  • Сен, 03, 2026
  1. Modbus RTU и TCP: в чём разница
  2. Монтаж шины RS-485
  3. Настройка адресов и регистров
  4. Modbus TCP: сеть и порты
  5. Диагностика и типовые ошибки
  6. Чек-лист ПНР Modbus

Modbus RTU и TCP: в чём разница

Modbus — протокол обмена «мастер — slave» (в терминах Modbus: клиент опрашивает сервер). Данные организованы в регистры (holding/input) и coils (дискретные).

Параметр Modbus RTU Modbus TCP
Физика RS-485 (2-wire + GND) Ethernet
Адресация Slave ID 1…247 IP + TCP port 502
Типичное применение Датчики, счётчики, VFD на шине Контроллеры с Ethernet, SCADA
Главный риск ПНР Топология, терминатор, GND Firewall, Unit ID, timeout
Топология Modbus RTU daisy chain и Modbus TCP по Ethernet
Modbus RTU — последовательная шина RS-485 с терминаторами на концах. Modbus TCP — тот же прикладной протокол поверх TCP/IP (порт 502).

Монтаж шины RS-485 (Modbus RTU)

  • Топология — линия (daisy chain), без «звезды» и T-ответвлений от «шины»;
  • A/B (D+/D−) — полярность единая по всей линии; перепутанные пары дают timeout на всех slave;
  • Терминатор 120 Ω — только на физических концах линии (часто DIP на первом и последнем устройстве);
  • GND/общая — reference ground между master и slaves по рекомендации производителя (обычно экран к GND в одной точке);
  • Длина и скорость — при 9600 бод до ~1200 м; при 115200 — десятки метров; согласовать с проектом.
USB-RS485 адаптер на ноутбуке — удобен для ПНР, но его GND может «плавать». Для стабильного опроса используйте изолированный преобразователь или подключайтесь через штатный порт PLC/BMS-контроллера.

Настройка адресов и регистров

  1. Назначить уникальный Slave ID каждому устройству (через DIP, HMI или ПО производителя);
  2. Задать на master: скорость (9600/19200/38400), parity (Even — типично для Modbus RTU), stop bits, timeout 500–1000 мс;
  3. Сверить map регистров — адрес, тип (INT16/UINT32/float), byte order (Big Endian / word swap);
  4. Опросить по одному slave через Modbus Poll / qModMaster / встроенный tool SCADA;
  5. Проверить функции 03 (read holding), 04 (read input), 06/16 (write) — по необходимости.
Off-by-one: в документации регистр может быть «40001», а в запросе Modbus — адрес 0. Всегда уточняйте: zero-based или one-based нумерация у конкретного устройства.

Modbus TCP: сеть и порты

  • Порт по умолчанию — TCP 502 (на некоторых устройствах настраивается);
  • Unit ID в TCP-кадре часто = 1 или совпадает с бывшим RTU-адресом при миграции через шлюз;
  • Проверить firewall, VLAN, что master и slave в одной подсети или есть маршрут;
  • RTU-over-TCP шлюзы (Moxa NPort и аналоги): настраиваются как «прозрачный serial», но требуют правильного режима (Real COM / TCP server).

Диагностика и типовые ошибки

Симптом Причина Решение
Timeout на всех slave A/B перепутаны, нет общего GND, неверная скорость Прозвонить, сверить UART settings
Отвечает только один slave Дубли Slave ID Отключать по одному, переназначить ID
«Garbage» в значениях Неверный byte order / тип регистра Перебрать Float/INT32 swap в SCADA
TCP connection refused Порт закрыт, неверный IP ping, nmap 502, проверить VLAN
Нестабильный опрос Два master на одной шине; нет терминатора Один master; 120 Ω на концах

Чек-лист ПНР Modbus

  • ☐ Таблица Slave ID / IP — device name — регистры;
  • ☐ Скриншот успешного опроса каждого slave;
  • ☐ Проверена запись в управляемый регистр (команда + обратная связь);
  • ☐ SCADA/BMS видит все точки без timeout >1 %;
  • ☐ Документация map регистров приложена к as-built.

См. также на PNR24: BACnet MSTP на практике — аналогичная логика полевой шины для BMS.

Modbus — открытый протокол, но реализация регистров у каждого производителя своя. Всегда используйте официальный register map устройства; эта статья не заменяет документацию на конкретный прибор.