- •11. Промышленные сети modbus, can
- •11.1. Промышленная сеть Modbus
- •5) Поле данных содержит информацию, необходимую sLi для выпол-нения указанной функции, или содержит данные sLi, собранные для ответа на запрос.
- •11.2. Промышленная сеть can
- •1) Структура фрейма данных имеет два исполнения: стандартное (рис.11.4.) и расширенное (здесь рассматриваться не будет ).
- •Поле данных - содержит до 8-ми байт данных.
11. Промышленные сети modbus, can
Поднимаясь над низовой автоматикой, проектировщик АСУТП стал-кивается с необходимостью объединения промышленной сетью АРМ ди-спетчеров и операторов, многофункциональных УСО, автономных (специ-ализированных) устройств различного назначения (АУ), решающих задачи локальной автоматики, технологического или коммерческого учета энер-гии и энергоносителей (рис.11.1).
Управ-лениеШиной
АУ
АУ
Промышленная шина
АУ
Рис.11.1. Структура промышленной сети среднего уровня
Для решения таких задач в отличие от HART и AS-i уже требуются промышленные шины, обладающие развитыми возможностями в части пе-редачи массивов данных, значительно превосходящих те, которые пере-даются с использованием примышленных шин нижнего уровня. Приме-рами таких шин являются Modbus и CAN.
11.1. Промышленная сеть Modbus
Modbus - это открытый протокол, который поддерживается различ-ными SCADA и УСО, а также различными автономными средствами ком-мерческого учета энергии и энергоносителей, средствами измерения текущих технологических параметров, автономными средствами логичес-кого управления и регулирования.
11.1.1. Физический уровень Modbus реализуется последовательной пе-редачей сигналов в линиях связи интерфейсов типа «токовая петля», RS 232, RS485 в формате байта: с указанием количества бит данных, нали-чия бита проверки на четность и числа стоповых бит. Например: 8Р1 – 8 бит данных, бит паритета, один стоповый бит.
Скорость обмена устанавливается в зависимости от выбранного ти-па интерфейса и длины линии связи.
Наиболее активно в Modbus на физическом уровне используется интерфейс RS485.
Интерфейс RS-485 предназначен для создания линий связи с много-точечными соединениями. В стандарте RS-485 максимальная нагрузка пе-редатчика определяется 32-мя единичными нагрузками, где под единич-ной нагрузкой понимается входной импеданс стандартного приемника RS-485 (12кОм). При этом максимальная длина линии связи составляет до 1200 м. Использование повторителей сигналов позволяет увеличить длину линии связи еще на 1200 м и позволяет добавить еще 32 узла (рис.12.2). И таких цепей-добавлений через повторитель может быть несколько.
Повторитель
1
2
32
Повторитель
МВВ УСО
…
1
2
32
Рис.11.2. Структура сети с RS485 c повторителями сигналов
Электрические характеристики RS485 представлены в табл. 11.1.
: Т а б л и ц а 11.1.
Характеристики |
Интерфейс RS-485 |
Режим работы |
Дифференциальный |
Максимальная скорость передачи данных |
10 Мбит/с |
Диапазон выходного сигнала |
От ± 1.5 В до ± 5 В |
Максимальный ток короткого замыкания |
250 мА |
Сопротивление нагрузки Tx |
54 Ом |
Чувствительность по входу Rx |
± 200 мВ |
Максимальное входное сопротивление Rx |
12 кОм |
Диапазон напряжений входного сигнала Rx |
от -7 В до +12 В |
Уровень логической единицы Rx |
> 200 мВ |
Уровень логического нуля Rx |
< 200 мВ |
Дифференциальная передача сигнала в RS-485 обеспечивает надеж-ную передачу данных в присутствии шумов, т.к. дифференциальные входы могут подавлять значительные синфазные напряжения. Однако для защи-ты от помех больших уровней напряжений, которые обычно ассоцииру-ются с электростатическим разрядом, электромагнитным разрядом от эле-ктроустановок или от молнии, необходимо принимать дополнительные меры.
11.1.2. Канальный уровень Modbus поддерживает работу сети с дву-мя форматами передачи сообщений: ASCII (American Standard Code for Information Interchange) или RTU (Remote Terminal Unit). Смешивание ре-жимов передачи сообщений в составе одной промышленной сети не до-пускается!
1) Характеристики форматов передачи сообщений представлены в табл. 11.2:
Т а б л и ц а 11.2
Характеристика |
Формат ASCII (7-бит) |
Формат RTU(8-бит) |
Система кодирования |
Используются ASCII символы 0-9,A-F |
8-битовая двоичная система |
Стартовые биты |
1 |
1 |
Биты данных |
7 (млад. значащий бит –вперед) |
8 (млад. значащий бит –вперед) |
Четность |
Есть/Нет |
Есть/Нет |
Стоповые биты |
1 или 2 |
1 или 2 |
Контрольная сумма |
LRC(LongitudinalRedundancyCheck). |
CRC16 (CyclicalRedundancyCheck) |
В режиме RTU данные передаются непрерывным потоком в виде 8-ми разрядных двоичных кодов. В режиме ASCII каждый RTU код сначала делится на две 4-х разрядных части (старший и младший), каждая пере-водится в свой шестнадцатеричный эквивалент (hex), а затем использу-ется в сообщении.
В режиме ASCII допустима задержка до 1 секунды между двумя со-седними символами.
Бит четности может включаться в формат символа и в режиме RTU, и ASCII. В режиме RTU это девятый бит в поле данных (8 бит данных + бит четности). В режиме ASCII это восьмой бит данных (7 бит данных + бит четности). Если контроль четности не используется, бит четности не передается. Внимание: все устройства в системе должны быть сконфигури-рованы одинаково.
2) Организация передачи сообщений в Modbus реализуется по прин-ципу «ведущий (MS)- ведомый (SL)», т.е. все циклы обмена инициируются только ведущим устройством –мастером MS. В Modbus только один MS, а количество SL-узлов определяется в пределах адресной способности сети.
MS, инициируя взаимодействие с SL, формирует адресуемые сообще-ния двух типов:
– Тип 1: кадр запроса с адресом i-того ведомого устройства SL i - кадр ответа. При этом MS посылает SL запрос и ждет на него ответ в течение временного интервала tс. Длительность интервала задается пользователем. Если в течение этого временного интервала MS получит ответ, то сразу же может формировать следующее обращение к этому же или другому SL. Если на заданном временном интервале tс ответное сообщение не будет получено, то MS цикл обмена данными считает не завершенным. Дальнейшее поведе-ние MS определяется пользовательской программой.
– Тип 2: один кадр широковещательного запроса всех SL без ответа. В этом случае широковещательные сообщения выполняются с адресом SL=0. При этом одновременно запрашиваются все SL и по этой причине ответного сообщения от SL не требуется.
3) Структура кадра сообщения в Modbus не зависит от направления передачи:
-
Адрес ведомого устройства SL (в том числе адрес общего запроса - 0)
Код команды ( функции -считать, запись и т.д.)
Размер поля данных
Данные или Буфер под данные
Контрольный CRC-код
Кадровая синхронизация при передаче сообщения осуществляется:
– в режиме ASCII – передачей символа двоеточия ‘:’, указывающего на начало кадра, символов возврата каретки (CR) и перевода строки (LF), указывающих на конец кадра и готовность к приему ответного сообщения.
Формат кадра сообщения в режиме ASCII | ||||||
Начало кадра |
Адрес |
Функция |
Данные |
Контрольная сумма |
|
|
: |
2 символа 16-бит |
2 символа 16 бит |
N * 4 символа N * 16 бит |
2 символа 16 бит |
CR |
LF |
– в режиме RTU - отслеживанием времени между приемом символов. Если прошло время, равное периоду следования 3.5 символов, а кадр не был завершен или не поступило нового символа, то устройство очищает кадр и предполагает, что следующий принимаемый байт - это адрес SL в новом сообщении.
Формат кадра сообщения в режиме RTU | ||||||
Т1 Т2 Т3 |
Адрес |
Функция |
Данные |
Контрольная сумма |
Т1 Т2 Т3 | |
|
8 бит |
8 бит |
N * 8 бит |
16 бит |
|
4) Поле адреса следует сразу за началом кадра и состоит из одного 8-ми разрядного символа в режиме RTU или 2-х символов в режиме ASCII. Эти биты указывают адрес SLi устройства, которое должно принять посла-нное MS сообщение и ответить на него. Когда SLi посылает ответ, то адрес SLi информирует MS о том, от какого устройства пришло ответное сооб-щение. В широковещательном режиме с адресом SL =0: все SL интерпре-тируют такое сообщение как требование выполнить определенное дейст-вие, без посылки подтверждения.
5) Поле функции содержит код функции, который указывает адресу-емому SLi какое действие должно быть выполнено, а также диагности-ческий бит S –старший бит поля функции, который определяет ответное сообщение следующим образом: S=0, если ответное сообщение SLi повто-ряет запрос или в случае нормального сообщения; S=1, если ответное сообщение не нормальное (ошибочное, недостоверное):
Поле кода команды | |||||||
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
S |
Код функции Modbus | ||||||
S=0 - все нормально; S=1 признак недостоверности, ошибки |