RS-485 · Modbus RTU · polling

Калькулятор RS-485 / Modbus RTU: цикл опроса и загрузка шины

Оцените, успевает ли master опрашивать все устройства с заданным интервалом. Калькулятор учитывает baud rate, формат символа, межкадровую паузу RTU, размер запросов и ответов, задержку устройства и несколько групп регистров.

Это расчёт времени обмена, а не «максимального числа устройств» или длины кабеля. Физическая устойчивость RS-485 зависит от топологии, терминаторов, ответвлений, кабеля, помех, земли/экрана и конкретных трансиверов. Универсального безопасного метража калькулятор не выдумывает.
1. Параметры линии
2. Что нужно опрашивать

Одна строка — группа одинаковых запросов. Если устройство читает несколько несмежных диапазонов, задайте несколько блоков. Для FC03/FC04 один запрос может содержать не более 125 регистров.

3. Запас для проекта
Почему не планировать ровно на 100%? Записи, сервисные запросы, редкие таймауты и нестабильная задержка slave тоже занимают последовательную шину. Калькулятор показывает отдельно физический предел 100% и выбранный вами рабочий запас.

Как считается цикл Modbus RTU

Для чтения holding/input registers запрос FC03/FC04 занимает 8 байт RTU, а ответ — 5 + 2 × N байт, где N — число регистров. Для coils/discrete inputs запрос также 8 байт, а ответ содержит 5 байт служебной части плюс упакованные биты.

Между кадрами нужен silent interval. Калькулятор использует минимум 3,5 времени символа до 19 200 бит/с и фиксированные 1,75 мс выше этой скорости. Дополнительную задержку ответа устройства и guard interval можно задать отдельно.

В одной Modbus Serial Line используются slave-адреса 1…247. Поэтому калькулятор отдельно проверяет число уникальных slave и не суммирует polling-группы как новые адреса: разные группы могут относиться к одним и тем же устройствам.

Если сумма времени всех требуемых транзакций за секунду превышает 1000 мс, желаемые интервалы физически невыполнимы на одной последовательной шине. В таком случае помогают более высокая поддерживаемая скорость, объединение смежных регистров в один запрос, более редкий опрос медленных параметров или разделение устройств по нескольким портам.