Возражение: «Разница только в проводе»
Формулировка, которую слышно почти на каждом объекте: протокол один, значит и разницы никакой — поменяли кабель, и всё поехало. Половина этого утверждения верна, и именно поэтому оно живучее.
Верна вот эта половина: модель данных и коды функций совпадают. Modbus и там, и там оперирует одними и теми же 4 таблицами — катушки, дискретные входы, входные регистры, регистры хранения. Прибор, который отдаёт температуру в регистре хранения по RTU, отдаст её из того же регистра по TCP. Прикладной код верхнего уровня почти не меняется.
Неверна вторая половина. Транспорт — не деталь монтажа, а то, что задаёт правила обмена: кто и когда имеет право говорить, сколько запросов идёт одновременно, чем подтверждается целостность и чем вы будете диагностировать линию, когда связь начнёт пропадать.
Что отличается на самом деле
| Что | Modbus RTU | Modbus TCP |
|---|---|---|
| Физика | последовательная линия RS-485, реже RS-232 | Ethernet: витая пара или оптика |
| Адресация | номер устройства в кадре, уникален внутри линии | 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. Смешанная схема нормальна и встречается чаще чистой.