Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СКМ.doc
Скачиваний:
29
Добавлен:
02.03.2016
Размер:
776.19 Кб
Скачать

5.3. Канальний рівень

Протокол Modbus припускає, що тільки один головний пристрій (контролер) і до 247 залежних (модулів вводу-виводу) можуть бути об'єднані в промислову мережу. Обмін даними завжди ініціюється головним. Залежні пристрої ніколи не починають передачу даних, поки не отримають запит від головного. Слейв-пристрої також не можуть обмінюватися даними один з одним. Тому у будь-який момент часу в мережі Modbus може відбуватися тільки один акт обміну.

Адреси з 1 по 247 є адресами Modbus пристроїв в мережі, а з 248 по 255 зарезервовані. Головний пристрій не повинен мати адреси і в мережі не повинно бути двох пристроїв з однаковими адресами.

Головний пристрій може посилати запити всім пристроям одночасно (широкомовний режим) або тільки одному. Для широкомовного режиму зарезервована адреса «0» (при використанні в команді цієї адреси вона приймається всіма пристроями мережі).

Опис кадру (фрейму) протоколу Modbus. У протоколі Modbus RTU повідомлення починає сприйматися як нове після паузи (тиші) на шині тривалістю не менше 3,5 символів (14 біт), тобто величина паузи в секундах залежить від швидкості передачі.

Рис. 5.1. Формат кадру протоколу Modbus RTU; PDU (Protocol Data Unit) — елемент даних протоколу; ADU ( Application Data Unit) — елемент даних додатку

Формат кадру показаний на рис. 5.1. Поле адреси завжди містить тільки адресу слейв-пристрою, навіть у відповідях на команду, послану мастер-пристроєм. Завдяки цьому головний пристрій знає, від якого модуля прийшла відповідь.

Поле «Код функції» говорить модулю про те, яку дію потрібно виконати.

Поле «Дані» може містити довільну кількість байт. У нім може міститися інформація про параметри, використовувані в запитах контролера або відповідях модуля.

Поле «Контрольна сума» містить контрольну суму CRC завдовжки 2 байти.

Структура даних в режимі RTU. У режимі RTU дані передаються молодшими розрядами вперед (рис. 5.2).

Стартовий біт

1 (МЗР)

2

3

4

5

6

7

8

Біт паритету

Стоп-біт

Рис. 5.2. Послідовність бітів в режимі RTU. МЗР — молодший значущий розряд. За відсутності біта паритету на його місце записується другий стоп-біт

За умовчанням в RTU режимі біт паритету встановлюють рівним 1, якщо кількість двійкових одиниць в байті непарна, і рівна 0, якщо вона парна. Такий паритет називають парним (even patity), а метод контролю називають контролем парності.

При парній кількості двійкових одиниць в байті біт паритету може бути рівний 1. В цьому випадку говорять, що паритет є непарним (odd patity).

Контроль парності може бути відсутнім взагалі. В цьому випадку замість біта паритету повинен використовуватися другий стоповий біт. Для забезпечення максимальної сумісності з іншими продуктами рекомендується використовувати можливість заміни біта паритету на другий стоповий біт.

Залежні пристрої можуть сприймати будь-який з варіантів: парний, непарний паритет або його відсутність.

Структура Modbus RTU повідомлення. Повідомлення Modbus RTU передаються у вигляді кадрів, для кожного з яких відомий початок і кінець. Ознакою початку кадру є пауза (тиша) тривалістю не менше 3,5 шістнадцяткових символів (14 біт). Кадр повинен передаватися безперервно. Якщо при передачі кадру виявляється пауза тривалістю більше 1,5 шістнадцяткових символів (6 біт), то вважається, що кадр містить помилку і повинен бути відхилений приймаючим модулем. Ці величини пауз повинні строго витримуватися при швидкостях нижче 19200 біт/с, проте при вищих швидкостях рекомендується використовувати фіксовані значення паузи, 1,75 мс і 750 мкс відповідно.

Контроль помилок. У режимі RTU є два рівні контролю помилок в повідомленні: контроль паритету для кожного байта (опційно) і контроль кадру в цілому за допомогою CRC методу.

CRC метод використовується незалежно від перевірки паритету. Значення CRC встановлюється в мастер-пристрої перед передачею. При прийомі повідомлення обчислюється CRC для всього повідомлення і порівнюється з його значенням, вказаним в полі CRC кадру. Якщо обидва значення співпадають, вважається, що повідомлення не містить помилки.

Стартові, стопові біти і біт паритету в обчисленні CRC не беруть участь.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]