Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Микропроцессорные средства автоматизации энергетических систем. Сети автоматизации

.pdf
Скачиваний:
5
Добавлен:
12.11.2023
Размер:
20.13 Mб
Скачать

ГЛАВА 4 ПРОТОКОЛ MODBUS

4.1. ИСТОРИЯ И ПОДДЕРЖКА ПРОТОКОЛА MODBUS

Технологии ARCNET, Ethernet и Modbus были разработаны в70-х годах XX века. С течением времени они развивались, но основы их функционирования остались неизменными. Между этими тремя технологиями есть одно основополагающее различие. ARCNET и Ethernet представляют собой стандарты на каналы передачи данных (физическийиканальныйуровниISO/OSI). Modbus позволяет:

работать на физическом уровне по различным физическим

средам;

на канальном уровне реализуется протокол «ведущий – ведомый» с двумя режимами: RTU и ASCII;

на прикладном уровне реализуются запросы с помощью кодов функций.

Modbus был предложен в 1979 году компанией Modicon – ли-

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

Задуманный первоначально как интерфейс «точка-точка» между собственными устройствами компании Modicon, данный протокол нашел применение в многоточечных и равноранговых сетях, таких как TCP/IP. Теперь область применения этого протокола уже не ограничивается оборудованием фирмы Modicon.

Первоначально компания Modicon использовала для соединений «точка-точка» с ПЛК по интерфейсу EIA-232C (RS-232C). Протокол был построен по принципу master – slave (ведущий – ведомый).

201

Допускалось наличие в структуре только одного ведущего устройства и от 1 до 247 ведомых. Роль ведущего устройства обычно играют панель программирования либо главный компьютер. Следовательно, если одному главному компьютеру необходимо обмениваться информацией с четырьмя ПЛК, то нужно, чтобы этот компьютер располагал четырьмя последовательными портами. Это приводит к необходимости иметь систему с топологией звезды. Допустимая длина интерфейсного кабеля EIA-232C сравнительно невелика, поэтому, если надо обеспечить связь на большие расстояния, то требуются модемы. Многоточечные сети с двух- и четырехпроводными интерфейсами EIA-485 (RS-485) появились значительно позднее.

Спецификация протокола Modbus для передачи данных по последовательной линии связи поддерживает и двухпроводную,

ичетырехпроводную схему, но более популярной является первая. Хотя четырехпроводная схема дает возможность иметь полнодуплексную связь, сам протокол Modbus является строго полудуплексным. Ведущее устройство выдает команды конкретному ведомому устройству, а затем ждет от него ответа. Такой порядок вполне эффективно работает в двухпроводной схеме.

Физическим уровнем протокола Modbus, как правило, является линия стандарта RS-422/RS-485, однако при соединении «точка-точка» тот же формат команд может быть использован в любом последовательномасинхронномфизическом интерфейсе, в томчислев RS-232.

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

иво многих других областях (системы автоматизации зданий, электроэнергетика и др.).

Группой Modbus IDA были выпущены четыре руководства: Modicon Modbus Reference Guide, Modbus Application Protocol Specification, Modbus over Serial Line Specification and Implementation Guide и Modbus Messaging on TCP/IP Implementation Guide.

Протокол продолжает широко использоваться. Modbus построен по принципу открытой системы, к нему есть бесплатный доступ на сайте www.modbus.org.

202

Преимуществами Modbus являются независимость от типов интерфейсов, поэтому имеют место отсутствие необходимости в специальных интерфейсных контроллерах (Profibus и CAN требуют для своей реализации заказные микросхемы), простота логики и программной реализации. В связи с этим Modbus прост для понимания, и многие инженеры получили первый опыт работы именно с этим протоколом. Все это снижает затраты на освоение стандарта как системными интеграторами, такиразработчикамиконтроллерного оборудования.

ВРоссии Моdbus по распространенности конкурирует только

сProfibus. Популярность протокола в настоящее время объясняется прежде всего совместимостью с большим количеством оборудования, которое имеет протокол Modbus. Кроме того, Modbus имеет

высокую достоверность передачи данных, связанную с применением надежного метода контроля ошибок. Данный протокол позволяет унифицировать команды обмена благодаря стандартизации номеров (адpecoв) регистров и функций их чтения-записи.

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

Разновидностями Modbus являются протоколы Modbus Plus – многомастерный протокол с кольцевой передачей маркера (в России не применяется вследствие закрытости протокола) – и Modbus ТСР, рассчитанныйнаиспользованиевсетяхEthernet иИнтернет(см. гл. 2.6).

4.2. ОБЩАЯ ХАРАКТЕРИСТИКА MODBUS

Стандарт Modbus предусматривает применение физических интерфейсов RS-485, RS-422 или RS-232 (см. гл. 1). Наиболее распространенным для организации промышленной сети является двухпроводной интерфейс RS-485. Для соединений «точка-точка» могут быть использованы интерфейсы RS-232 или RS-422 стандарта как системными интеграторами, так и разработчиками контроллерного оборудования.

203

Моdbus-устройство обязательно должно поддерживать скорость обмена 9600 и 19 200 Бод, из них 19 200 Бод устанавливаются по умолчанию. Допускаются также скорости 1200, 2400, 4800, 38400 Бод, 65, 115 кБод и т.д.

Скорость передачи должна выдерживаться в передатчике с погрешностью не ниже 1 %, а приемник должен принимать данные при отклонении скорости передачи до 2 %.

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

Максимальная длина магистрального кабеля при скорости передачи 9600 бит/с и сечении жил более 0,13 мм2 (AWG 26) составляет 1 км. Отводы от магистрального кабеля не должны быть длиннее 20 м. При использовании многопортового пассивного разветвителя с N-отводами длина каждого отвода не должна превышать значения 40 м/N.

Modbus не устанавливает конкретных типов разъемов, но если используются разъемы RJ-45, mini-DIN или D-Shell, они должны быть экранированными, а цоколевки должны соответствовать стандарту.

Для минимизации ошибок при монтаже рекомендуется использовать провода следующих цветов: желтый – для положительного вывода RS-485 (когда через интерфейс выводится логическая единица); коричневый – для второго вывода интерфейса RS-485; серый – для общего провода.

Типовым сечением кабеля является AWG 24 (0,2 мм, диаметр провода – 0,51 мм). При использовании кабеля категории 5 его длина не должна превышать 600 м. Волновое сопротивление кабеля желательно выбирать более 100 Ом, особенно для скорости обмена более 19 200 Бод.

204

По правилам протокола Modbus передача сообщения может инициироваться только ведущим устройством, ведомые этого делать не могут. Если ведомое устройство отмечает такое событие, как «остановились насосы подачи воды в систему охлаждения атомного реактора», то оно не может проинформировать об этом ведущее устройство до тех пор, пока ведущее не пришлет ему запрос о том, как идут дела. Ведущему устройству адрес не присваивается, а ведомые пронумерованы от 1 до 247.

Протокол подразумевает на общей шине одно master-устрой- ство (MS) и до 247 slave (SL). На практике приборы ограничивают число подчиненных устройств, подключаемых к общей шине, до 32 на один сегмент сети.

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

Окончание ответной посылки ведущее устройство определяет по временным интервалам между окончанием приема предыдущего байта и началом приема следующего.

Определенные характеристики протокола Modbus, такие как формат обрамления, последовательность обрамления, трактовка коммуникационных ошибок и исключительных условий, представление функций, жестко фиксированы (постоянны). Другие характеристики выбираются пользователем. Они включают выбор передающей среды, скорости передачи, символа паритета, числа стоповых битов и режима передачи (ASCII или RTU). Выбранные пользователем параметры устанавливаются (аппаратно или программно) в каждую станцию. Эти параметры не могут быть изменены, пока система работает.

Адресация и передача сообщений Modbus, упакованных в «конверт» (сетевой и транспортный протокол), реализуются в последнее время на основе протокола TСP/IP (см. гл. 2). Возможно применение протокола Modbus в сетевой среде поверх транспортных протоко-

лов IPX/SPX.

205

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

модифицировать состояния контура (Modify Coil Status);

модифицироватьсостояниярегистра(Modify Register Content);

воздействовать на множество контуров (Force Multiple Coils);

воздействовать на множество регистров (Preset Multiple Registers);

тестирование путем соединения выхода на вход (Loopback Diagnostic Test) – код 08;

программирование (Program) – код 09.

Упрощенная структура кадра сообщения Modbus включает в себя PDU – элементарный пакет протокола Modbus для последовательной линии передачи данных (рис. 4.1), который состоит из четырех элементов.

Рис. 4.1. Пакет Modbus PDU

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

206

В поле адреса всегда указывается только номер ведомого устройства. Если это запрос, то он направляется ведомому устройству с указанным адресом. Если сообщение является ответом, то оно поступаетотведомогоустройстваспроставленнымв этомполеегоадресом.

Следует отметить, что ведущее устройство может перейти к отправке следующего запроса тому же или другому ведомому устройству только по завершении предыдущего цикла «запрос – ответ». Это отличает данный протокол от других, таких как DeviceNet, которые могут отправлять команду, предназначенную сразу нескольким ведомым устройствам, и затем переходить в режим ожидания ответов. При этом никакого определенного порядка очередности ответов не существует. В протокол Modbus возможность широковещательной передачи запросов по нескольким адресам не заложена, поэтому имеет место определенная потеря времени, так как при каждом запросе со стороны ведущего устройства ведомое должно не только получить сам запрос, но также его обработать и на него ответить, и после этого ведущее устройство может перейти к следующему циклу обмена (рис. 4.2).

Рис. 4.2. Структура взаимодействия устройств

207

Запрос всегда содержит тот или иной код функции (например, код 03 – это функция «Чтение регистров хранения»). В этом случае ведущее устройство должно указать диапазон номеров, подлежащих считыванию регистров. Ведомое устройство отвечает на такой запрос сообщением, содержащим запрошенные данные, с учетом указанного в запросе диапазона регистров. Формат сообщения одинаков для всех кодов функций, но содержимое поля данных, естественно, для разных кодов будет различным. В последнем поле каждого сообщения помещается контрольная сумма, формируемая уст- ройством-отправителем, так, что устройство-получатель может проверить целостность пришедшего сообщения.

4.3.КАДРЫ ПЕРЕДАЧИ

4.3.1.Режимы ASCII и RTU

Протокол Modbus имеет два режима передачи: RTU (Remote Terminal Unit – удаленное терминальное устройство) и ASCII (American Standard Code for Information Interchange). Стандарт пре-

дусматривает, что режим RTU в протоколе Modbus должен присутствовать обязательно, а режим ASCII является опционным. Пользователь может выбирать любой из них, но все модули, включенные в сеть Modbus, должны иметь один и тот же режим передачи. Modbus ASCII в России практически не используется.

Термин RTU происходит от SCADA-систем (Supervisor Control and Data Acqusition), в которых ведущее устройство, именуемое CTU (Central Terminal Unit), обменивается информацией с несколькими удаленными устройствами (RTU), находящимися от него на определенных расстояниях. Такая конфигурация подобна первоначальной реализации Modicon, где одно CTU обменивалось информацией с несколькими RTU в системах с топологией «звезда». Применение режимов ASCII и RTU никак не связано с топологией, но для каждого режима определены структура кадров сообщений и их синхрони-

208

зация (рис. 4.3). В процессе передачи по каналам последовательной связи оба режима предусматривают асинхронную передачу, при которой имеется заранее определенная структура кадра и символы пересылаются последовательно (используется старт-стопный метод передачи информации).

Стартовый

1

2

3

4

5

6

7

Бит

Стоповый

 

бит

четности

бит

 

Стартовый

1

2

3

4

5

6

7

Стоповый

Стоповый

 

бит

 

 

 

 

 

 

 

бит

бит

 

Стартовый

1

2

3

4

5

6

7

8

Бит

Стоповый

бит

 

 

 

 

 

 

 

 

четности

бит

Стартовый

1

2

3

4

5

6

7

8

Стоповый

Стоповый

бит

 

 

 

 

 

 

 

 

бит

бит

Рис. 4.3. Структура кадра для 7-битового режимаASCII и 8-битового режима RTU с битом четности или без него

Пользователь выбирает необходимый режим – ASCII или RTU – вместе с другими параметрами (скорость передачи, режим паритета и т.д.) во время конфигурации каждого контроллера.

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

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

В промежутке между стартовым и стоповым битами осуществляется передача 7 (режим ASCII) или 8 (режим RTU) информационных битов, причем первым посылается младший бит (LSB).

Пользователь имеет возможность выбирать один из трех вариантов: контроль на четность, контроль на нечетность либо отсут-

209

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

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

ASCII или RTU.

4.3.2. Структура кадра сообщения в режиме ASCII

Семибитовый двоичный буквенно-цифровой код ASCII был разработан в начале 60-х годов XX века как универсальный код для отображения управляющих символов, символов английского языка и цифр для телетайпов. Любой символ ASCII представляется 7 битами, всего возможно 128 символов. Цифровые десятичные символы тожеотображаютсяв кодеАSCII (от«0» – 0110000 до«9» – 0111001).

Когда на смену электромеханическим телетайпам стали приходить устройства с мониторами на ЭЛТ, стандарт ASCII был сохранен, что облегчило процесс перехода на новую технику. ASCII является принятым в США стандартом для представления десятичных цифр (0–F), символов английского языка и управляющих символов (например, CR – возврат каретки и LF – перевод строки). Наименования этих символов сохранились со времен электромеханических телетайпов. Причиной того, что перед символом LF всегда передается символ CR, была необходимость дать время каретке телетайпа переместиться из конца в начало строки. Команда LF предназначалась для перемещения бумаги по вертикали, но поскольку данная операция занимает меньше времени, чем перемещение каретки, то она посылается в последовательности второй.

Электромеханический телетайп не имел буфера данных, поэтому если вместо последовательности CRLF была передана последовательность LFCR, то печать могла начаться с середины строки, а не с ее левого края, поскольку возможна ситуация, что каретка не

210

Соседние файлы в папке книги