
- •Технические средства автоматизации
- •I. Типовые технические средства автоматизации асу тп
- •1.1. Требования к техническому обеспечению асу
- •1.1.2. Исполнения технических средств автоматизации по степени защите от внешних воздействий
- •1.2. Классификация средств автоматизации
- •Исполнительные механизмы;
- •1.3. Этапы развития средств автоматизации
- •1.3.1. Режимы работы двухуровневой системы автоматизации
- •1.4. Классификация технических средств автоматизации по элементной базе
- •2. Особенности систем управления технологическими процессами
- •2.1. Основные принципы построения локальных систем автоматического регулирования
- •2.2. Основные структуры систем автоматизации
- •2.3. Автоматизированные системы управления технологическими процессами
- •2.4. Типовые структуры систем управления
- •3. Электромеханические средства автоматизации
- •3.1. Классификация электрических аппаратов
- •3.1.1. Классификация электрических аппаратов по функциональному признаку
- •3.1.2. Классификация электрических аппаратов по устройству коммутирующего органа
- •3.1.3. Классификация электрических аппаратов по номинальному напряжению
- •3.1.4. Классификация электрических аппаратов низкого напряжения
- •3.2. Общие технические характеристики электрических аппаратов
- •3.3. Физические процессы в электрических аппаратах
- •3.3.1. Нагрев токоведущих частей электрического аппарата
- •3.3.2 Режимы работы электрических аппаратов
- •3.3.3. Эффекты в проводнике вызываемые переменным током
- •3.4. Отключение электрической цепи
- •3.4.1. Общий вид уравнений отключения электрической цепи
- •3.4.2. Процесс отключения постоянного тока
- •3.4.3. Процесс отключения переменного тока.
- •3.5. Электромагниты
- •3.5.1. Основные положения теории магнитных цепей
- •3.5.2. Тяговые силы в электромагнитах
- •3.5.3. Особенности электромагнитов переменного тока
- •3.5.4. Изменение скорости срабатывания электромагнитов постоянного тока
- •3.6. Электромеханические реле автоматики
- •3.6.1. Классификация реле по выполняемой функции
- •3.6.2. Классификация реле по техническим параметрам
- •3.6.3. Электромагнитные реле.
- •3.6.4. Герметичный магнитоуправляемый контакт
- •3.6.5. Поляризованные реле
- •3.6.6. Реле времени с электромагнитным замедлением
- •3.6.7. Тепловые реле
- •3.6.8. Бесконтактное промежуточное реле
- •3.6.9. Твердотельное реле
- •3.6.10. Схемы гашения искры на контактах реле
- •3.7. Аппараты управления
- •3.7.1. Дугогасительные устройства аппаратов управления
- •3.7.2. Контакторы и пускатели
- •3.7.2. Автоматический воздушный выключатель
- •3.7.2.1 Примеры автоматических выключателей
- •3.7.3. Устройство защитного отключения
- •3.7.3.1 Классификация типов узо по условиям функционирования
- •3.7.3.2 Классификация узо по способу технической реализации
- •3.7.6. Командоаппараты и неавтоматические выключатели
- •3.8. Бесконтактные аппараты
- •3.8.1. Особенности бесконтактных аппаратов
- •3.8.2 Выключатели тиристорные
- •4. Исполнительные устройства
- •4.1. Общие характеристики исполнительных устройств
- •4.2. Регулирующие органы
- •4.2.1. Технические характеристики дроссельных регулирующих органов
- •4.2.2. Требования к регулирующим органам
- •4.2.3. Краткая характеристика дроссельных регулирующих органов
- •4.2.3.1. Шиберы
- •4.2.3.2. Поворотные заслонки
- •4.2.3.3. Регулирующие клапаны
- •4.2.3.4. Диафрагмовые и шланговые регулирующие органы
- •4.2.3.5 Краны
- •4.3. Исполнительные механизмы
- •4.3.1. Механизм исполнительный электрический однооборотный
- •4.3.2. Механизм исполнительный электрический многооборотный мэм
- •4.3.3. Механизмы исполнительные электрические прямоходные мэп
- •4.4. Блоки управления электродвигателем реверсивные
- •4.4.1. Обмен информацией по каналу полевой сети
- •5. Промышленные сети
- •3. Промышленные сети
- •3.1. Структура промышленных сетей
- •3.1.1. Топология промышленных сетей
- •3.2. Аппаратные интерфейсы пк
- •3.2.1. Стандарт rs-232c
- •3.2.2. Последовательная шина usb
- •3.3. Универсальный асинхронный приемопередатчик
- •3.4. Физические интерфейсы
- •3.4.1. Интерфейс rs-485
- •3.4.1.1. Автоматический преобразователь интерфейсов usb/rs-485 овен ас4
- •3.4.2. Интерфейс «Токовая петля»
- •3.4.2.1. Адаптер интерфейса овен ас 2
- •3.5. Протоколы промышленных сетей
- •3.5.1. Протокол modbus
- •3.5.2. Hart-протокол
- •3.5.4. Сеть profibus
- •3.5.5. Описание шины can
- •2.8.1.1. Организация сети can
- •2.8.1.2. Физический уровень канала can.
- •2.8.1.3. Арбитраж шины can.
- •2.8.1.4. Структура формата передачи данных.
- •2.8.1.1. Форматы кадра
- •Механизм обработки ошибок.
- •Адресация и протоколы высокого уровня
- •5.8. Универсальная сеть Foundation Fieldbus
- •5.9. Физическая среда передачи данных
- •6. Языки программирования логических контроллеров
- •3. Языки программирования логических контроллеров
- •3.1 Объекты адресации языков программирования плк
- •3.2 Язык Ladder Diagram (ld)
- •3.3 Язык Functional Block Diagrams (fbd)
- •3.4 Язык Instruction List (il)
- •3.5. Язык структурированного текста
- •3.5.1. Применение управляющих структур Условное действие if...End_if
- •Условное итеративное действие while...End_while
- •Условное итеративное действие repeat...End_repeat
- •Повторяющееся действие for...End_for
- •Выход из цикла посредством инструкции exit
- •3.6. Язык последовательных функциональных схем
- •5.4. Пример
- •7. Микропроцессорные реле автоматики
- •5. Мини-контроллеры
- •5.1. Мини-контроллеры серии Alpha
- •5.2. Миниатюрные программируемые устройства Easy
- •5.2.1. Управляющее реле Easy 500
- •5.2.2. Управляющее реле Easy 700
- •5.2.3. Управляющее реле Easy 800
- •5.2.4. Модули расширения Easy
- •5.2.5. Средства коммуникации устройств Easy
- •5.3. Интеллектуальные реле Zelio Logic
- •5.3.1. Компактные и модульные интеллектуальные реле
- •5.3.2. Общие технические характеристики реле Zelio Logic
- •5.3.3. Преобразователи Zelio Analog
- •5.3.4. Средства коммуникации интеллектуальных реле Zelio Logic
- •5.3.4.1. Коммуникационный модемный интерфейс
- •5.3.4.2. Протокол связи Modbus slave
- •5.3.4.3. Протокол связи Ethernet server
- •5.3.5. Программное обеспечение интеллектуального реле
- •5.4. Универсальный логический модуль Logo!
- •5.4.1. Типы базовых модулей logo! Basic
- •5.4.2. Модули расширения ввода/вывода сигналов Logo!
- •5.4.3. Коммуникационные модули logo!
- •5.4.4.1.3. Цифровые выходы
- •5.4.4.1.4. Аналоговые выходы
- •5.4.4.1.5. Блоки флагов
- •5.4.4.1.6. Биты регистра сдвига
- •5.4.4.1.7. Клавиши управления курсором
- •5.4.4.1.8. Постоянные уровни
- •5.4.4.2. Группа базовых функций
- •5.4.4.3. Специальные функции
- •5.4.4.3.1. Список специальных функций
- •5.4.4.3.2. Примеры специальных функций
- •5.4.5. Объем памяти и размер коммутационной программы
- •8 Программируемые логические контроллеры
- •6.1. Программируемые контроллеры simatic s7-22x
- •6.1.1. М одули расширения вводов-выводов
- •6.1.2. К оммуникационные модули
- •6.1.3. Ч еловеко-машинный интерфейс
- •6.2. Программируемый логический контроллер simatic s7-224xp
- •6.2.1. Основы функционирования плк
- •6.2.1.1. Порядок чтения входов
- •6.2.1.2. Исполнение программы
- •6.2.1.3. Запись значений в выходы
- •6.2.2. Доступ к данным s7-200
- •6.2.3. Адресация встроенных входов/выходов и входов/выходов модулей расширения
- •6.2.4. Обмен данными в сети
- •6.3. Программируемые контроллеры simatic s7-300
- •6.3.1. Области применения
- •6.3.2. Состав
- •6.3.3. Сертификаты
- •6.4. Программируемые контроллеры simatic s7-400
- •6.4.1. Области применения
- •6.4.2. Состав
- •6.4.3. Сертификаты
- •Список литературы
3.4.2.1. Адаптер интерфейса овен ас 2
Адаптер предназначен для преобразования сигналов приборов в виде «токовой петли» в сигналы интерфейса RS-232 и обратно. Применяется для подключения к последовательному порту компьютера до 8 приборов. Адаптер имеет встроенный источник питания и гальваническую развязку. Технические характеристики приведены в табл. 3.10, схема подключения на рис. 3.24.
Таблица 3.10. Технические характеристики адаптера АС 2
Напряжение питания |
220 В частотой 50 Гц |
Потребляемая мощность |
не более 2 ВА |
Количество подключаемых приборов |
до 8 |
Способ обмена с прибором по двухпроводной линии |
токовая петля |
Длина соединительной линии с прибором |
не более 1000 м |
Интерфейс связи с ЭВМ |
RS-232 |
Длина линии связи с ЭВМ |
не более 10 м |
Габаритные размеры |
150х105х65 мм |
Степень защиты |
IP20 |
Рис. 3.24. Схема подключения адаптера АС 2
Принцип работы адаптера сети состоит в следующем. Управляющая программа компьютера осуществляет выбор одного из восьми каналов, к которым подключены приборы.
Для этого используются две линии последовательного порта – RTS и DTR. Сигналом RTS коммутатор каналов адаптера сети всегда устанавливается на первый канал. Для выбора N-го канала, отличного от первого, по линии DTR необходимо послать N-1 импульс (рис. 3.25). Например, для выбора 5-го канала, после формирования импульса по линии RTS нужно послать 4 импульса по линии DTR. Для надежной коммутации длительность посылаемых импульсов и промежуток между ними должны быть не менее 1 мс.
Рис. 3.25. Пример выбора 5-го канала
После выбора канала, в линии связи «АС2 – прибор» возникает ток, равный примерно 10 мА, что соответствует логической единице. Эквивалентная схема приведена на рис. 3.26.
Рис. 3.26. Функциональная схема канала связи
Далее компьютер посылает прибору код команды, например: установить связь, прочитать измеренное значение, записать новый параметр.
3.5. Протоколы промышленных сетей
3.5.1. Протокол modbus
Протокол Modbus был предложен в 1979 году компанией Modicon. Он должен был служить протоколом реализации внутренних коммуникаций «точка-точка» между ПЛК Modicon и панелью программирования, предназначенной для ввода программ в этот ПЛК. Протокол Modbus построен по принципу открытой системы.
Область применения этого протокола не ограничивается только промышленной автоматизацией, Modbus применяется во многих других областях, включая системы автоматизации зданий.
Протокол Modbus предназначен для использования в сетевых структурах нескольких разновидностей, в том числе в разработанной компанией Modicon одноранговой сети Modbus Plus.
Modbus представляет собой протокол, построенный по принципу master-slave (ведущий-ведомый). Modbus допускает наличие в структуре только одного ведущего устройства и от 1 до 247 ведомых. В качестве ведомого устройства обычно выступает ПЛК. Роль ведущего устройства обычно играет либо панель программирования, либо главный компьютер.
Идеология протокола такова, что ведущему устройству адрес не присваивается, а ведомые пронумерованы от 1 до 247.
Адрес «0» зарезервирован в качестве адреса широковещательной передачи сообщений, предназначенных всем ведомым устройствам. Такое сообщение получают все ведомые устройства, но ответ на него не предусмотрен.
Сообщения-команды, исходящие от ведущего устройства, именуются запросами, а ответные сообщения, присылаемые ведомым устройством, ответами. Упрощенная структура формата сообщения, как запроса, так и ответа, показана ниже:
Адрес устройства |
Код функции |
Данные |
Контрольная сумма |
Ведущее устройство не имеет адреса вообще, поэтому в поле адреса всегда указывается номер ведомого устройства. Если это запрос, то он направляется ведомому устройству с указанным адресом. Если сообщение является ответом, то оно поступает от ведомого устройства с проставленным в этом поле его адресом. Сообщение-запрос всегда содержит тот или иной код функции, например, код 03 – это функция «Чтение регистров хранения».
В последнем поле каждого сообщения помещается код ошибки, формируемый устройством-отправителем, так что устройство-получатель может проверить целостность пришедшего сообщения.
Протокол Modbus рассчитан на два режима последовательной передачи данных. Один именуется ASCII (American Standard Code for Information Interchange), а второй – режимом RTU (Remote Terminal Unit). Термин RTU ведет происхождение от SCADA-систем (Supervisor Control and Data Acquisition), в которых ведущее устройство, именуемое CTU (Central Terminal Unit), обменивается информацией с несколькими удаленными устройствами (RTU), находящимися от него на определенных расстояниях.
Для каждого режима определена структура кадров сообщений и их синхронизация. В процессе передачи по каналам последовательной связи оба режима предусматривают асинхронную передачу, при которой имеется заранее определенная структура кадра и символы пересылаются последовательно – по одному в каждый момент.
В табл. 3.11 и 3.12 показана отправка символа при использовании асинхронной последовательной передачи данных для обоих режимов с битом четности или без него.
Таблица 3.11. Структура кадра для 7-битового режима ASCII
Стартовый бит |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Бит четности |
Стоповый бит |
Стартовый бит |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Стоповый бит |
Стоповый бит |
Таблица 3.12. Структура кадра для 8-битового режима RTU
Стартовый бит |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Бит четности |
Стоповый бит |
Стартовый бит |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Стоповый бит |
Стоповый бит |
Каждый символ передается как последовательность битов, причем время, затрачиваемое на передачу одного бита, обратно пропорционально скорости передачи данных. Например, при скорости 9600 бод время передачи 1 бита равно 104,1 мкс. Когда информация не передается, линии связи находится в маркерном (marking) состоянии. Противоположное ему состояние именуется заполненным (spacing). Когда линия переходит в заполненное состояние для побитовой передачи данных, каждому символу предшествует стартовый бит, а в конце идет один стоповый бит или больше, после этого линия возвращается в маркерное состояние.
В промежутке между стартовым и стоповым битами осуществляется передача 7, в режиме ASCII, или 8, в режиме RTU, битов, составляющих символ, причем первым посылается младший бит (LSB). После символа идет либо бит четности, либо еще один стоповый бит. При этом пользователь имеет возможность выбирать один из трех вариантов: контроль на четность, или на нечетность, либо отсутствие контроля. В режиме ASCII передача одного символа требует передачи 10 битов, а в режиме RTU – 11. При асинхронной связи символы могут пересылаться либо вплотную, либо с временным интервалом между ними. Последовательности символов, образующих сообщения, имеют различные структуры в зависимости от режима – ASCII или RTU.
Для протокола Modbus в режиме ASCII последовательность CRLF (CR – возврат каретки и LF – перевод строки) сейчас просто указывает на конец кадра. Преимуществом данного режима является то, что если в качестве ведомого устройства включить ЭЛТ–терминал, то можно увидеть на экране понятный человеку отформатированный код, который послан ведущим устройством на экран ЭЛТ–терминала. В табл. 3.13 показана структура сообщения Modbus в режиме ASCII.
Таблица 3.13. Структура кадра сообщения Modbus ASCII
Начало |
Адрес устройства |
Код функции |
Данные |
Контрольная сумма (LRC) |
Конец |
1 символ (:) |
2 символа |
2 символа |
n символов |
2 символа |
2 символа (CRLF) |
Его начало обозначается символом «:», а конец – последовательностью CRLF (два символа ASCII). Любой символ ASCII представляется 7 битами. Все остальные символы во всех остальных полях фрейма должны быть либо цифрами от 0 до 9, либо буквами от A до F, так как предполагается, что данные представляются в шестнадцатеричном формате, но отображаются в виде символов ASCII. Например, код функции 03 будет отображаться двумя ASCII-символами – «0» и «3». То же самое относится и к содержимому поля данных. Одним из преимуществ режима ASCII является то, что он не предъявляет особо жестких требований к синхронизации. Допускается временной промежуток между символами до 1 с – только по истечении его генерируется сообщение о превышении лимита времени.
При работе в режиме RTU синхронизация имеет более важное значение, чем в режиме ASCII. В этом варианте специальный начальный символ отсутствует. Вместо этого кадр сообщения начинается с маркерного интервала, длительность которого равна времени передачи четырех символов. После истечения этого интервала передается адрес устройства, затем код функции и собственно данные. Имеются и другие отличия от кадра сообщения в режиме ASCII, как это показано в табл. 3.14.
Таблица 3.14. Структура кадра сообщения Modbus RTU
Начало |
Адрес устройства |
Код функции |
Данные |
Контрольная сумма (CRC) |
Конец |
Интервал, равный времени передачи 4-х символов |
8 бит |
8 бит |
n×8 бит |
16 бит |
Интервал, равный времени передачи 4 символов |
Вместо контрольной суммы LRC (Longitudinal Redundancy Check – продольный контроль по избыточности) в режиме RTU используется контрольная сумма CRC (Cyclic Redundancy Check – циклический контроль по избыточности). Конец кадра отмечается маркерным интервалом, равным времени передачи четырех символов.
Сообщения в формате RTU должны посылаться в виде непрерывного потока, и появление значительного временного «зазора» между смежными символами рассматривается как прерывание в передаче сообщения. В отличие от режима ASCII сообщения в режиме RTU не поддаются считыванию человеком. Однако сообщения в этом режиме весьма компактны и более эффективны с точки зрения их передачи. Поэтому режим RTU является более популярным.
Таблица распределения регистров Modbus показана в табл. 3.15, поскольку коды некоторых функций привязаны к конкретным диапазонам регистров.
Таблица 3.15. Таблица распределения регистров протокола Modbus
Адреса регистров |
Описание |
00001 – 10000 |
Дискретные выходы (чтение/запись) |
10001 – 20000 |
Дискретные входы (чтение) |
30001 – 40000 |
16-битовые аналоговые входы (чтение) |
40001 – 50000 |
Регистры хранения (чтение/запись) |
Каждый дискретный вход и дискретный выход представлен в таблице распределения регистров 1 битом. Для ПЛК компании Modicon дискретные выходы начинаются с адреса (ячейки) 00001, а дискретные входы – с адреса 10001. Каждому из них требуется 1 бит памяти. Содержимое входных регистров (contacts) можно только читать, содержимое выходных регистров (coils) можно и читать, и записывать.
Регистры аналоговых входов и выходов являются 16-разрядными. Их адреса начинаются с 30001 – это адрес первого аналогового входа. С адреса 40001 начинается диапазон универсальных регистров (чтение и запись), которые могут служить также и аналоговыми выходами. Однако не все функциональные коды работают с адресами этих регистров.
Перечень кодов, которые обеспечивают доступ к однобитовым и 16-битовым данным приведен в табл. 3.16.
Таблица 3.16. Коды функций для доступа к данным
Код |
1 или 16 бит |
Описание |
Диапазон адресов входов-выходов |
1 |
1 |
Read coils Чтение текущего состояния (ON/OFF) дискретных выходов |
00001 – 10000 |
2 |
1 |
Read contacts Чтение текущего состояния (ON/OFF) дискретных входов |
10001 – 20000 |
5 |
1 |
Write a single coil Изменение состояния дискретного выхода в ON или OFF |
00001 – 10000 |
15 |
1 |
Write multiple coils Изменение состояния (ON/OFF) нескольких дискретных выходов |
00001 – 10000 |
3 |
16 |
Read holding registers Чтение регистров хранения |
40001 – 50000 |
4 |
16 |
Read input registers Чтение входных регистров |
30001 – 40000 |
6 |
16 |
Write single register Запись одного регистра |
40001 – 50000 |
16 |
16 |
Write multiple registers Запись нескольких регистров |
40001 – 50000 |
22 |
16 |
Mask write register Маскированная запись регистра |
40001 – 50000 |
23 |
16 |
Read/write multiple registers Чтение/запись нескольких регистров |
40001 – 50000 |
24 |
16 |
Read FIFO queue Чтение содержимого очереди FIFO |
40001 – 50000 |
Как видно из табл. 3.16, одноразрядные коды функций относятся к дискретным входам и выходам, а 16-разрядные – к входным регистрам и регистрам хранения. При этом имеется четкая привязка каждого кода функции к определенному диапазону адресов входов-выходов. Например, функциональный код 06 (запись одного регистра) относится только к диапазону адресов 40001 – 50000 и ни к какому другому. Следовательно, при описании сообщения можно указывать не абсолютный адрес входа или выхода, а задать величину смещения относительно базового адреса. Таким образом, в данном случае вместо адреса 40001 мы указываем просто 0000.
При разработке протокола компания Modicon приняла решение нумеровать физические координаты точек, входящих в тот или иной диапазон, начиная с 0, а не с 1. Дискретный выход 1 адресуется в сообщении как ячейка 0000, а не 00001. Дискретный вход 1 адресуется как ячейка 0000, а не 10001. То же самое относится и к регистру хранения 1, которому поставлена в соответствие ячейка 40001, – его адрес записывается в виде 0000. Код функции всегда ассоциирован с конкретным диапазоном адресов входов-выходов, и поэтому для однозначной идентификации координат точки достаточно указать величину ее смещения относительно базового адреса.
Смещение записывается в виде 16-разрядного слова и при просмотре реального Modbus-сообщения отображается соответствующим шестнадцатеричным числом, а в таблице распределения регистров Modbus все адреса даются в виде десятичных чисел. Поэтому регистру 40016 соответствует число 0х000F, которое является шестнадцатеричным представлением разности 40016 – 40001.
В отличие от традиционной 7-уровне-вой сетевой модели OSI, принятой ISO, модель Modbus для передачи данных по последовательной линии связи (Modbus over Serial Line) «сжата» до трех уровней, как это показано в табл. 3.17.
Таблица 3.17. Трехуровневая модель Modbus передачи данных по последовательной линии
Уровень |
Функция в модели OSI |
Функция в модели Modbus |
7 |
Прикладной уровень |
Прикладной протокол Modbus |
3-6 |
Разные функции |
Нет |
2 |
Канальный уровень |
Протокол Modbus для последовательной линии связи |
1 |
Физический уровень |
RS-232C, RS-485 (EIA-232C, EIA-485) |
Верхним является прикладной уровень, рассмотренный выше. Он именуется прикладным протоколом Modbus, или просто протоколом Modbus. Уровни 36 не используются – вместо них в данной модели выступает прикладной уровень, на котором обеспечивается сквозная передача сообщений. Канальный уровень (уровень 2) представлен Modbus-протоколом передачи данных по последовательной линии связи. Наконец, физический уровень (уровень 1) представлен интерфейсом RS-232C (EIA-232C), либо RS-485 (EIA-485). Трехуровневый протокол Modbus для передачи данных по последовательной линии связи гораздо проще в понимании по сравнению с другими промышленными протоколами передачи данных.
Канальный уровень организовывается следующим образом. Кадр сообщения включает в себя PDU (Protocol Data Unit – модуль данных протокола) – элементарный пакет протокола Modbus для последовательной линии передачи данных. На рис. 3.27 показано, что PDU состоит из четырех элементов.
Рис. 3.27. Структура Modbus PDU
В центре находится собственно Modbus PDU, содержащий два элемента – код функции и данные. В большинстве реализаций Modbus используется ограниченный набор кодов функций. При этом структура данных может варьироваться в зависимости от кода функции. В случае последовательной линии передачи данных перед Modbus PDU находится поле адреса, а после него – поле контрольной суммы. В поле адреса содержится только адрес ведомого устройства или адрес широковещательной передачи. Адрес ведущего устройства не требуется и не указывается, поскольку речь идет о протоколе «ведущий – ведомый», в котором команды исходят от уникального ведущего устройства.
Структура Modbus-сообщения для последовательной линии передачи данных зависит от того, какой режим используется – ASCII или RTU. На рис. 3.28 показана структура кадра для более распространенного режима RTU.
Рис. 3.28. Структура кадра для режима RTU
Структура отличается компактностью – всего один байт занимает адрес ведомого устройства или адрес широковещательной передачи, один байт – код функции и два – контрольная сумма (CRC). Следует отметить, что в сообщении отсутствует последовательность, обозначающая конец кадра. В режиме RTU конец кадра отмечается паузой, равной времени передачи 3,5÷4,5 символов.
Максимальное по длине сообщение занимает всего 256 байтов. В режиме RTU для передачи каждого байта необходимо 11 битов. Сам символ – это восемь битов, плюс стартовый и стоповый биты и один бит четности. Если бит четности не используется, то вместо него посылается еще один стоповый бит. При использовании бита четности осуществляется контроль на четность либо на нечетность.
Формат сообщения в режиме ASCII, показанный на рис. 3.29, предусматривает два байта для адреса ведомого устройства и два байта для кода функции. В отличие от RTU в режиме ASCII используется 2-х байтовая контрольная сумма LRC. Преимуществом формата ASCII является то, что сообщения в этом формате могут быть прочитаны человеком. Следует отметить, что в данном случае имеется последовательность, обозначающая конец сообщения и представленная управляющими символами CR (возврат каретки) и LF (перевод строки).
Рис. 3.29. Структура кадра для режима ASCII
При этом паузы в процессе передачи сообщения не имеют значения. Данные представляются в шестнадцатеричном формате в коде ASCII. Каждый символ ASCII требует всего 7 битов, но каждый байт данных представляется двумя символами. При этом используются один стартовый и один стоповый бит. Если используется бит четности, то осуществляется контроль на четность либо на нечетность. Если бит четности не используется, то вместо него посылается еще один стоповый бит. Это означает, что передача каждого байта в режиме ASCII выливается в передачу 10 битов.
Изначально протокол Modbus разрабатывался с ориентацией на соединение «точка-точка» между главным компьютером и ПЛК через интерфейс RS-232C (EIA-232C). Этот вариант актуален и сегодня. Но спецификация протокола Modbus для передачи данных по последовательной линии обеспечивает возможность многоточечного соединения по стандарту RS-485 (EIA-485) – схему, поддерживающую до 32 устройств, подключенных к общей шине. Такая конфигурация может быть реализована с применением либо двухпроводного, либо четырехпроводного подключения. В любом из вариантов последовательной передачи данных возможен широкий диапазон скоростей – от 1,2 до 115 Кбит/с, но все реализации должны, как минимум, обеспечивать работу на скоростях 9,6 и 19,2 Кбит/с. По умолчанию принимается значение скорости передачи данных 19,2 Кбит/с.
На рис. 3.30 показана рекомендуемая схема двухпроводной сети с интерфейсом RS-485 (EIA-485) с линейной поляризацией. В такой сети, естественно, имеется один узел, являющийся ведущим устройством, и множество ведомых узлов, подключенных к общей двухпроводной шине, провода которой обозначены как D0 и D1.
Рис. 3.30. Двухпроводная схема подключения
Как минимум, такая схема обеспечивает поддержку 32 устройств. При использовании двухпроводной шины выход трансмиттера напрямую соединен с входом приемника каждого из устройств. Несмотря на то, что шина именуется двухпроводной, здесь имеется третий – общий (common) провод опорного потенциала, обозначенный на рисунке как «общий». Чтобы максимальное синфазное напряжение устройство не превышало установленного максимально допустимого значения, каждое устройство должно делить общий провод со всеми остальными устройствами, выходящими на шину. Резисторы pull up и pull down (подтягивающие резисторы) создают предопределенный уровень на линии передачи данных, когда ни один из узлов сети не передает данные. Для того чтобы приемник RS-485 (EIA-485) мог фиксировать, что линия находится в состоянии off (отключено), требуется отказоустойчивое смещение 200 мВ. Такое подключение создает дополнительную помехоустойчивость системы. На обоих концах шины находятся терминаторы (LT – Line Terminator), необходимые для согласования с волновым сопротивлением шины. Спецификация протокола Modbus для передачи данных по последовательной линии связи рекомендует, чтобы подтягивающие резисторы имели значения сопротивления в диапазоне от 450 до 650 Ом, и чтобы использовалась только одна такая сеть. Следует отметить, что отказоустойчивое смещение вообще необходимо, поэтому некоторые трансиверы имеют встроенные схемы смещения, и тогда потребность во внешнем смещении отпадает.
На рис. 3.31 показана рекомендуемая схема четырехпроводной сети с интерфейсом, где также применяются устройства RS-485 (EIA-485).
Рис. 3.31. Четырехпроводная схема подключения
В каждом из устройств передатчик и приемник разделены. При этом передатчик ведущего устройства соединен с приемниками всех ведомых устройств, а передатчики всех ведомых устройств соединены с приемником ведущего устройства. Пара проводов ведущего устройства обозначена – RxD0, RxD1, пара проводов ведомого устройства обозначена – TxD0, TxD1. Здесь также используются отказоустойчивое смещение и терминатор, но в четырехпроводной сети они дублируются. В четырехпроводной схеме требуется «пятый» провод, играющий роль общего.
Несмотря на то что спецификация протокола Modbus для передачи данных по последовательной линии связи поддерживает и двухпроводную, и четырехпроводную схему, более популярной является первая. Хотя четырехпроводная схема дает возможность иметь полнодуплексную связь, сам протокол Modbus является полудуплексным. Ведущее устройство выдает команды конкретному ведомому устройству и ждет ответа. Такой порядок вполне эффективно работает в двухпроводной схеме.
В настоящий момент в системах автоматизации больший интерес вызывает подключение к сетям Ethernet, конкретнее, к сетям IP/Ethernet. Протокол Modbus также адаптирован для применения в этих сетях. Вместо трехуровневой модели, которая существует в Modbus для передачи данных по последовательной линии связи, в Modbus TCP используется принятая в Internet пятиуровневая модель, представленная в табл. 3.18.
Таблица 3.18. Пятиуровневая модель Modbus TCP для Internet
Уровень |
Функция в модели OSI |
Функция в модели Modbus |
5,6,7 |
Прикладной уровень |
Прикладной протокол Modbus |
4 |
Транспортный уровень |
Протокол управления передачей |
3 |
Сетевой уровень |
Интернет-протокол |
2 |
Канальный уровень |
IEEE 802.3 |
1 |
Физический уровень |
IEEE 802.3 |
В сетевом стандарте Modbus TCP говорится только о том, как Modbus PDU (содержащий код функции и данные) встроен в протокол более высокого уровня, при этом не рассматривается, как физически подключать станции, какие провода или разъемы применять, для этого в стандарте Modbus TCP дается ссылка на стандарт IEEE 802.3.
Еще одним значительным отличием является то, что в данном случае шина Modbus фактически является шиной IP, что иллюстрирует рис. 3.32.
Рис. 3.32. В модели Modbus TCP используются клиенты и серверы
При этом физический и канальный уровни не конкретизируются. Вместо привычного ведущего устройства, к которому подключено множество ведомых устройств, используются термины «клиент» и «сервер». В качестве клиентов могут выступать устройства человеко-машинного интерфейса (ЧМИ) или программируемые логические контроллеры (ПЛК), а в качестве серверов – стойки сетевого оборудования. Аналогично ведущему устройству клиенты выдают команды серверу. Аналогично ведомому устройству серверы отвечают на команды клиента. Однако в точной терминологии взаимодействия между клиентом и сервером подразумевается, что клиенты выдают запросы, а серверы отвечают на них. В действительности процесс несколько сложнее:
клиент с целью инициировать транзакцию посылает запрос (request);
сервер посылает уведомление (indication), чтобы подтвердить, что запрос получен;
сервер посылает ответ (response) во исполнение запроса клиента;
клиент посылает подтверждение (confirmation) о получении ответа.
Важно подчеркнуть, что согласно этой модели в IP-сети может быть несколько клиентов, которые имеют доступ к общей группе серверов. В этом заключается фундаментальное отличие в работе данного варианта протокола Modbus. Здесь нет одного-единственного ведущего устройства, управляющего определенным набором ведомых устройств. Любое число клиентов может обращаться к любому числу серверов. Возможны ли конфликты, когда клиенты посылают несовместимые запросы к одному и тому же серверу? Да, возможны, но риск – это та цена, которую приходится платить за гибкость, предлагаемую данной моделью.
На рис. 3.33 показано, как формируется прикладной пакет протокола (Application Data Unit – ADU) Modbus TCP/IP.
Рис. 3.33. К Modbus PDU добавляется заголовок МВАР
Традиционный Modbus PDU в приложении к последовательной линии передачи данных сохраняется – поля кода функции и данных присутствуют. В дополнение к PDU появляется заголовок MBAP (ModBus Application Protocol) длиной 7 байтов, структура которого показана в табл. 3.19.
Таблица 3.19. Структура заголовка МВАР
Идентификатор транзакции |
Идентификатор протокола |
Длина |
Идентификатор устройства |
2 байта |
2 байта |
2 байта |
1 байт |
Идентификатор транзакции поступает от клиента и используется для отслеживания индивидуальных запросов. Сервер при ответе должен возвратить клиенту тот же самый идентификатор. Это позволяет клиенту посылать серверу множество запросов и не дожидаться получения ответа на каждый отдельный запрос. Наличие идентификатора протокола позволяет системе поддерживать несколько протоколов. Для Modbus этот идентификатор имеет значение «0». Поле длины содержит значение, равное длине всех остальных полей, включая поля PDU. И, наконец, поле идентификатора устройства содержит адрес ведомого устройства Modbus, доступ к которому должен осуществляться через шлюз.
При взаимодействии клиентов и серверов Modbus TCP адресация станций реализуется с применением IP-адресов. Но если ведомое устройство Modbus подключено к последовательной линии передачи данных, то необходимо указать его фактический адрес. В этом случае в качестве IP-адреса будет выступать адрес шлюза. Для того чтобы переслать ADU по протоколу TCP, необходимо пользоваться зарегистрированным номером порта TCP, для этой цели зарегистрирован порт «502».