PTTC.PNG
Skip to main content.

протокол Modbus RTU

Автор статьи: Шалыт Израиль Соломонович
Дата последнего изменения:2014.07.29
Сообщить об ошибке
  протокол Modbus RTU
-
[Интент]
EN  
FR  

3.5.1. Протокол MODBUS

Протокол Modbus был предложен в 1979 году компанией Modicon. Он должен был служить протоколом реализации внутренних коммуникаций «точка-точка» между ПЛК Modicon и панелью программирования, предназначенной для ввода программ в этот ПЛК. Протокол Modbus построен по принципу открытой системы.

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

Протокол Modbus предназначен для использования в сетевых структурах нескольких разновидностей, в том числе в разработанной компанией Modicon одноранговой сети Modbus Plus.

Modbus представляет собой протокол, построенный по принципу master-slave (ведущий-ведомый). Modbus допускает наличие в структуре только одного ведущего устройства и от 1 до 247 ведомых. В качестве ведомого устройства обычно выступает ПЛК. Роль ведущего устройства обычно играет либо панель программирования, либо главный компьютер.

Идеология протокола такова, что ведущему устройству адрес не присваивается, а ведомые пронумерованы от 1 до 247.

Адрес «0» зарезервирован в качестве адреса широковещательной передачи сообщений, предназначенных всем ведомым устройствам. Такое сообщение получают все ведомые устройства, но ответ на него не предусмотрен.

Сообщения-команды, исходящие от ведущего устройства, именуются запросами, а ответные сообщения, присылаемые ведомым устройством, ответами. Упрощенная структура формата сообщения, как запроса, так и ответа, показана ниже:

Адрес устройства Код функции Данные Контрольная сумма

Ведущее устройство не имеет адреса вообще, поэтому в поле адреса всегда указывается номер ведомого устройства. Если это запрос, то он направляется ведомому устройству с указанным адресом. Если сообщение является ответом, то оно поступает от ведомого устройства с проставленным в этом поле его адресом. Сообщение-запрос всегда содержит тот или иной код функции, например, код 03 – это функция «Чтение регистров хранения».

В последнем поле каждого сообщения помещается код ошибки, формируемый устройством-отправителем, так что устройство-получатель может проверить целостность пришедшего сообщения.

Протокол Modbus рассчитан на два режима последовательной передачи данных. Один именуется ASCII (American Standard Code for Information Interchange), а второй – режимом RTU (Remote Terminal Unit). Термин RTU ведет происхождение от SCADA-систем (Supervisor Control and Data Acquisition), в которых ведущее устройство, именуемое CTU (Central Terminal Unit), обменивается информацией с несколькими удаленными устройствами (RTU), находящимися от него на определенных расстояниях.

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

В табл. 3.11 и 3.12 показана отправка символа при использовании асинхронной последовательной передачи данных для обоих режимов с битом четности или без него.

Таблица 3.11. Структура кадра для 7-битового режима ASCII
Стартовый бит Бит четности Стоповый бит
Стартовый бит Стоповый бит Стоповый бит

Таблица 3.12. Структура кадра для 8-битового режима RTU
Стартовый бит Бит четности Стоповый бит
Стартовый бит Стоповый бит Стоповый бит

Каждый символ передается как последовательность битов, причем время, затрачиваемое на передачу одного бита, обратно пропорционально скорости передачи данных. Например, при скорости 9600 бод время передачи 1 бита равно 104,1 мкс. Когда информация не передается, линии связи находится в маркерном (marking) состоянии. Противоположное ему состояние именуется заполненным (spacing). Когда линия переходит в заполненное состояние для побитовой передачи данных, каждому символу предшествует стартовый бит, а в конце идет один стоповый бит или больше, после этого линия возвращается в маркерное состояние.

В промежутке между стартовым и стоповым битами осуществляется передача 7, в режиме ASCII, или 8, в режиме RTU, битов, составляющих символ, причем первым посылается младший бит (LSB). После символа идет либо бит четности, либо еще один стоповый бит. При этом пользователь имеет возможность выбирать один из трех вариантов: контроль на четность, или на нечетность, либо отсутствие контроля. В режиме ASCII передача одного символа требует передачи 10 битов, а в режиме RTU – 11. При асинхронной связи символы могут пересылаться либо вплотную, либо с временным интервалом между ними. Последовательности символов, образующих сообщения, имеют различные структуры в зависимости от режима – ASCII или RTU.

[Источник]

Тематики

  • сети вычислительные

EN

  • Modbus RTU protocol

 

Внимание!

Закрыть