Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Кадровая синхронизация в режиме ASCII

Лекция №10 Протокол MODBUS

Протокол представляет собой совокупность определенных правил, посредством которых происходит обмен информацией между различными устройствами. Он представляет собой необходимую часть функционирования системы. MODBUS является коммуникационным протоколом, который базируется на «клиент-серверной» архитектуре. Он широко применяется для организации связи в промышленных сетях электронного оборудования. Использует для передачи данных интерфейсы RS-485, RS-422, RS-232, а также сетевой протокол TCP/IP. MODBUS представляет собой протокол прикладного уровня. Его работа основана на базе транзакций, состоящих из запроса и ответа. Данный протокол в сети определяет Главное (Master, MS) и Подчиненное (Slave, SL) устройства, устанавливает и прерывает связь между ними, определяет вид передачи данных и способы обнаружения ошибок. MODBUS управляет циклами запроса и ответа между главным и подчиненным устройствами (рис.1).

ГЛАВНОЕ УСТРОЙСТВО ПОДЧИНЕННОЕ УСТРОЙСТВО

Master Slave

Рис. 1.

Протокол MODBUS подразумевает существование на одной шине одного главного и до 247 подчиненных устройств, хотя некоторые главные устройства ограничивают на шине число подчиненных устройств. Каждому подчиненному устройству присвоен уникальный адрес в диапазоне 1-247. Инициировать транзакцию может только главное устройство. Транзакции бывают либо типа запрос/ответ, либо широковещательные. В первом случае адресуется только одно подчиненное устройство, а во втором случае – адресуются все существующие на шине подчиненные устройства. Согласно типу запроса, транзакция содержит либо один кадр запроса и один кадр ответа, либо один кадр широковещательного запроса. Некоторые характеристики протокола Modbus фиксированы, например: формат кадра, последовательность кадров, обработка ошибок коммуникации и исключительных ситуаций, и выполнение функций. Определение других характеристик осуществляется пользователем. К таким характеристикам относятся тип средства связи, скорость обмена данных, проверка на четность, число стоповых бит, и режим передачи данных (ASCII или RTU). Параметры, выбираемые пользователем, устанавливаются для каждого устройства аппаратно или программно. Эти параметры не могут быть изменены во время работы системы. До передачи происходит помещение сообщений в «Конверт». «Конверт» покидает устройство через «порт» и «пересылается» по линиям адресуемому устройству. Протокол Modbus описывает «конверт» в форме кадров сообщений. Существующая в сообщении информация представляет адрес приемного устройства, выполняемую функцию (что получатель должен сделать), данные, необходимые для выполнения указанной функции и механизмы контроля достоверности. «Конверт» сообщения попадает в приемное устройство через порт. Приемное устройство вскрывает «конверт», читает полученное сообщение и в случае отсутствия ошибок, выполняет требуемые действия. Затем приемное устройство помещает в «конверт» ответное сообщение и посылает его отправляющему устройству. Существующая в ответном сообщении информация содержит адрес приемного устройства, выполненную задачу, данные, полученные в результате выполнения функции и механизмы контроля достоверности. Если сообщение было широковещательным (предназначенным для всех подчиненных устройств), на что указывает адрес 0, то ответное сообщение не передается. Главное устройство посылает следующее сообщение подчиненному устройству либо после приема корректного ответного сообщения, либо после истечения указанного пользователем определенного интервала времени, в течение которого ответное сообщение не было получено. Все сообщения могут рассматриваться как запросы, генерирующие ответные сообщения от подчиненного устройства.

 

Режимы передачи

Режим передачи определяет структуру отдельных блоков информации в сообщении и механизмы счисления, используемые для передачи данных. В системе Modbus существуют два режима передачи: ASCII и RTU (Remote Terminal Unit). Оба режима обеспечивают одинаковую совместимость при связи с подчиненным устройством. Режим выбирается в зависимости от оборудования, используемого как Главное устройство. Для каждой системы Modbus должен использоваться только один режим. Для одной системы недопустимо использовать разные режимы. В Таблице 1 представлены характеристики режимов ASCII и RTU.

 

Таблица 1.

Характеристика ASCII (7-бит) RTU (8-бит)
Система кодирования Используются ASCII символы 0–9, A–Z 8-битовая двоичная система
Стартовые биты    
Биты данных    
Четность Вкл./Выкл. Вкл./Выкл.
Стоповые биты 1 или 2 1 или 2
Контрольная сумма LRC (Longitudina Redundancy Check). CRC (Cyclical Redundancy Check).

 

Символы ASCII более удобны для языков программирования высокого уровня (например C++, C#), а RTU – в случае использования языков программирования низкого уровня (например Assembler). В режиме RTU данные передаются в виде 8-ми разрядных двоичных символов. В режиме ASCII каждый RTU символ сначала делится на две 4-х разрядных части (старший и младший), переводится в свой шестнадцатеричный эквивалент и затем используется в создании сообщения. ASCII режим использует в два раза больше символов, чем RTU режим, но декодирование и управление данными - легче. К тому же, в режиме RTU символы сообщения должны передаваться непрерывным потоком, тогда как в режиме ASCII допустима задержка до 1 секунды между двумя соседними символами.

Обнаружение ошибок

Существует два типа ошибок, которые могут возникать в системах связи: ошибки передачи и программные или аппаратные ошибки. Система Modbus имеет способы определения каждого типа ошибок. Ошибки связи обычно заключаются в изменении бит сообщения. Например, байт 00010100 может измениться на 00010110. Ошибки связи выявляются при помощи символа кадра, контроля по четности и избыточным кодированием. При обнаружении ошибки кадрирования, четности и контрольной суммы, обработка сообщения прекращается. В это время подчиненное устройство не должно генерировать ответное сообщение (тот же результат достигается, если был использован адрес несуществующего подчиненного устройства). Если возникает ошибка связи, данные сообщения ненадежны. Подчиненное устройство не может с уверенностью определить, что переданные данные были адресованы именно ему. Иначе подчиненное устройство может ответить сообщением, которое не является ответом на исходный запрос. Главное устройство должно программироваться так, чтобы в случае не получения ответного сообщения в течение определенного времени, главное устройство должно фиксировать ошибку связи и произвести ретрансляцию сообщения. Выбор промежутка времени зависит от скорости обмена, типа сообщения и времени опроса устройства. Оба режима передачи, RTU и ASCII, могут включать в формат сообщения дополнительный бит четности. В режиме RTU это девятый бит в поле данных (8 бит данных и бит четности). В режиме ASCII это восьмой бит данных (7 бит данных и бит четности). Если контроль четности не используется, бит четности не передается. Все существующие в системе устройства должны быть сконфигурированы одинаково. Для обеспечения качества передачи данных система Modbus обеспечивает несколько уровней обнаружения ошибок. Контроль четности может определить только изменение одного бита в сообщении. Определение множественного изменения битов осуществляется посредством избыточного контроля, CRC и LRC. Выбор избыточного контроля зависит от режима передачи. RTU использует CRC, а ASCII использует LRC. Обнаружение ошибок с помощью CRC и LRC выполняется автоматически. Сообщение (только биты данных, без учета стартовых, стоповых бит и бит четности) рассматривается как одно последовательное двоичное число, у которого старший значащий бит (MSB) передается первым. Алгоритм CRC предусматривает представление сообщения в виде двоичного числа, делении его на другое фиксированное двоичное число и использовании остатка этого деления в качестве контрольной суммы. Получив сообщение, приемник может выполнить аналогичное действие и сравнить полученный остаток с контрольной суммой. Этот алгоритм базируется на полиномиальной арифметике, а это означает, что сообщение, делитель и остаток могут быть представлены в виде полиномов с двоичными коэффициентами или в виде строки битов. Контрольная сумма в режиме ASCII это LRC. Контрольная сумма - это 8-ми разрядное число, передаваемое как два ASCII символа (HEX). Контрольная сумма образуется путем конвертирования всех HEX символов в двоичные числа, сложением этих чисел без учета переноса, и вычислением дополнительного кода полученного числа. Приемное устройство, со своей стороны, осуществляет вычисление LRC и сравнение с полученным LRC. При вычислении LRC все не-ASCII символы отбрасываются. Как было отмечено, протокол описывает правила связи между главным и подчиненным устройствами. Этот протокол разбит по типу коммуникаций, используемых в промышленных сетях. Интерпретация полей в сообщении идентична для режимов передачи ASCII и RTU. Главное отличие заключается в типе проверки контрольной суммы, выполняемой над сообщением. Вместо передачи 8-ми разрядного двоичного символа, посылается эквивалент в виде пары 7-ми разрядных ASCII (0-9,A-F) пар символов.

Кадровая синхронизация в режиме ASCII

В режиме ASCII достигается использованием символа „:“ (двоеточие),. Символ „:“ указывает на начало кадра, а символы CR и LF - на конец кадра. Символ LF также служит как синхронизирующий символ. Он определяет готовность передающего устройства к приему ответного сообщения. На рис. 2 показан формат кадра сообщения в режиме ASCII.

 

Начало кадра Адрес Функция Данные Контрольная сумма EOF Готовность приема ответного сообщения
: 2 символа 16 бит 2 символа 16 бит 2*N символа 2* N бит 2 символа 16 бит CR LF

 

Рис. 2

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...