СТА 2009-2

ОБ ЗОР / П РОМЫШЛ Е ННЫЕ С Е Т И 54 маркерном (marking) состоянии линии связи. Противоположное ему состояние именуется заполненным (spacing). Когда линия переходит в заполненное состоя ние для побитовой передачи данных, каждому символу предшествует старто вый бит, а в конце идёт один стоповый бит или больше, после этого линия возвращается в маркерное состояние. В промежутке между стартовым и стоповым битами осуществляется пе редача 7 (режим ASCII) или 8 (режим RTU) битов, составляющих символ, причём первым посылается младший бит (LSB). После символа идёт либо бит чётности, либо еще один стоповый бит. При этом пользователь имеет воз можность выбирать один из трёх вари антов: контроль на чётность, или на нечётность, либо отсутствие контроля. В режиме ASCII передача одного сим вола требует передачи 10 битов, а в ре жиме RTU — 11. При асинхронной связи символы могут пересылаться ли бо вплотную, либо с временным интер валом между ними. Последовательнос ти символов, образующих сообщения, имеют различные структуры в зависи мости от режима — ASCII или RTU. С ТРУКТУРА КАДРА СООБЩЕНИЯ В РЕЖИМЕ ASCII Семибитовый код ASCII был разра ботан в начале 60 х годов прошлого ве ка как универсальный код для отобра жения символов английского языка для телетайпов, таких как, например, Teletype Model ASR 33. Когда на смену электромеханическим телетайпам ста ли приходить устройства с мониторами на ЭЛТ, стандарт ASCII был сохранён, что облегчило процесс перехода на но вую технику. ASCII является принятым в США стандартом для представления символов английского языка и управ ляющих символов, например, CR ( возврат каретки) и LF (перевод стро ки). Наименования этих символов сох ранились со времён электромеханичес ких телетайпов. Причиной того, что перед символом LF всегда передаётся символ CR, была необходимость дать время каретке телетайпа переместить ся из конца в начало строки. Команда LF предназначалась для перемещения бумаги по вертикали, но поскольку данная операция занимает меньше времени, чем перемещение каретки, то она посылается в последовательности второй. Электромеханический телетайп не имел буфера данных, поэтому если вместо последовательности CRLF бы ла передана последовательность LFCR, то печать могла начаться с середины строки, а не с её левого края, посколь ку возможна ситуация, что каретка не успела вернуться в начало строки до момента получения очередного подле жащего печати символа. Последова тельность команд CRLF была очень важной, когда речь шла о телетайпах, работавших на скорости 10 симво лов/с, но когда на смену им пришли ЭЛТ терминалы, ситуация измени лась. Для протокола Modbus в режиме ASCII последовательность CRLF сей час просто указывает на конец кадра. Преимуществом данного режима явля ется то, что если в качестве ведомого устройства включить ЭЛТ терминал, то можно увидеть на экране понятный человеку отлично отформатированный код, который послан ведущим устрой ством на экран ЭЛТ терминала. На рис. 3 показана структура сообще ния Modbus в режиме ASCII. Его нача ло обозначается символом «:», а ко нец — последовательностью CRLF (два символа ASCII). Любой символ ASCII представляется 7 битами. Все осталь ные символы во всех остальных полях фрейма должны быть либо цифрами от 0 до 9, либо буквами от A до F, так как предполагается, что данные представ ляются в шестнадцатеричном формате, но отображаются в виде символов ASCII. Например, код функции 03 бу дет отображаться двумя ASCII симво лами — «0» и «3». То же самое относит ся и к содержимому поля данных. Од ним из преимуществ режима ASCII яв ляется то, что он не предъявляет особо жёстких требований к синхронизации. Допускается временной промежуток между символами до 1 с — только по истечении его генерируется сообщение о превышении лимита времени. Так что квалифицированная машинистка мо жет имитировать работу ведущего уст ройства, печатая на экране ЭЛТ терми нала строку символов, передаваемую ведомому устройству, и наблюдая на эк ране ответное сообщение последнего. С ТРУКТУРА КАДРА СООБЩЕНИЯ В РЕЖИМЕ RTU При работе в режиме RTU синхро низация имеет более важное значение, чем в режиме ASCII. В этом варианте специальный начальный символ отсут ствует. Вместо этого кадр сообщения начинается с маркерного интервала, длительность которого равна времени передачи четырёх символов. После ис течения этого интервала передаётся ад рес устройства, затем код функции и собственно данные. Имеются и другие отличия от кадра сообщения в режиме ASCII, как это показано на рис. 4. Вместо контрольной суммы LRC (Lon gitudinal Redundancy Check — продоль ный контроль по избыточности) в ре жиме RTU используется контрольная сумма CRC (Cyclic Redundancy Check — циклический контроль по из быточности). Конец кадра отмечается маркерным интервалом, равным вре мени передачи четырёх символов. RTU сообщения должны посылать ся в виде непрерывного потока, и по явление значительного временного « зазора» между смежными символами рассматривается как прерывание в пе редаче сообщения. В отличие от режи ма ASCII сообщения в режиме RTU не поддаются считыванию человеком. Однако сообщения в этом режиме весьма компактны и более эффективны с точки зрения их передачи. Поэтому ре жим RTU является более популярным. Т АБЛИЦА РАСПРЕДЕЛЕНИЯ РЕГИСТРОВ M ODBUS Прежде чем перейти к рассмотрению кодов функций, необходимо описать таблицу распределения регистров Modbus, показанную на рис. 5, СТА 2/2009 www.cta.ru Начало Адрес устройства Код функции Данные Контрольная сумма (LRC) Конец 1 символ (:) 2 символа 2 символа n символов 2 символа 2 символа ( CRLF) Рис. 3. Структура кадра сообщения Modbus ASCII Рис. 4. Структура кадра сообщения Modbus RTU Начало Адрес устройства Код функции Данные Контрольная сумма CRC Конец Интервал, равный времени передачи 4 символов 8 бит 8 бит n × 8 бит 16 бит Интервал, равный времени передачи 4 символов © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy