Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Виктор Денисенко
В документации на устройство и на разветвитель должны сеть. Обмен данными всегда инициируется ведущим. Ве
быть указаны наименования подключаемых цепей. домые устройства никогда не начинают передачу данных,
На каждом конце магистрального кабеля должны быть пока не получат запрос от ведущего. Также ведомые уст
установлены резисторы для согласования линии передачи, ройства не могут обмениваться данными друг с другом.
как это требуется для интерфейса RS485. В отличие от Поэтому в любой момент времени в сети Modbus может
RS485 наличие терминальных резисторов в соответствии происходить только один акт обмена.
со стандартом Modbus является обязательным независи Адреса с 1 по 247 являются адресами Modbusустройств в
мо от скорости обмена. Их номинал может быть равным сети, а с 248 по 255 зарезервированы. Ведущее устройство
150 Ом при мощности 0,5 Вт. Терминальные резисторы, не должно иметь адреса, и в сети не должно быть двух уст
а также резисторы, устраняющие неопределённость состо ройств с одинаковыми адресами.
яния линии при высокоомном состоянии передатчиков, Ведущее устройство может посылать запросы всем уст
устанавливаются так же, как и в других сетях на основе фи ройствам одновременно (широковещательный режим) или
зического интерфейса RS485. Стандарт требует, чтобы в только одному. Для широковещательного режима зарезер
руководствах по эксплуатации устройств Modbus было ска вирован адрес 0 (при использовании в команде этого адре
зано, имеются ли указанные резисторы внутри устройства са она принимается всеми устройствами сети).
или их необходимо устанавливать при монтаже сети. Если
требуются внешние резисторы, то они должны иметь но Описание кадра (фрейма) протокола Modbus
минал в интервале от 450 до 650 Ом и быть установлены В протоколе Modbus RTU сообщение начинает воспри
только в одном месте в пределах каждого сегмента сети ниматься как новое после паузы (тишины) на шине дли
(сегментами считаются части сети между повторителями тельностью не менее 3,5 шестнадцатеричных символов
интерфейса). (14 бит), то есть величина паузы в секундах зависит от ско
Modbusустройство обязательно должно поддерживать рости передачи.
скорости обмена 9600 и 19 200 бит/с, из них 19 200 бит/с ус Формат кадра показан на рис. 1. Поле адреса всегда (да
танавливается по умолчанию. Допускаются также скорости же в ответах на команду, посланную ведущим) содержит
1200, 2400, 4800, ... 38 400 бит/с, 65 и 115 кбит/с, ... только адрес ведомого устройства. Благодаря этому веду
Скорость передачи должна выдерживаться в передатчике щее устройство знает, от какого модуля пришёл ответ.
с погрешностью не хуже 1%, а приёмник должен прини
мать данные при отклонении скорости передачи до 2%. ADU
Сегмент сети, не содержащий повторителей интерфейса, Адрес Код функции Данные Контрольная сумма
должен допускать подключение до 32 устройств, однако их 1 байт 1 байт 0…255 байт 2 байт
количество может быть увеличено, если это допустимо ис
PDU
ходя из нагрузочной способности передатчиков и входного
сопротивления приёмников, которые должны быть приве Рис. 1. Формат кадра протокола Modbus RTU:
дены в документации на интерфейсы. Указание этих пара PDU (protocol data unit) – элемент данных протокола;
метров в документации является обязательным требовани ADU (application data unit) – элемент данных приложения
ем стандарта.
Максимальная длина магистрального кабеля при ско Поле «Код функции» говорит модулю о том, какое действие
рости передачи 9600 бит/с и сечении жил более 0,13 мм2 нужно выполнить.
(AWG 26) составляет 1 км. Отводы от магистрального кабе Поле «Данные» может иметь произвольное количество
ля не должны быть длиннее 20 м. При использовании мно байтов в диапазоне от 0 до 255. В нём может содержаться ин
гопортового пассивного разветвителя с N отводами длина формация о параметрах, используемых в запросах контрол
каждого отвода не должна превышать значения 40/N м. лера или ответах модуля.
Modbus не устанавливает конкретных типов разъёмов, но Поле «Контрольная сумма» содержит контрольную сум
если используются разъёмы RJ45, miniDIN или Dshell, му CRC длиной 2 байта.
они должны быть экранированными, а цоколёвки должны
соответствовать стандарту. Структура данных в режиме RTU
Для минимизации ошибок при монтаже рекомендуется В режиме RTU данные передаются младшими разрядами
использовать провода следующих цветов: жёлтый – для вперёд (рис. 2).
положительного вывода RS485 (на котором устанавлива По умолчанию в режиме RTU бит паритета устанавлива
ется логическая 1, когда через интерфейс выводится логи ют равным 1, если количество двоичных единиц в байте не
ческая 1), коричневый – для второго вывода интерфейса чётное, и равным 0, если оно чётное. Такой паритет назы
RS485, серый – для общего провода. вают чётным (even parity), а метод контроля называют
Типовым сечением кабеля является AWG 24 (0,2 мм2, контролем чётности.
диаметр провода 0,51 мм). При использовании кабеля ка При чётном количестве двоичных единиц в байте бит па
тегории 5 его длина не должна превышать 600 м. Волновое ритета может быть равен 1. В этом случае говорят, что па
сопротивление кабеля желательно выбирать более 100 Ом, ритет является нечётным (odd parity).
особенно для скорости обмена более 19 200 бит/с.
Стартовый 1 Бит
бит MЗР 2 3 4 5 6 7 8 паритета Стопбит
К АНАЛЬНЫЙ УРОВЕНЬ
Протокол Modbus предполагает, что только одно веду Рис. 2. Последовательность битов в режиме RTU
щее устройство (контроллер) и до 247 ведомых (модулей (МЗР – младший значащий разряд; при отсутствии бита паритета
вводавывода) могут быть объединены в промышленную на его место записывается второй стоп8бит) 91
СТА 4/2010 www.cta.ru
© СТА-ПРЕСС
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА
Таблица 2
Пример кодов Modbus RTU для модуля RealLab! типа NL816DI
ОБОЗНАЧЕНИЕ HEX8АДРЕС ЧТО ЧИТАЕТСЯ КОД ФУНКЦИИ КОД ФУНКЦИИ
ПРИМЕЧАНИЕ
РЕГИСТРА РЕГИСТРА ИЛИ ЗАПИСЫВАЕТСЯ ЧТЕНИЯ РЕГИСТРА ЗАПИСИ В РЕГИСТР
0001h–00F7h
40513 02h 00h Адрес модуля 03 06 (допустимый диапазон значений)
0003h–000Ah
40514 02h 01h Скорость UART 03 06 (допустимый диапазон значений)
0000h – ASCII,
40518 02h 05h Протокол 03 06 0001h – RTU
оптоволоконные линии, радиоканалы и другие физические формацию, которую ведомое устройство использует, чтобы
среды для передачи сигналов. выполнить функцию, указанную в поле «Код функции».
Прикладной уровень Modbus основан на запросах с по Поле данных может содержать значения состояний диск
мощью кодов функций. Код функции указывает ведомому ретных входов/выходов, адреса регистров, из которых надо
устройству, какую операцию оно должно выполнить. считывать (записывать) данные, количество байтов дан
При использовании протокола прикладного уровня с ных, ссылки на переменные, количество переменных, код
различными протоколами транспортного и канального подфункций и т.п.
уровня сохраняется неизменным основной блок Modbus Если ведомое устройство нормально выполнило приня
сообщения, включающий код функции и данные (этот тую от ведущего функцию, то в ответе поле «Код функции»
блок называется PDU – protocol data unit – элемент дан содержит ту же информацию, что и в запросе. В противном
ных протокола). К блоку PDU могут добавляться дополни случае ведомый выдаёт код ошибки. В случае ошибки код
тельные поля при использовании его в различных про функции в ответе равен коду функции в запросе, увеличен
мышленных сетях, и тогда он называется ADU – ному на 128.
application data unit – элемент данных приложения.
Содержание поля данных
Коды функций В сообщении ведущего устройства ведомому поле дан
Стандартом Modbus предусмотрены три категории кодов ных содержит дополнительную информацию, необходи
функций: установленные стандартом, задаваемые пользо мую для выполнения указанной функции. Например, если
вателем и зарезервированные. код функции указывает, что необходимо считать данные из
Коды функций являются числами в диапазоне от 1 до 127, группы регистров устройства ввода (код функции 03 hex),
причём коды в диапазоне от 65 до 72 и от 100 до 110 отно то поле данных содержит адрес начального регистра и ко
сятся к задаваемым пользователем функциям. Коды в диа личество регистров. Если ведущее устройство посылает
пазоне от 128 до 255 зарезервированы для пересылки кодов команду записи данных в группу регистров (код функции
ошибок в ответном сообщении. Код 0 не используется. 10 hex), то поле данных должно содержать адрес начально
Коды ошибок используются ведомым устройством, что го регистра, количество регистров, количество байтов дан
бы определить, какое действие предпринять для их обра ных и данные для записи в регистр.
ботки. Значения кодов и их смысл описаны в стандарте на Конкретное содержание поля данных устанавливается
Modbus RTU [3]. стандартом для каждой функции отдельно.
Поле данных (рис. 1) в сообщении, посланном от веду В некоторых сообщениях поле данных может иметь ну
щего устройства ведомому, содержит дополнительную ин левую длину.
93
СТА 4/2010 www.cta.ru
© СТА-ПРЕСС
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА
Идентификатор обмена Идентификатор протокола Длина Идентификатор устройства Код функции Данные
2 байт 2 байт 2 байт 1 байт 1 байт (переменной длины)
MBAP DPU
Рис. 3. Часть фрейма Modbus TCP, встраиваемая в поле «Данные» фрейма Ethernet [1]