Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорные системы управления электроприводами и технологическими комплексами. Учебное пособие
.pdf
Согласно формуле (4.13б) код на выходе интегратора вычисляется
N
N
N
исходя из рекуррентного соотношения
[] [ 1] []
nNn kNn
ии и
, (4.14)
e
a код на выходе рекурсивного фильтра представляет собой
[] [] ... [ ]
NnВNn В Nn k
РФ 0
([1]... [])
AN n A N n k
1 РФ РФ
eke
, (4.15a)
k
или в виде
NNN
и 12С
, (4.15б)
где
NBNn
Ce
BN n B N n j
11 4
NANn А Nn j
21РФ 4
[1]... [ ],
ej
[ 1] ... [ ].
[],
0
(4.15б)
j
91

5. ОБМЕН ЦИФРОВОЙ ИНФОРМАЦИЕЙ
Обмен цифровой информацией играет важную роль в автоматизированных системах. Порядка 75 % задач в области автоматизации процессов и производств [15] имеют подзадачу организации обмена информацией.
Передача данных (обмен данными, цифровая передача, цифровая
связь) – физический перенос данных (цифрового битового потока) в
виде сигналов от точки к точке или от точки к нескольким точкам
средствами электросвязи по каналу передачи данных, как правило, для
последующей обработки средствами вычислительной техники. Примерами подобных каналов могут служить медные провода, волоконнооптические линии
запоминающее устройство.
Передача данных может быть аналоговой или цифровой (т.е. поток
двоичных сигналов), а также модулированной посредством аналоговой
модуляции либо посредством цифрового кодирования.
Хотя аналоговая связь является передачей постоянно меняющегося
цифрового сигнала, цифровая связь является непрерывной передачей сообщений. Сообщения представляют собой либо последовательность
пульсов, означающую линейный код (в полосе пропускания), либо ограничивается набором непрерывно меняющейся формы волны, используя
метод цифровой модуляции. Такой способ модуляции и соответствующая
ему демодуляция осуществляются модемным оборудованием.
Передаваемые данные могут быть цифровыми сообщениями, идущими из источника данных, например, из компьютера или от клавиатуры. Это может
видеосигнал, оцифрованный в битовый поток, использующий импульсно-кодирующую модуляцию (PCM) или более расширенные схемы
кодирования источника (аналого-цифровое преобразование и сжатие
данных). Кодирование источника и декодирование осуществляется
кодеком или кодирующим оборудованием.
связи, беспроводные каналы передачи данных или
им-
быть и аналоговый сигнал – телефонный звонок или
92

Последовательная и параллельная передача. В телекоммуника-
ции последовательная передача – это последовательность передачи
элементов сигнала, представляющих символ или другой объект данных. Цифровая последовательная передача – это последовательная отправка битов по одному проводу, частоте или оптическому пути. Так
как это требует большего времени передачи сигнала, чем при параллельной передаче, то скорость передачи данных по каждому
отдельному пути может быть меньше. Этот механизм может использоваться на
более дальних расстояниях.
Параллельной передачей в телекоммуникациях называется одновременная передача элементов сигнала одного символа или другого объекта данных. В цифровой связи параллельной передачей называется одновременная передача соответствующих элементов сигнала по двум или
большему числу путей. Используя
множество электрических проводов,
можно передавать несколько бит одновременно, что позволяет достичь
более высоких скоростей передачи, чем при последовательной передаче.
Этот метод применяется внутри компьютера, например, во внутренних
шинах данных, а иногда и во внешних устройствах, таких как принтеры.
Основной проблемой при этом является «перекос», потому что провода
при параллельной передаче имеют
немного разные свойства, поэтому
некоторые биты могут прибыть раньше других, что может повредить
сообщение. Бит чётности может способствовать сокращению ошибок.
Тем не менее электрический провод при параллельной передаче данных
менее надёжен на больших расстояниях, поскольку передача нарушается с гораздо более высокой вероятностью.
Modbus – открытый коммуникационный протокол, основанный на
архитектуре ведущий-ведомый (master-slave). Широко применяется в
промышленности для организации связи между электронными устройствами. Может использоваться для передачи данных через последовательные линии связи RS-485, RS-422, RS-232, а также сети TCP/IP
(Modbus TCP).
Не следует путать MODBUS и MODBUS Plus. В отличие от
«MODBUS» «MODBUS Plus» –
протокол, принадлежащий Schneider
Electric. Физический уровень уникальный, похож на Ethernet 10BASE-T,
полудуплекс по одной витой паре, скорость 1 Мбит/с. Транспортный
протокол – HDLC, поверх которого специфицировано расширение для
передачи MODBUS PDU.
PDU (Protocol Data Unit) – общая для всех физических уровней
часть пакета MODBUS. Включает в себя код функции и данные пакета.
93

ADU (Application Data Unit) – полный пакет MODBUS. Включает
в себя специфичную для физического уровня часть пакета и PDU.
MODBUS специфицирует четыре типа данных:
Discrete Inputs – однобитовый тип, доступен только для чтения.
Coils – однобитовый тип, доступен для чтения и записи.
Input Registers – 16-битовый знаковый или беззнаковый тип, до-
ступен только для чтения.
Holding Registers – 16-битовый знаковый или беззнаковый тип,
доступен для чтения и записи.
Состав стандарта
Стандарты MODBUS состоят из трех частей:
1) документ
Modbus Application Protocol содержит спецификацию
прикладного уровня сетевой модели OSI:
◦
элементарный пакет протокола, так называемый PDU
(Protocol Data Unit), он един для всех физических уровней.
PDU упаковывается в индивидуальный для каждого транспор-
та application data unit (
◦
коды функций и состав PDU для каждого кода;
2) документ
Modbus over serial line содержит спецификацию ка-
ADU);
нального и физического уровней сетевой модели OSI для физических
уровней RS-485 и RS-232. В принципе может использоваться любой
физический уровень, основанный на асинхронном приемопередатчике;
3) документ
MODBUS Messaging on TCP/IP Implementation Guide
содержит спецификацию ADU для транспорта через TCP/IP-стек.
Достоинства стандарта. Основные достоинства стандарта – от-
крытость и массовость. Промышленностью сейчас (2014 г.) выпускается очень много типов и моделей датчиков, исполнительных устройств,
модулей обработки и нормализации сигналов и др. Практически все
промышленные системы контроля и управления имеют программные
драйверы для работы с MODBUS-сетями.
Недостатки стандарта. Стандарт в своей основе был разработан в
1979 г. компанией Modicon (в данное время владелец Schneider
Electric) с учётом потребностей и вычислительных возможностей того
времени и многие актуальные для современных промышленных сетей
вопросы не были учтены.
Стандарт специфицирует метод передачи только двух типов
данных. Отсутствие чёткого указания в стандарте привело к тому, что
с другими типами данных сторонние производители MODBUS-решений поступали по своему усмотрению. Различие мнений производите-
94

лей оборудования в этом вопросе не позволило впоследствии сделать
уточнения в официальном документе: это вызвало бы всплеск недовольства производителей, не согласных с предлагавшимися поправками стандарта, и возможную войну форматов.
Стандарт не регламентирует начальную инициализацию систе-
мы. Назначение сетевых адресов и прописывание в системе параметров каждого конкретного устройства выполняются вручную на этапе
адаптации и программирования системы.
Необходимо отметить, что отсутствие перечисленных возможно-
стей упрощает протокол и делает его более простым для изучения.
Контроллеры на шине Modbus взаимодействуют, используя master-
модель, основанную на транзакциях, состоящих из запроса и
slave
ответа.
Обычно в сети есть только одно ведущее, так называемое «главное» (англ. master) устройство, и несколько ведомых – «подчинённых»
(англ. slaves) устройств. Главное устройство (мастер) инициирует
транзакции (передаёт запросы). Мастер может адресовать запрос индивидуально любому подчиненному или инициировать передачу широковещательного
сообщения для всех подчиненных устройств. Подчинённое устройство, опознав свой адрес, отвечает на запрос, адресованный именно ему. При получении широковещательного запроса ответ подчинёнными устройствами не формируется.
Спецификация Modbus описывает структуру запросов и ответов.
Их основа – элементарный пакет протокола, так называемый PDU
(Protocol Data Unit). Структура PDU не зависит от типа
линии связи и
включает в себя код функции и поле данных. Код функции кодируется
однобайтовым полем и может принимать значения в диапазоне 1…127.
Диапазон значений 128…255 зарезервирован для кодов ошибок. Поле
данных может быть переменной длины. Размер пакета PDU ограничен
253 байтами.
Для передачи пакета по физическим линиям связи PDU помещает-
другой пакет, содержащий дополнительные поля. Этот пакет но-
ся в
сит название ADU (Application Data Unit). Формат ADU зависит от типа
линии связи. Существует три варианта ADU – два для передачи данных
через асинхронный интерфейс и один – через TCP/IP сети:
Modbus ASCII – для обмена используются только ASCII символы.
Для проверки целостности используется однобайтовая контрольная
сумма. Начало и конец сообщения помечаются специальными символами (начало сообщения ":", конец сообщения CR/LF).
95

Modbus RTU – компактный двоичный вариант. Сообщения раз-
деляются по паузе в линии. Сообщение должно начинаться и заканчиваться интервалом тишины, длительностью не менее 3,5 символов
при данной скорости передачи. Во время передачи сообщения не
должно быть пауз длительностью более 1,5 символов. Для скоростей
более 19 200 бод допускается использовать интервалы 1,75 и 0,75 мс
соответственно. Проверка целостности осуществляется
с помощью
CRC.
Modbus TCP – для передачи данных через TCP/IP соединение.
Общая структура ADU следующая (в зависимости от реализации,
некоторые из полей могут отсутствовать):
Адрес ведомого
(подчинённого)
устройства
Код
функции
Данные
Блок обнаружения
ошибок
где
адрес ведомого устройства – адрес подчинённого устройства, к
которому адресован запрос. Ведомые устройства отвечают только на
запросы, поступившие в их адрес. Ответ также начинается с адреса
отвечающего ведомого устройства, который может изменяться от 1 до
247. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство, адреса в диапазоне 248…255 – зарезервированы;
код функции – это следующее однобайтное поле кадра. Оно го-
ворит ведомому устройству, какие данные или выполнение какого
действия требует от него ведущее устройство;
данные – поле содержит информацию, необходимую ведомому
устройству для выполнения заданной мастером функции или содержит
данные, передаваемые ведомым устройством в ответ на запрос ведущего. Длина и формат поля зависят от номера функции, также в поле
данных может быть детализация кода функции;
блок обнаружения ошибок – контрольная сумма для проверки
отсутствия ошибок в кадре.
Максимальный размер ADU для последовательных сетей
RS232/RS485 – 256 байт, для сетей TCP – 260 байт.
96

Для Modbus TCP ADU выглядит следующим образом:
ID
транзакции
ID
протокола
Длина
пакета
Адрес
ведомого
устройства
Код
функции
Данные
где
ID транзакции – два байта, обычно нули;
ID протокола – два байта, нули;
длина пакета – два байта, старший затем младший, длина сле-
дующей за этим полем части пакета;
адрес ведомого устройства – адрес подчинённого устройства, к
которому адресован запрос. Обычно игнорируется, если соединение
уже установлено с конкретным устройством или в системе только одно
устройство. Может использоваться, если соединение установлено с
мостом, который связан физически, например, с сетью RS-485.
Следует обратить внимание на то, что поле контроля ошибок в
Modbus TCP отсутствует, так как
целостность данных обеспечивает
TCP/IP стек.
Модель данных
Одно из типичных применений протокола – чтение и запись данных в регистры контроллеров. Спецификация протокола определяет
четыре типа данных (табл. 5.1).
Таблица 5.1
Описание переменных протокола Modbus
Наименование Тип элемента Тип доступа
Дискретные входы (Discrete inputs) Один бит Только чтение
Регистры флагов (coils) Один бит Чтение и запись
Регистры ввода (Input Registers) 16-битное слово Только чтение
Регистры хранения (Holding Regis-
ters)
16-битное слово Чтение и запись
97

Доступ к элементам в каждой таблице осуществляется с помощью
16-битного адреса, первой ячейке соответствует адрес 0. Таким обра-
зом, каждая таблица может содержать до 65 536 элементов. Спецификация не определяет, что физически должны представлять собой элементы таблиц и по каким внутренним адресам устройства они должны
быть доступны. Например, допустимо организовать перекрывающиеся
таблицы. В этом случае команды, работающие с дискретными данными и с 16-битными регистрами, будут фактически обращаться к одним
и тем же данным.
Следует отметить, что со способом адресации данных связана
определённая путаница. Modbus был первоначально разработан для
контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация
. Например, первому регистру
ввода соответствовал номер ячейки 30 001, а первому регистру хранения – 40 001. Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40 108 контроллера. Хотя такое соответствие адресов больше не является частью стандарта, некоторые программные пакеты могут автоматически «корректировать»
вводимые пользователем адреса, например, вычитая 40 001 из адреса
регистра хранения.
Стандартные функции протокола Modbus
Стандартными функциями протокола Modbus являются: доступ к
данным – чтение и запись данных.
Чтение данных
Для чтения значений согласно табл. 5.1 используются функции с
кодами 1–4 (шестнадцатеричные значения 0x01–0x04):
1 (0x01) – чтение значений из нескольких регистров флагов
(Read Coil Status);
2 (0x02) – чтение значений из нескольких дискретных входов
(Read Discrete Inputs);
3 (0x03) – чтение значений из нескольких регистров хранения
(Read Holding Registers);
4 (0x04) – чтение значений из нескольких регистров ввода (Read
Input Registers).
Запрос состоит из адреса первого элемента таблицы, значение которого требуется прочитать, и количества считываемых элементов.
Адрес и количество данных задаются 16-битными числами, старший
байт каждого из них передается первым.
98

В ответе передаются запрошенные данные. Количество байт данных зависит от количества запрошенных элементов. Перед данными
передается один байт, значение которого равно количеству байт
данных.
Значения регистров хранения и регистров ввода передаются начиная с указанного адреса, по два байта на регистр, старший байт каждого регистра передаётся первым (табл. 5.2).
Таблица 5.2
Структура передачи данных
Байт 1 Байт 2 Байт 3 Байт 4 … Байт N-1 Байт N
R
A,1
R
A,0
R
A+1,1
R
… R
A+1,0
A+Q-1,1
R
A+Q-1,0
Значения флагов и дискретных входов передаются в упакованном
виде: по одному биту на флаг. Единица означает включённое состояние, ноль – выключенное. Значения запрошенных флагов заполняют
сначала первый байт, начиная с младшего бита, затем следующие байты, также от младшего бита к старшим. Младший бит первого байта
данных содержит значение флага,
указанного в поле «адрес». Если запрошено количество флагов, не кратное восьми, то значения лишних
битов заполняются нулями (табл. 5.3).
Таблица 5.3
Схема передачи данных
Байт 1 Байт N
F
A+7 FA+6
F
F
A+5
A+4FA+3FA+2FA+1FA
…0…0 F
A+Q-1FA+Q-2
…
Обработка ошибок
Во время обмена данными могут возникать ошибки двух типов:
ошибки, связанные с искажениями при передаче данных;
логические ошибки (запрос принят без искажений, но не может
быть выполнен).
При передаче по асинхронным линиям связи ошибки первого типа
обнаруживаются при помощи проверки соответствия принятого запро-
99

са установленному формату ADU и вычисления контрольной суммы.
Дополнительно для проверки каждого символа может использоваться
бит четности. Если подчинённое устройство обнаруживает искажение
данных, принятый запрос игнорируется, ответное сообщение не формируется. Главное устройство может обнаружить ошибку по истечении времени, отведённого на ответ.
В Modbus TCP дополнительная проверка целостности данных не
предусмотрена
. Передача данных без искажений обеспечивается про-
токолами TCP/IP.
При ошибках второго типа подчинённое устройство отсылает сообщение об ошибке (если запрос адресован этому устройству; на широковещательные запросы ответ не отправляется). Признаком того, что
ответ содержит сообщение об ошибке, является установленный старший бит номера функции. За номером функции вместо
обычных данных следует код ошибки и при необходимости дополнительные данные об ошибке.
Стандартные коды ошибок
01 – Принятый код функции не может быть обработан.
02 – Адрес данных, указанный в запросе, недоступен.
03 – Величина, содержащаяся в поле данных запроса, является
недопустимой величиной.
04 – Невосстанавливаемая ошибка имела место, пока подчинён-
ный пытался выполнить затребованное действие.
05 – Подчинённый принял запрос и обрабатывает его, но это
требует много времени. Этот ответ предохраняет от генерации ошибки
тайм-аута.
06 – Подчинённый занят обработкой команды. Устройство, ини-
циализирующее обмен информацией, должно повторить сообщение
позже, когда подчинённый освободится.
07 – Подчинённый не может выполнить программную функцию,
принятую в запросе. Этот код возвращается для неудачного программного запроса, использующего функции с номерами 13 или 14. Главный должен запросить диагностическую информацию или информацию об ошибках от подчинённого.
08 – Подчинённый пытается читать расширенную память, но об-
наружил ошибку паритета. Главный может повторить запрос, но обычно в таких случаях требуется ремонт.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
