Режимы работы, физический, канальный уровни MODBUS.
MODBUS является коммуникационным протоколом уровня приложений, соответствующим уровню 7 модели OSI (прикладной уровень). Де-факто является промышленным стандартом с 1979 года. Сегодня поддержка и сфера применения этого простого и элегантного протокола продолжает расти:
· MODBUS представлен как зарезервированный системный порт 502 стека TCP/IP;
· используется (в основном в промышленном оборудовании) для асинхронной последовательной передаче поверх различных физических сред (шины RS: EIA/TIA-232-E, EIA-422, EIA/TIA-485-A, оптоволокно, радио и т.д.);
· модификация MODBUS PLUS представляет собой высокоскоростную сеть передачи данных, например, аудиопереговоров;
· и другие применения.
Далее будем рассматривать «классический» MODBUS, широко применяющийся именно в промышленных сетях уровня цеха.
Протокол MODBUS всегда используется в режиме «Ведущий – Ведомый» («Master-Slave», «Клиент-Сервер»), в каждой сети имеется только одно ведущее устройство и до 255 ведомых устройств. Общий формат кадра MODBUS имеет следующий вид:
Рис. 4.1. Общий формат кадра MODBUS
Инициатором обмена данными всегда является ведущее устройство. Ведомое устройство передает свой кадр только в ответ на кадр ведущего устройства, в ответ на 1 кадр ведущего устройства ведомое устройство возвращает не более 1 кадра.
На физическом уровне для реализации MODBUS в промышленном оборудовании как правило выбирают последовательный канал стандарта RS-232 или RS-485. Используется асинхронный режим передачи данных, передача данных выполняется побайтово. Передаваемый байт данных имеет старт-бит, 8 битов данных и 2 стоп-бита. Скорости передачи определяются интерфейсом (RS-232 или RS-485) и обычно составляют 4808÷38460 Бод.
На канальном уровне могут поддерживаться два режима работы последовательного порта: ASCII и RTU.
Режим ASCII
Для передачи используются только символы таблицы кодировки ASCII. Каждый передаваемый байт содержит код одного символа ASCII, имеет структуру, приведенную на следующем рисунке:
Рис. 4.2. Структура байта в режиме ASCII
Бит четности может использоваться в одном из трех режимов:
1) контроль четности: имеет значении 1, если биты D0 – D6 содержат нечетное число битов “1”, 0 – в противном случае (биты D0 – D6 и PB должны содержать четное число единиц);
2) контроль нечетности: имеет значение 1, если биты D0 – D6 содержат четное число битов “1”, 0 – в противоположном случае (биты D0 – D6 и PB должны содержать четное число единиц);
3) контроль четности/нечетности запрещен: всегда содержит значение 1.
Для передачи используются только следующие коды:
- Символы цифр и букв английского алфавита в кодировке ASCII. Для приема допустимо использование символов как строчных, так и прописных букв, передача всегда осуществляется строчными (большими) буквами.
- Символ “:” (двоеточие) в кодировке ASCII (код 3AH) – код начала кадра.
- Символы “Возврат каретки” (CR, код 0DH) и “Перевод строки” (LF, код 0AH). Последовательность кодов CR LF означает конец кадра.
Элементы кадра MODBUS имеют для режима ASCII следующий формат:
Дата добавления: 2016-04-19; просмотров: 969;