Конспект лекций Часть 2 Челябинск 2015


Протоколы передачи данных


Download 1.59 Mb.
Pdf ko'rish
bet48/70
Sana31.03.2023
Hajmi1.59 Mb.
#1310719
TuriКонспект
1   ...   44   45   46   47   48   49   50   51   ...   70
Bog'liq
ftd

Протоколы передачи данных 
Протокол передачи данных – набор соглашений логического уровня 
интерфейса, который определяет обмен данных между различными программами. 
Эти соглашения задают единообразный способ передачи сообщений и обработки 
ошибок при взаимодействии программного обеспечения разнесённой в 
пространстве аппаратуры, соединённой тем или иным интерфейсом. 
Стандартизированный протокол передачи данных позволяет разрабатывать 
интерфейсы на физическом уровне, не привязанные к конкретной аппаратной 
платформе и производителю. 
Наибольшее распространение в качестве протокола передачи между 
взаимодействующими устройствами получил протокол Modbus, широко 
применяемый для связи промышленного электронного оборудования. 
Modbus – коммуникационный протокол, основанный на клиент-серверной 
архитектуре. Разработан фирмой Modicon для использования в контроллерах с 
программируемой логикой. Использует для передачи данных последовательные 
линии связи RS-485, RS-422, RS-232 и другие, а также сети TCP/IP. 
Устройства разных производителей, поддерживающие протокол Modbus, 
легко интеграцию в единую сеть автоматизации. На рынке представлен 
практически весь спектр необходимого оборудования от простых модулей ввода-


74 
вывода до частотных преобразователей. Все универсальные SCADA/HMI системы 
поддерживают данный протокол. 
При использовании последовательных линий связи в одной сети может быть 
только одно ведущее устройство (master), которое может опрашивать другие 
подчиненные устройства (slave). Ни одно подчиненное устройство не может 
самостоятельно запросить или передать данные другому устройству. Ведущее 
устройство (master) может запросить данные с каждого подчиненного устройства 
по очереди или инициировать одновременную передачу сообщения на все 
подчиненные устройства. В одной сети может быть до 247 подчиненных 
устройств (slave) (рис. 41). 
Рис. 41. Устройства Modbus в последовательной линии связи
Протокол Modbus предусматривает 
для 
передачи 
данных 
по 
последовательным линиям связи два режима передачи: RTU и ASCII. 
Режим ASCII предназначен для медленных линий связи, где каждый байт 
пакета передается как два ASCII символа. Новый пакет начинается со 
специального служебного символа. При этом между передачей символов одного 
пакета пауза может быть нескольких секунд (в зависимости от настроек) без 
возникновения ошибок при передаче. 
Использование режима RTU позволяет приблизительно в 2 раза увеличить 
количество передаваемых данных по последовательной линии связи. Данные 
пакета передаются по сети в двоичном виде без изменений. В режиме RTU перед 
передачей пакета в линии выдерживается небольшой интервал тишины. Пакет 
передается непрерывным потоком данных. 
Структура сообщения протокола Modbus (рис. 42) содержит код функции, 
данные и дополнительные поля (в зависимости от реализации, некоторые из 
полей могут отсутствовать). 
Рис. 42. Структура сообщения протокола Modbus. 
Допустимые символы для передачи информационной части сообщения в RTU-
режиме – это шестнадцатиричные цифры 0…F, в ASCII-режиме – коды символов 
‘0’…’F’.


75 
В ASCII-режиме, сообщение начинается со старт-символа (чаще всего – 
«двоеточие» (‘:’, ASCII – 3Ah)), и заканчивается парой стоп-символов (обычно 
«возврат каретки», «перевод строки» (CRLF, ASCII – 0Dh 0Ah)).
В RTU режиме сообщение начинается с интервала тишины равного времени 
передачи 3,5 символов при данной скорости передачи. Вслед за последним 
передаваемым символом также следует интервал тишины продолжительностью 
не менее 3,5 символов. Новое сообщение может начинаться после этого 
интервала. Фрейм сообщения передается непрерывно. Если интервал тишины 
продолжительностью более 1,5 символов возник во время передачи фрейма, 
принимающее устройство заканчивает прием сообщения, и следующий байт 
будет воспринят как начало следующего сообщения. Если новое сообщение 
начнется раньше интервала в 3,5 символа, принимающее устройство воспримет 
его как продолжение предыдущего сообщения. В этом случае устанавливается 
ошибка, так как будет несовпадение контрольных сумм. 
Когда принят старт-символ, каждое устройство декодирует следующие поле 
сообщения (поле адреса).
Адресное поле сообщения содержит два ASCII-символа или 8 бит RTU. 
Допустимый адрес передачи находится в диапазоне 0…247. Каждому 
подчиненному устройству присваивается адрес в пределах от 1 до 247. Адрес 0 
используется для широковещательной передачи, его распознает каждое 
устройство.
Поле функции сообщения содержит два ASCII-символа или 8 бит RTU. 
Диапазон числа – 1…127.
Поле данных в сообщении от главного к подчиненному содержит 
дополнительную информацию, которая необходима подчиненному для 
выполнения указанной функции. Оно может содержать адреса регистров или 
выходов, их количество, счетчик передаваемых байтов данных. 
Протокол Modbus может использовать два метода контроля ошибок передачи. 
Содержание поля контрольной суммы зависит от выбранного способа передачи. В 
ASCII-режиме поле контрольной суммы содержит два ASCII-символа. 
Контрольная сумма является результатом вычисления Longitudinal Redundancy 
Check (LRC) сделанного над содержанием сообщения.
Метод LRC проверяет содержание сообщения и представляет собой 1 байт, 
который вычисляется передающим устройством и добавляется в конец 
сообщения. Вычисление LRC осуществляется по формуле: 
1
)
FFh
(
LRC
1
+

=

=
n
i
i
byte

где n – количество байт в сообщении, исключая старт-символ и стоп-символы. 
В ASCII-режиме 
результат 
вычисления LRC кодируется 
двумя 
соответствующими ASCII-символами. 
Принимающее устройство вычисляет LRC в процессе приема сообщения и 
сравнивает его с принятым. Если есть несовпадение, то имеет место ошибка 
приема сообщения. 


76 
В RTU-режиме поле контрольной суммы содержит 16-ти битовую величину, 
которая является результатом вычисления Cyclical Redundancy Check (CRC), 
сделанного над содержанием сообщения. Генерация CRC осуществляется по 
следующему алгоритму. 
Шаг 1. Загрузить 16-битную константу FFFFh в регистр CRC. 
Шаг 2. Исключающее ИЛИ первого байта сообщения с младшим байтом 
регистра CRC с сохранением результата в регистр CRC. 
Шаг 3. Сдвиг регистра CRC на 1 бит вправо с заполнением старшего бита 
нулем. 
Шаг 4. Проверка младшего бита регистра CRC. Если этот бит равен 0, 
повторяем шаг 3 (следующий сдвиг). Если младший бит равен 1, производим 
операцию 
исключающее-ИЛИ 
регистра CRC и 
константы A001h 
(1010 0000 0000 0001). 
Шаг 5. Повторяем шаги 3 и 4 до 8 сдвигов. 
Шаг 6. Повторяем шаги 2…5 для всех следующих байтов сообщения. 
Шаг 7. Помещаем результат вычисления CRC в конец сообщения младшим 
байтом вперед. 
Во время обмена данными могут возникать ошибки двух типов: 
• ошибки, связанные с искажениями при передаче данных; 
• логические ошибки. 
Ошибки первого типа обнаруживаются при помощи фреймов символов, 
контроля чётности и контрольной суммы.
Для сообщений об ошибках второго типа протокол Modbus предусматривает, 
что устройства могут отсылать ответы, свидетельствующие об ошибочной 
ситуации. Когда подчиненный отвечает главному, он использует поле кода 
функции для фиксации ошибки. В случае нормального ответа подчиненный 
повторяет оригинальный код функции. Если имеет место ошибка, возвращается 
код функции с установленным в 1 старшим битом. 
Например, сообщение от главного подчиненному имеет код функции: 
0000 0011 
(03h). 
Если подчиненный выполнил затребованное действие без ошибки, он 
возвращает такой же код. Если имеет место ошибка, то он возвращает: 
1000 0011 
(83h). 
Такое сообщение является ответом ведомого в случае, если ведомый 
правильно принимает запрос, но не может его обработать (например, в поле 
данных сообщения содержится адрес несуществующего регистра). При этом ответ 
ведомого может содержать данные об ошибке. 
Если ведомый не принимает какого-либо значения или обнаруживает ошибку 
контрольной суммы, никакого ответа не отправляется. Ведущий диагностирует 
ошибку по тайм-ауту (времени ожидания ответа), после чего может повторить 
запрос. 


77 

Download 1.59 Mb.

Do'stlaringiz bilan baham:
1   ...   44   45   46   47   48   49   50   51   ...   70




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling