Меню

Протокол Modbus RTU TCP

  • 28.01.2026
  • Инженерные термины и определения

Протокол Modbus RTU и Modbus TCP представляют собой стандартизированные промышленные протоколы связи, обеспечивающие обмен данными между контроллерами, датчиками и исполнительными устройствами в системах автоматизации. Modbus RTU работает через последовательный интерфейс RS-485, а Modbus TCP использует сети Ethernet для передачи данных в архитектуре клиент-сервер.

Что такое протокол Modbus

Modbus представляет собой открытый коммуникационный протокол прикладного уровня, разработанный компанией Modicon в 1979 году для программируемых логических контроллеров. Протокол функционирует по архитектуре ведущий-ведомый, где ведущее устройство инициирует обмен данными, а ведомые устройства отвечают на запросы.

Протокол Modbus позволяет объединять в единую сеть до 247 устройств с уникальными адресами. Адресация начинается с 1, адрес 0 зарезервирован для широковещательных сообщений. Стандарт определяет три основные реализации: Modbus RTU, Modbus ASCII и Modbus TCP.

Ключевое преимущество: открытая спецификация протокола обеспечивает совместимость оборудования различных производителей без лицензионных отчислений. Простота реализации и надежность передачи данных сделали Modbus стандартом де-факто в промышленной автоматизации.

Структура кадра Modbus RTU

Кадр данных Modbus RTU состоит из адреса устройства, кода функции, блока данных и контрольной суммы CRC-16. Передача осуществляется в двоичном формате, что обеспечивает компактность сообщений и высокую скорость обмена.

Компоненты кадра RTU

  • Адрес устройства: 1 байт, диапазон от 1 до 247, идентифицирует ведомое устройство в сети
  • Код функции: 1 байт, определяет тип операции чтения или записи данных
  • Блок данных: переменная длина до 252 байт, содержит адреса регистров и значения
  • CRC-16: 2 байта контрольной суммы для обнаружения ошибок передачи

Сообщения Modbus RTU разделяются временными интервалами. Между кадрами должна быть пауза минимум 3,5 символа. Внутри кадра интервал между символами не должен превышать 1,5 символа при скоростях до 19200 бод. При более высоких скоростях используются фиксированные значения: 750 мкс для межсимвольного интервала и 1,75 мс для межкадровой паузы.

Формат передачи на физическом уровне

Каждый байт данных передается как асинхронная последовательность из 11 бит: 1 стартовый бит, 8 бит данных, 1 бит четности и 1 стоповый бит. Младший значащий бит передается первым. Стандартная конфигурация предусматривает четность типа Even, однако допускается работа без контроля четности с двумя стоповыми битами.

Структура кадра Modbus TCP

Modbus TCP инкапсулирует блок данных протокола PDU в TCP-пакет с дополнительным заголовком MBAP. Протокол использует стандартный TCP-порт 502 для связи по сети Ethernet. Основное отличие от RTU заключается в замене CRC-контроля на механизмы проверки целостности TCP-протокола.

Поле MBAP Размер Описание
Transaction ID 2 байта Уникальный идентификатор транзакции для сопоставления запроса и ответа
Protocol ID 2 байта Идентификатор протокола, всегда 0x0000 для Modbus
Length 2 байта Длина последующих данных включая Unit ID
Unit ID 1 байт Адрес устройства для шлюзов RTU-TCP

Modbus TCP поддерживает множественные одновременные соединения клиентов, в отличие от архитектуры RTU с единственным ведущим устройством. Пропускная способность Ethernet 100 Мбит/с или 1 Гбит/с значительно превосходит возможности последовательного интерфейса RS-485.

Типы регистров и адресация

Протокол Modbus определяет четыре области памяти с различными свойствами доступа. Классическая нотация использует пятизначные номера регистров, где первая цифра указывает тип области. Современная спецификация Modbus расширяет адресное пространство до 65536 адресов для каждого типа данных.

Coils - дискретные выходы

Однобитные регистры с возможностью чтения и записи. Адресация 00001-09999 в классической нотации. Используются для управления дискретными исполнительными устройствами: реле, электромагнитными клапанами, сигнализацией. Состояние 1 соответствует включенному выходу, 0 - выключенному.

Discrete Inputs - дискретные входы

Однобитные регистры только для чтения. Нумерация 10001-19999. Предназначены для опроса состояния датчиков с дискретным выходом: концевых выключателей, кнопок аварийного останова, датчиков положения. Значение 1 означает замкнутое состояние входа.

Input Registers - входные регистры

16-битные регистры только для чтения, адреса 30001-39999. Хранят аналоговые значения от измерительных устройств: температура, давление, расход, уровень. Данные передаются старшим байтом вперед согласно формату Big-Endian.

Holding Registers - регистры хранения

Универсальные 16-битные регистры с полным доступом на чтение и запись. Диапазон адресов 40001-49999. Применяются для уставок технологических параметров, конфигурационных данных, буферизации команд управления и хранения результатов вычислений.

Важно: в современной документации производителей часто используется прямая адресация начиная с 0, где первый Holding Register имеет адрес 0x0000 вместо 40001. При программировании необходимо уточнять формат адресации в технической документации конкретного устройства.

Коды функций Modbus

Стандарт определяет публичные функциональные коды для операций чтения и записи различных типов регистров. Наиболее часто используются функции 01-06, 15-16.

Код Функция Область применения
0x01 Read Coils Чтение состояния 1-2000 дискретных выходов
0x02 Read Discrete Inputs Чтение состояния 1-2000 дискретных входов
0x03 Read Holding Registers Чтение 1-125 регистров хранения
0x04 Read Input Registers Чтение 1-125 входных регистров
0x05 Write Single Coil Запись одного дискретного выхода
0x06 Write Single Register Запись одного регистра хранения
0x0F Write Multiple Coils Запись нескольких дискретных выходов
0x10 Write Multiple Registers Запись 1-123 регистров хранения

При записи единичного Coil используются константы 0xFF00 для установки состояния ON и 0x0000 для OFF. Промежуточные значения не допускаются. Функция 0x10 позволяет записывать блоки данных за одну транзакцию, что повышает эффективность обмена при конфигурировании устройств.

Интерфейс RS-485 для Modbus RTU

Стандарт TIA/EIA-485 определяет дифференциальную передачу сигналов по витой паре проводников. Максимальная дальность связи достигает 1200 метров при скорости 9600 бод. Топология сети представляет магистральную шину с согласующими резисторами на концах линии.

Параметры физического уровня

  • Стандартные скорости передачи: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бод
  • Рекомендуемая скорость: 19200 бод обеспечивает баланс между производительностью и помехоустойчивостью
  • Кабель: экранированная витая пара сечением минимум 0,22 мм² с волновым сопротивлением 120 Ом
  • Терминаторы: резисторы 120 Ом на концах магистрали для подавления отражений сигнала
  • Количество устройств: стандарт определяет 32 unit loads как максимальную нагрузку на шину, что соответствует 32 устройствам с полной нагрузкой. Современные приемопередатчики с нагрузкой 1/8 unit load позволяют подключать до 256 устройств

При скоростях выше 19200 бод необходимо строго соблюдать требования к построению шины: минимизировать длину отводов от магистрали, использовать качественные экранированные кабели, обеспечивать правильное заземление экранов. Высокие скорости 115200 бод применяются на коротких расстояниях до 100 метров.

Настройка параметров связи

Все устройства в сети Modbus RTU должны иметь идентичные настройки физического уровня. Конфигурирование выполняется через специальные регистры устройства или аппаратные переключатели.

Обязательные параметры

  1. Уникальный адрес устройства в диапазоне 1-247, настраивается индивидуально для каждого узла сети
  2. Скорость передачи данных в бодах, должна совпадать у всех участников обмена
  3. Формат кадра: количество бит данных (обычно 8), тип контроля четности (Even/Odd/None), количество стоповых бит (1 или 2)
  4. Таймаут ответа: максимальное время ожидания ответа от ведомого устройства, типично 500-1000 мс

Контроль четности Even обеспечивает обнаружение одиночных ошибок в байте данных. При работе без контроля четности используются два стоповых бита для компенсации. Стандарт Modbus рекомендует Even parity как режим по умолчанию, хотя допускаются режимы Odd parity или No parity для совместимости с различным оборудованием.

Различия между Modbus RTU и Modbus TCP

Основные отличия реализаций связаны с физическим уровнем передачи данных и механизмами обеспечения достоверности. Обе версии используют идентичный блок данных протокола PDU, что упрощает преобразование между ними.

Параметр Modbus RTU Modbus TCP
Физический уровень RS-485, RS-232, RS-422 Ethernet 10/100/1000 Мбит/с
Топология сети Магистральная шина Звезда, коммутируемая сеть
Архитектура Один Master, до 247 Slave Множественные Client-Server
Контроль ошибок CRC-16, контроль четности Контрольные суммы TCP/IP
Максимальная дальность 1200 метров без репитеров Ограничена сетевой инфраструктурой
Скорость передачи До 115200 бод 100 Мбит/с - 1 Гбит/с

Modbus RTU подходит для локальных систем в пределах одного производственного участка с жесткими требованиями реального времени. Modbus TCP применяется для распределенных систем с удаленным мониторингом, интеграцией с SCADA-системами и облачными сервисами.

Диагностика и устранение ошибок

Протокол предусматривает коды исключений для индикации ошибочных ситуаций. При возникновении ошибки устройство возвращает ответ с кодом функции, в котором установлен старший бит, и байтом кода исключения.

Основные коды исключений

  • 0x01 - Illegal Function: запрошенная функция не поддерживается устройством
  • 0x02 - Illegal Data Address: обращение к несуществующему адресу регистра
  • 0x03 - Illegal Data Value: недопустимое значение в поле данных запроса
  • 0x04 - Slave Device Failure: внутренняя ошибка устройства при выполнении операции

Типичные проблемы связи включают несовпадение настроек скорости передачи, отсутствие терминирования линии RS-485, конфликты адресов устройств. Для диагностики применяются анализаторы протокола, программные утилиты мониторинга обмена, измерения уровней сигналов осциллографом.

Частые вопросы о протоколе Modbus

Можно ли использовать Modbus RTU и TCP в одной системе?
Да, через шлюзы Modbus RTU-TCP, которые преобразуют протоколы. Шлюз выступает ведущим устройством на шине RS-485 и сервером в сети Ethernet, обеспечивая прозрачную передачу данных между сегментами.
Какой максимальный объем данных передается за одну транзакцию?
Функции чтения допускают до 2000 битов для Coils или до 125 регистров по 16 бит. Функции записи ограничены 1968 битами (246 байт) для Coils и 123 регистрами для Holding Registers. Общая длина ADU на последовательном интерфейсе не превышает 256 байт, из которых максимум 253 байта занимает PDU.
Как работает широковещательная передача в Modbus?
Запросы с адресом 0 принимаются всеми устройствами без отправки ответов. Широковещательный режим применяется для синхронизации времени или одновременной установки параметров группы устройств. Доступен только для функций записи.
Нужно ли программировать контрольную сумму CRC вручную?
Нет, современные библиотеки Modbus и аппаратные контроллеры автоматически вычисляют и проверяют CRC-16. Алгоритм использует полином 0xA001 в обратной нотации. Программисту достаточно передать блок данных без CRC.
Какие меры безопасности предусмотрены в протоколе?
Базовый протокол Modbus не включает аутентификацию и шифрование. Для защищенной передачи Modbus TCP инкапсулируют в VPN-туннели. Применяются также межсетевые экраны с фильтрацией по IP-адресам и портам.

Заключение

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

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

Данная статья носит ознакомительный характер и предназначена для технических специалистов в области промышленной автоматизации. Информация представлена на основе актуальных технических стандартов и практического опыта внедрения систем Modbus. Автор не несет ответственности за возможные последствия применения описанных решений без учета специфики конкретных проектов и требований действующих нормативных документов. При проектировании систем автоматизации необходимо руководствоваться технической документацией производителей оборудования и консультациями квалифицированных специалистов.
Появились вопросы?

Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.