S
Stitex
Инженерия

Modbus RTU и TCP: в чём разница на практике

Короткий ответ: Modbus RTU и Modbus TCP — один протокол с одинаковой моделью данных, но с разным транспортом. RTU живёт на последовательной линии RS-485, адресует устройство номером внутри кадра и сам следит за целостностью контрольной суммой. TCP идёт по Ethernet, адресует прибор IP-адресом и отдаёт целостность сетевому стеку. Из этого следует всё остальное: как быстро идёт опрос, сколько запросов можно вести одновременно и как вы будете искать обрыв.

3 сентября 20267 минутStitex Technologies

Возражение: «Разница только в проводе»

Формулировка, которую слышно почти на каждом объекте: протокол один, значит и разницы никакой — поменяли кабель, и всё поехало. Половина этого утверждения верна, и именно поэтому оно живучее.

Верна вот эта половина: модель данных и коды функций совпадают. Modbus и там, и там оперирует одними и теми же 4 таблицами — катушки, дискретные входы, входные регистры, регистры хранения. Прибор, который отдаёт температуру в регистре хранения по RTU, отдаст её из того же регистра по TCP. Прикладной код верхнего уровня почти не меняется.

Неверна вторая половина. Транспорт — не деталь монтажа, а то, что задаёт правила обмена: кто и когда имеет право говорить, сколько запросов идёт одновременно, чем подтверждается целостность и чем вы будете диагностировать линию, когда связь начнёт пропадать.

Что отличается на самом деле

ЧтоModbus RTUModbus TCP
Физикапоследовательная линия RS-485, реже RS-232Ethernet: витая пара или оптика
Адресацияномер устройства в кадре, уникален внутри линииIP-адрес плюс идентификатор устройства
Целостностьконтрольная сумма внутри кадраобеспечивает сетевой стек
Порядок обменастрого по очереди: мастер спросил — прибор ответилнесколько соединений и запросов параллельно
Топологияшина, приборы последовательно на одной парезвезда через коммутатор
Что чинит связьтерминаторы, длина линии, экран, общая землянастройки сети, коммутатор, адресный план
Чем диагностироватьанализатор линии, осциллографпривычные сетевые инструменты

Практический вывод из таблицы простой. В RTU вы упираетесь в физику линии и очередь опроса: чем больше приборов на шине, тем длиннее круг, и один медленно отвечающий счётчик тормозит всех остальных. В TCP вы упираетесь в сеть и её эксплуатацию: адресный план, коммутаторы, права доступа, чужие широковещательные штормы.

Возражение: «Поставим шлюз, и RTU станет TCP»

Шлюз RS-485 в Ethernet — правильная и рабочая вещь, но делает он не то, что от него часто ждут. Шлюз снимает кадры с последовательной шины и упаковывает их для сети. Верхний уровень видит нечто, похожее на TCP-устройство. За шлюзом при этом остаётся ровно та же шина: тот же опрос по очереди, та же общая пара проводов, та же чувствительность к длине и согласованию.

Что шлюз даёт и чего не даёт
Даёт: вынос последовательной линии в сеть предприятия, расстояние, подключение сразу нескольких систем верхнего уровня к одному парку приборов. Не даёт: ускорения опроса, устойчивости к обрыву шины, параллельности запросов к приборам за ним. И добавляет то, о чём вспоминают поздно, — ещё одну точку отказа и ещё один журнал, в который придётся смотреть при разборе.

Обратное возражение: «Тогда везде ставим TCP»

Вторая крайность, и она дороже. Каждому прибору с Ethernet нужен свой порт коммутатора, свой адрес и место в адресном плане — а значит, кабельная инфраструктура в поле и человек, который эту сеть ведёт. Полевая мелочь — датчики, счётчики, простые приводы — часто вообще не имеет Ethernet, а те исполнения, что имеют, стоят заметно дороже последовательных.

Есть и вопрос периметра. Приборы, выведенные в сеть предприятия, становятся её частью со всеми вытекающими: сегментация, доступ, обновления. Последовательная шина в этом смысле скучнее и безопаснее — она физически изолирована и наружу выходит одной контролируемой точкой.

Как выбирать под конкретный объект

  • Смотрите, что уже стоит в поле: если у приборов только последовательный порт, выбор за вас сделан,
  • Считайте круг опроса: много приборов и медленные ответы — повод делить шину, а не менять транспорт,
  • Оценивайте расстояния и трассы: тянуть новую линию бывает дороже, чем поставить шлюз рядом со щитом,
  • Проверьте, кто эксплуатирует сеть: TCP отдаёт часть ответственности за связь ИТ-службе,
  • Не гонитесь за однородностью: смешанная схема — RTU в поле, TCP наверх — на практике встречается чаще чистой.

Где этот выбор проявляется в работе системы

Разница между RTU и TCP редко видна на стенде и почти всегда видна на объекте — в тот момент, когда диспетчер спрашивает, почему график оборвался ночью. Как выглядит верхний уровень, который собирает показания и показывает состояние парка, разобрано в статье IoT-мониторинг оборудования. Частные, но самые распространённые сценарии — диспетчеризация HVAC и удалённый мониторинг котельной: там оба транспорта обычно сосуществуют в одном щите. Когда стороны не сходятся и переделывать смонтированное нельзя, между ними ставят преобразователь протокола — как выбрать его класс и проверить на стенде, разобрано отдельно.

Мы готовы взяться за разбор существующей шины, проектирование опроса и вывод данных наверх. Что именно мы берём на себя и что остаётся у заказчика — на странице что мы делаем.

Частые вопросы

Modbus RTU и Modbus TCP — это разные протоколы?

Нет, это один протокол в двух видах транспорта. Модель данных и коды функций одинаковые: то, что прибор отдаёт как регистр хранения по RTU, он отдаёт как тот же регистр по TCP. Отличается упаковка кадра и то, как устройство адресуется.

Можно ли подключить RTU-устройство к системе, которая понимает только TCP?

Да, через шлюз RS-485 в Ethernet. Верхний уровень будет видеть обычное TCP-устройство. Но за шлюзом остаётся последовательная шина со своим циклом опроса и своими требованиями к монтажу — шлюз это не отменяет.

Что быстрее — RTU или TCP?

TCP: он не связан скоростью последовательной линии и допускает несколько параллельных запросов, тогда как в RTU опрос идёт строго по очереди. Но если узкое место — сам прибор, который долго формирует ответ, смена транспорта выигрыша не даст.

Нужен ли терминатор на линии RS-485?

Да, согласующие резисторы ставятся на двух концах шины, а не на каждом устройстве. Без них на длинной линии появляются отражения, и ошибки контрольной суммы плавают: прибор то отвечает, то нет. Это одна из самых частых причин «мистических» пропаданий связи.

Что выбрать для нового объекта?

Смотрите на то, что уже стоит в поле, и на расстояния. Если оборудование имеет только последовательный порт — RTU с выводом наверх через шлюз. Если приборы сами умеют Ethernet и рядом есть сеть — TCP. Смешанная схема нормальна и встречается чаще чистой.

Разберём вашу шину и верхний уровень

Посмотрим, что стоит в поле, чем это опрашивается сейчас и где именно теряется связь. Скажем прямо, нужен ли переход на TCP или задача решается на существующей линии.

Контакты

Спросите нас по теме статьи

Опишите свою ситуацию — скажем, что из этого применимо у вас, а что нет. Без обязательств.

Telegram
@StitexBot
Отвечаем
В течение рабочего дня