Настройка Modbus RTU: скорость, чётность, терминаторы, ошибки RS-485
Чтобы сеть Modbus RTU работала стабильно, должны одновременно выполняться пять условий: у всех устройств на шине одинаковые скорость, чётность и число стоп-бит; у каждого slave — уникальный адрес от 1 до 247; топология — линейная шина без ответвлений-«звёзд»; на двух физических концах линии — терминаторы 120 Ом (при длинной линии и высокой скорости); мастер выдерживает таймаут ответа и межкадровую паузу t3.5. Если хотя бы одно условие нарушено, вы получите классические симптомы: «устройство не опрашивается», ошибки CRC или периодические сбои связи. Ниже — как правильно выбрать каждый параметр и как диагностировать сеть, которая уже собрана и не работает.
Эта статья — продолжение материала «Протокол Modbus RTU для начинающих». Базовые понятия (что такое мастер, slave, функция, регистр) здесь не повторяются.
Параметры последовательного порта: скорость, чётность, стоп-биты
Modbus RTU работает поверх асинхронного последовательного канала, поэтому у каждого устройства настраиваются четыре параметра: скорость (бод), число бит данных (в RTU всегда 8), чётность (parity) и число стоп-бит. Ключевое правило: все устройства на одной шине, включая мастер, должны иметь идентичные настройки порта. Устройство с «чужой» скоростью не просто молчит — оно видит на линии мусор и может отвечать в произвольные моменты, портя чужие кадры.
Как выбирать скорость
- 9600 бод — разумный дефолт для пусконаладки и для длинных линий. Большинство приборов поставляется именно с ней.
- 19200 бод — стандартная рабочая скорость по спецификации Modbus, оптимум для типового шкафа автоматизации.
- 38400–115200 бод — оправданы при большом числе устройств и коротких линиях. Чем выше скорость, тем жёстче требования к качеству монтажа: терминаторы становятся обязательными, ответвления — критичными.
Поднимать скорость имеет смысл, когда цикл опроса не укладывается в требуемое время. Например, сервер автоматизации СА-02м опрашивает до 300 устройств — при таком количестве узлов скорость и длина запросов напрямую определяют период обновления данных.
Чётность и стоп-биты
Спецификация Modbus предписывает по умолчанию 8E1 (8 бит данных, чётность Even, 1 стоп-бит). Если чётность отключена (None), стандарт требует два стоп-бита — 8N2, чтобы длина символа осталась 11 бит. На практике очень распространён вариант 8N1, и большинство оборудования его поддерживает. Правило простое: выберите один вариант (8E1 или 8N1) и приведите к нему всю шину. Несовпадение чётности — вторая по частоте причина ошибок CRC после проблем с монтажом.
Адресация slave-устройств
- Допустимые адреса slave: 1–247. Адрес 0 — широковещательный (без ответа), 248–255 зарезервированы.
- Каждый адрес на шине должен быть уникален. Два устройства с одним адресом отвечают одновременно — на линии коллизия, мастер видит ошибки CRC или мусор.
- Новые модули часто приходят с одинаковым заводским адресом (обычно 1). Поэтому адрес назначайте до установки модуля на общую шину — подключив его к порту настройки индивидуально. Для модулей МР-02м это делается штатной программой настройки.
- Ведите таблицу адресов проекта: адрес, тип устройства, место установки. При 20+ устройствах без неё диагностика превращается в перебор.
Топология RS-485: шина, а не звезда
RS-485 — это линейная шина (daisy-chain): кабель идёт от мастера к первому устройству, от него ко второму и так далее до последнего. Каждое устройство подключается к магистрали коротким ответвлением (отводом), в идеале — прямо на клеммах, «вход-выход».
- Звезда запрещена. Несколько лучей из одной точки создают множественные отражения сигнала; сеть может работать на 9600 на столе и разваливаться на объекте.
- Ответвления (стабы) — не длиннее 0,3–0,5 м. Длинный отвод — та же маленькая звезда.
- Кабель — витая пара, желательно экранированная, с волновым сопротивлением ~120 Ом. Обычный силовой провод парой не является и на длинных линиях работает плохо.
- Третий провод (общий, GND/SC) — желателен: он выравнивает потенциалы приёмопередатчиков. Линия «только A и B» между шкафами с разным потенциалом земли — источник загадочных сбоев и выгоревших портов.
Терминаторы 120 Ом: когда нужны, когда нет
Терминатор — резистор 120 Ом между линиями A и B, устанавливаемый только на двух физических концах шины. Он согласует линию и гасит отражения сигнала.
- Нужны: линия длиннее ~50–100 м, скорость 19200 и выше, много устройств. При 115200 — обязательны всегда.
- Можно обойтись: короткая линия (единицы метров) на 9600 внутри одного шкафа. Часто работает и без терминаторов.
- Типичная ошибка №1: терминаторы в середине шины или на каждом устройстве. Каждый лишний резистор дополнительно нагружает передатчики; три-четыре «лишних» терминатора могут посадить сигнал ниже порога приёма.
- Типичная ошибка №2: забытый включённый DIP-переключатель терминатора на приборе, который переставили из конца шины в середину. При добавлении устройств проверяйте, где теперь физические концы линии.
Смещающие (подтягивающие) резисторы
Когда ни один передатчик не активен, линия RS-485 «висит в воздухе», и приёмники могут ловить помехи как ложные стартовые биты — отсюда ошибки кадров на пустой линии. Смещающие резисторы (bias, обычно 560 Ом — 1 кОм: подтяжка одной линии к питанию, другой — к общему) задают линии гарантированное состояние «1» в паузах.
- Смещение должно быть включено в одной точке шины, как правило — на мастере. Во многих преобразователях интерфейсов и контроллерах оно уже встроено.
- Несколько точек смещения одновременно — снова лишняя нагрузка на линию, тот же эффект, что и лишние терминаторы.
- Симптом отсутствия смещения: связь в целом есть, но проскакивают одиночные ошибки CRC/фрейминга, особенно в паузах между опросами и при помехах.
Экранирование и заземление
- Экран кабеля заземляйте в одной точке (обычно со стороны шкафа с мастером). Заземление с двух сторон при разности потенциалов земель создаёт ток по экрану — источник помех вместо защиты от них.
- Не прокладывайте RS-485 в одном лотке с силовыми кабелями, особенно от частотных преобразователей. Минимальный разнос — 30–50 см; пересечения — под прямым углом.
- Помехи от ЧРП — классика: связь «сыпется» только при работающем вентиляторе или насосе. Лечится разносом трасс, экранированным кабелем, корректным заземлением экрана и снижением скорости.
Длина линии, скорость и число устройств
| Скорость, бод | Практическая длина линии | Терминаторы | Примечание |
|---|---|---|---|
| 9600 | до 1200 м | Желательны от ~100 м | Дефолт для пусконаладки и длинных трасс |
| 19200 | до 1200 м | Желательны | Стандарт Modbus, оптимум для большинства объектов |
| 38400 | до ~800 м | Обязательны | Требователен к качеству монтажа |
| 57600 | до ~600 м | Обязательны | — |
| 115200 | до ~300–400 м | Обязательны | Только короткие качественные линии |
По числу устройств: классический стандарт RS-485 — 32 единичные нагрузки на сегмент. Современные приёмопередатчики с дробной нагрузкой (1/4, 1/8 UL) позволяют больше; при большом количестве узлов сеть делят на сегменты повторителями или разводят по нескольким портам мастера. СА-02м рассчитан на работу с сетью до 300 устройств — при таких масштабах планируйте сегментацию линии заранее, а не после монтажа.
Таймауты и межкадровые паузы (t3.5)
В Modbus RTU кадры не имеют разделителей — границей кадра служит тишина длительностью 3,5 символа (t3.5). При скоростях до 19200 это время считается от скорости (на 9600 — около 4 мс), при скоростях выше 19200 спецификация фиксирует его на уровне 1,75 мс.
- Таймаут ответа у мастера — время ожидания ответа slave. Типовые значения: 100–500 мс на 9600–19200. Слишком короткий таймаут даёт ложные «устройство не отвечает», слишком длинный — растягивает цикл опроса при реальном отказе одного узла.
- Пауза между запросами — не отправляйте следующий запрос мгновенно после ответа: медленным устройствам нужно время переключить приёмопередатчик. 5–20 мс паузы решают «плавающие» пропуски ответов.
- Нарушение t3.5 (мастер «слипает» кадры) характерно для самодельных опросчиков и некоторых USB-преобразователей с большой буферизацией — устройства перестают видеть границы кадров и молчат.
Типичные ошибки и как их диагностировать
Диагностику удобно вести от симптома: три базовых поведения сети почти однозначно указывают на класс проблемы.
| Симптом | Вероятная причина | Как проверить |
|---|---|---|
| Полное молчание всех устройств | Перепутаны A/B; обрыв линии; неверный COM-порт/скорость у мастера | Поменять A и B местами на мастере; прозвонить линию; проверить настройки порта |
| Молчит одно устройство | Неверный или дублирующийся адрес; иные скорость/чётность; обрыв отвода | Опросить устройство индивидуально, отключив от шины; сверить настройки программой настройки |
| Стабильные ошибки CRC | Дубли адресов (двое отвечают разом); несовпадение чётности; звезда вместо шины | Отключать устройства по одному; сверить таблицу адресов; проверить топологию |
| Периодические сбои, «плавающие» ошибки | Помехи от силовых кабелей/ЧРП; нет терминаторов или смещения; земляные петли | Сопоставить сбои с работой силового оборудования; проверить терминаторы на концах, экран — в одной точке |
| Работает на столе, не работает на объекте | Длина линии + отсутствие терминаторов; звезда; наводки по трассе | Снизить скорость до 9600 — если связь появилась, проблема в физике линии |
Разберём самые частые ошибки подробнее:
- Перепутанные A/B. Маркировка линий у разных производителей противоположная: у одних A — неинвертирующая линия, у других — инвертирующая. Если устройство корректно настроено и молчит — первым делом поменяйте местами два провода. Это бесплатно и решает заметную долю «не опрашивается».
- Дубли адресов. Симптом — ошибки CRC именно при опросе конкретного адреса. Метод поиска: отключать устройства от шины по одному до исчезновения ошибки.
- Разные скорости/чётность. Устройство с «чужими» параметрами не только молчит само, но и может мусорить в чужие ответы. Проверяется индивидуальным подключением.
- Звезда вместо шины. Визуально осмотрите клеммники в распределительных коробках: три и более кабеля в одной точке — признак звезды. Переразводите в daisy-chain.
- Помехи от силовых кабелей. Корреляция сбоев с пуском двигателей — главный диагностический признак. Смотрите трассу кабеля, а не настройки.
Полезный инструмент диагностики — ноутбук с USB–RS-485 преобразователем и любой программой-опросчиком, подключённый к шине параллельно: вы видите реальный трафик и понимаете, отвечает ли устройство вообще и что именно приходит в ответ.
Типы регистров и чтение карты регистров производителя
Когда физика линии в порядке, остаётся правильно прочитать данные. Краткая шпаргалка:
| Область | Функции | Доступ | Типовое содержимое |
|---|---|---|---|
| Coils | 01 (чтение), 05/15 (запись) | Чтение/запись, бит | Команды на дискретные выходы DO |
| Discrete Inputs | 02 | Только чтение, бит | Состояния дискретных входов DI |
| Holding Registers | 03 (чтение), 06/16 (запись) | Чтение/запись, 16 бит | Уставки, конфигурация, значения AO |
| Input Registers | 04 | Только чтение, 16 бит | Измерения AI, статусы |
На что обращать внимание в документации:
- Смещение 0/1. Одни производители нумеруют регистры с 0 (адрес «на проводе»), другие — с 1 или в нотации 40001+. Если читаете «соседние» данные — сместите адрес на единицу.
- Форматы 16/32 бита. Значение float или 32-битный счётчик занимает два регистра. Проверьте порядок слов (ABCD / CDAB и т.п.) — перепутанный порядок даёт числа вида 5,6e-42 вместо 23,4.
- Масштаб. Температура часто передаётся как целое ×10 (235 = 23,5 °C).
Для модулей ввода-вывода МР-02м карты регистров публикуются в виде файлов Excel на страницах модулей — с адресами, функциями и форматами по каждому каналу, там же — схемы подключения и программа настройки. Скачивайте карту до пусконаладки и вносите адреса в конфигурацию мастера из неё, а не «по аналогии» с другим модулем.
Чек-лист запуска сети Modbus RTU
- Единые скорость/чётность/стоп-биты на всех устройствах.
- Уникальные адреса 1–247, таблица адресов ведётся.
- Топология — шина, отводы до 0,5 м, витая пара с общим проводом.
- Терминаторы 120 Ом — только на двух концах; смещение — в одной точке.
- Экран заземлён в одной точке; трасса разнесена с силовыми кабелями.
- Таймаут ответа 100–500 мс, пауза между запросами 5–20 мс.
- Карты регистров производителя скачаны, форматы и смещение адресов сверены.
Вопросы и ответы
Устройство подключено и настроено, но не отвечает. С чего начать?
С физики, а не с настроек: поменяйте местами A и B (маркировка у производителей различается), затем проверьте адрес, скорость и чётность, подключив устройство к мастеру индивидуально, без остальной шины. Если индивидуально отвечает, а на шине нет — ищите дубль адреса или проблему топологии.
Можно ли использовать разные скорости на одной шине RS-485?
Нет. Все устройства сегмента, включая мастер, работают на одной скорости с одинаковыми чётностью и стоп-битами. Устройство с другими параметрами не только недоступно само, но и способно портить чужие кадры. Если части сети нужны разные скорости — делите её на отдельные сегменты или порты мастера.
Всегда ли нужны терминаторы 120 Ом?
Нет. На короткой линии (единицы метров, один шкаф) на 9600 бод сеть обычно работает без них. Терминаторы становятся необходимы при длине от ~50–100 м и скоростях от 19200. Правило без исключений другое: если терминаторы стоят, то ровно два — на физических концах шины, и нигде больше.
Сколько устройств можно подключить к одной линии?
Классический предел RS-485 — 32 единичные нагрузки на сегмент; приёмопередатчики с дробной нагрузкой позволяют больше. Крупную сеть делят на сегменты повторителями или разводят по нескольким портам. СА-02м поддерживает опрос до 300 устройств — на таких масштабах сегментацию и адресный план закладывают на этапе проекта.
Чем holding-регистры отличаются от input-регистров?
Input-регистры (функция 04) — только для чтения: измерения, статусы. Holding-регистры (функции 03/06/16) доступны и на запись: уставки, конфигурация, значения аналоговых выходов. Какой канал модуля в какой области лежит — смотрите в карте регистров производителя; для МР-02м она публикуется в Excel на странице каждого модуля.
