3 2 modbus serial

27
Промислові мережі та інтеграційні технології MODBUS RTU/ASCII реєстрація [email protected] автор і лектор: Олександр Пупена ([email protected]) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua) 30.03.2015 NET – Modbus Serial [email protected] 1

Upload: alexandr-pupena

Post on 15-Jul-2015

95 views

Category:

Engineering


1 download

TRANSCRIPT

Промислові мережі та інтеграційні технології

MODBUS RTU/ASCII реєстрація [email protected]

автор і лектор: Олександр Пупена ([email protected]) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)

30.03.2015 NET – Modbus Serial [email protected]

1

Modbus over Serial Line (Modbus RTU/ASCII)

30.03.2015 NET – Modbus Serial [email protected]

2

• Згідно стандартів MODBUS.ORG, Modbus over Serial Line (Modbus RTU або Modbus ASCII) може функціонувати поверх RS-485 або RS-232.

• На практиці Modbus over Serial Line може працювати поверх будь-яких стандартних послідовних асинхронних інтерфейсів (RS-422, CL).

• Замість словосполучення "Modbus over Serial Line" частіше використовують "мережа Modbus" (Modbus network), "шина Modbus" (Modbus bus), Modbus Serial або прямо вказують Modbus RTU чи Modbus ASCII.

• Щоб вказати повний стек протоколів та інтерфейсів для конкретної реалізації мережі краще використовувати щось типу "Modbus RTU on RS485"

http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf

Що таке Modbus over Serial Line?

Modbus Serial – стек протоколів

30.03.2015 NET – Modbus Serial [email protected]

3

• Modbus Protocol – являється протоколом прикладного рівня*, він не визначає яким чином проводиться доставка PDU від Клієнту до Серверу та в зворотному напрямку, це залежить від типу мережі Modbus

• у Modbus Serial доставку PDU виконує канальний рівень, протоколом канального рівня є Modbus Serial Line Protocol

*Протокол прикладного рівня – система правил взаємодії прикладних процесів (програм).

Чого не вистачає протоколу Modbus щоб функціонувати поверх послідовних ліній?

Поняття канального рівня

30.03.2015 NET – Modbus Serial [email protected]

4

На канальному рівні вирішуються задачі: • доступ до середовища передачі тобто визначається метод

доступу (наприклад, вирішення в шинах на базі RS485, який вузол в кожен момент часу може передавати)

• розмежування кадрів (часове, символьне…) • доставка кадрів за місцем призначення (адресація вузлів) • перевірка кадрів на цілісність (контрольні суми)

Канальний рівень – забезпечує доставку даних від вузла до вузла, які знаходяться в одній фізичній мережі. Оперує кадрами.

Modbus on RS485 1

2

У Modbus Serial протоколом канального рівня є Modbus Serial Line Protocol

Що таке канальний рівень мережі?

Modbus Serial – метод доступу та адресація

30.03.2015 NET – Modbus Serial [email protected]

5

На шині RS485 в кожен момент часу тільки один вузол може передавати, тому необхідно визначити метод доступу

У Modbus Serial метод доступу Master-Slave (Ведучий-Ведений): 1. один вузол являється Master усі інші Slave 2. кожен Slave при налаштуванні отримує унікальну адресу від 1 до 247 3. Master передає свій кадр у будь який момент при необхідності, у

Modbus Serial це передача в кадрі запиту до Серверу 4. Slave може передати свій кадр тільки тоді, коли дозволяє Master, у

Modbus Serial це передача в кадрі відповіді до Клаєнту 5. у Modbus Serial може функціонувати тільки один Клієнт на вузлі

Master, на усіх інших вузлах (Slave) виконуються тільки процеси-Сервери

Modbus on RS485 1

2

Master Slave

5

Master Slave1 Slave2 Slave3

Slave4 Slave5 Slave6 Slave7

У якій послідовності пристрої доступаються до загальної шини?

Modbus Serial – метод доступу та адресація

30.03.2015 NET – Modbus Serial [email protected]

6

Modbus on RS485

Master Slave 1

1K 2S

Modbus Client

Modbus Server

Позначення: 1K, 3К, 4К – клієнтські запити, 2S – серверні відповіді

Modbus Server Modbus

Client 4К

Slave 2 Slave 3

Slave 4 Slave 5 Slave 6 Slave 7

У деяких засобах можливе переключення ролей Master/Slave, механізм такої "мультимастерності" не визначений протоколом Modbus Serial Line. Приклади: ПЛК Мікрол, Twido.

Які пристрої можуть обмінюватися даними в одній мережі Modbus?

Modbus Serial – обмін між Slave

30.03.2015 NET – Modbus Serial [email protected]

7

Modbus on RS485

Master

1K 1S

Modbus Client

Modbus Server

Modbus Server

Slave 5 Slave 7

А як можна передати дані від одного Slave до іншого?

2S

1К. Ведучий робить запит на зчитування потрібних змінних. 1S. Ведений віддає значення змінних. 2K. Везучий записує ці значення змінних Веденому. 2S. Ведений відповідає підтвердженням. Такий спосіб не описаний в протоколі і реалізовується самостійно!

Необхідно переписати значення з Slave5 в

Slave7 .

Кадр Modbus Serial

30.03.2015 NET – Modbus Serial [email protected]

8

Адреса slave 1 to 247, 0 для широкомовлення

функ

ція

03 00 6B

адреса

початкового

регістру

HI LO

кількість

регістрів

00 03

HI LO

читати Holding Registers *починаючи з 107 3 штуки

відповідь на читання Holding Registers передаю 6 байт дані

функ

ція

03 06

лічил

ьник

значення регістрів

СD 6B

400108-й 400109-й

00 05 00 64

400110-й

контрольна сума: для RTU – CRC, ASCII - LRC

05

адре

са

Slave

05

адре

са

Slave

XX XX

контрольн

а сума

YY YY

контрольн

а сума

Кажу Веденому5: контрольна сума = XXXX

контрольна сума = YYYY Я,Ведений5, відповідаю:

1. Кадр запиту Клієнту до Серверу на Веденому з номером 5

2. Кадр відповіді

Як формуються кадри для передачі запитів та відповідей?

Звернення до одного Веденого

30.03.2015 NET – Modbus Serial [email protected]

9

Modbus on RS485

Master Slave 1

Modbus Client

Modbus Server

Slave 2 Slave 3

Slave 4 Slave 5 Slave 6 Slave 7

1K

03 00 6B 00 03 05 XX XX 1K

2S

03 06

СD 6B 00 05 00 64 05 YY YY 2S

Широкомовна посилка

30.03.2015 NET – Modbus Serial [email protected]

10

Modbus on RS485

Master Slave 1

Modbus Client

Modbus Server

Slave 2 Slave 3

Slave 4 Slave 5 Slave 6 Slave 7

03 00 6B 00 03 00 XX XX

Кадри-відповіді не повертається. У широкомовних кадрах можливі тільки запити на запис!

Modbus Serial – комунікаційні помилки

30.03.2015 NET – Modbus Serial [email protected]

11

• якщо контрольна сума не співпадає – кадр ігнорується • якщо символ не пройшов перевірку біту паритета – кадр ігнорується • відповідь від Веденого очікується протягом TimeOut • Ведучий може повторити запит декілька раз при помилці TimeOut

Як себе ведуть вузли при комунікаційних помилках?

Modbus Serial: Modbus RTU та Modbus ASCII

30.03.2015 NET – Modbus Serial [email protected]

12

• Два режими роботи мережі: Modbus RTU та Modbus ASCII. • Усі вузли в мережі повинні функціонувати в однакових режимах і з

однаковими комунікаційними параметрами. По замовченню - режим Modbus RTU.

• Modbus RTU та Modbus ASCII відрізняються форматом кадрів, які переносять Modbus Serial Line PDU

• Modbus RTU: кожен байт Modbus Serial Line PDU передається окремим символом (8 біт даних)

• Modbus ASCII: всі числові значення передаються як ASCII символ, тобто 7-бітним кодом; один байт – два символи

Яка різниця між режимом RTU та ASCII?

Modbus RTU та Modbus ASCII формат символу

30.03.2015 NET – Modbus Serial [email protected]

13

Modbus RTU: 11 бітний символ, два варіанти: • з паритетом: 1 стартовий, 8 даних, 1 паритет, 1 стоповий • без паритету: 1 стартовий, 8 даних, 2 стопових

Modbus ASCII: 10 бітний символ, два варіанти: • з паритетом: 1 стартовий, 7 даних, 1 паритет, 1 стоповий • без паритету: 1 стартовий, 7 даних, 2 стопових

Які формати символів для режимів RTU та ASCII?

Modbus RTU (8 bit) формат кадру

30.03.2015 NET – Modbus Serial [email protected]

14

* інтервал тиші мінімум 3.5 x часу символу

** у алгоритмі розрахунку CRC16 використовуються усі

попередні поля, сам алгоритм та варіант програми наведені на

сайті www.MODBUS.org

Тиша*

Function Address Beginning Data CRC16** End

1 byte 1 byte 0 to 252 bytes 2 bytes Тиша*

256 bytes maximum

Master message Slave response

>= 3.5 char

<= 1.5 char

>= 3.5 char

> 1.5 char

Frame not OK

Як передається кадр в режимі RTU?

Modbus ASCII (7 bit) формат кадру

30.03.2015 NET – Modbus Serial [email protected]

15

1 char

(":")

Function Address Beginning Data LRC* End

2 chars 2 chars 0 to 2 x 252 chars 2 chars 2 chars

(CR + LF)

513 characters maximum

час паузи між кадрами не має значення

Master message Slave response Frame OK

0316 буде передаватися як ASCII-код символів „0” (3016) и „3” (3316) 0110000 0110011

* у алгоритмі розрахунку LRC використовуються усі попередні

поля окрім символу початку ":", сам алгоритм та варіант

програми наведені на сайті www.MODBUS.org

Як передається кадр в режимі ASCII?

Приклад передачі кадру в Modbus ASCII

30.03.2015 NET – Modbus Serial [email protected]

16

функ

ція

03 00 6B

адреса

початкового

регістру

HI LO

кількість

регістрів

00 03

HI LO

05

адре

са

Slave

8A

контрольн

а сума LRC

3A 30 30 35 33 30 30 36 42 30 30 30 33 38 41 0D 0A

Modbus Serial Line PDU (ASCII)

Кадр Modbus ASCII

: 3 5 0 0 0 0 6 B 0 0 0 3 8 A (CR)(LF)

Time Diagram Modbus

30.03.2015 NET – Modbus Serial [email protected]

17

Modbus RTU. Приклад методики розрахунку часу

30.03.2015 NET – Modbus Serial [email protected]

18

Як розрахувати час, що потрібний для виконання обміну з усіма Веденими ?

Слід враховувати: 1) час, необхідний для передачі кадрів

запитів та відповідей; 2) час обробки запитів та формування

відповіді; 3) можливі таймаути

Modbus Serial Line – фізичний рівень

30.03.2015 NET – Modbus Serial [email protected]

19

• початкова специфікація обмежувалась описом кадру, в стандарті MODBUS.ORG вказуються вимоги та рекомендації на фізичному рівні;

• базується на RS-485 та RS-232 • Бітові швидкості 9600 біт/с та 19200 біт/с (за замовченням), інші швидкості

є опціональними; • метод кодування NRZ • для RS-485 шина з трьома способами підключення :

1. безпосередньо до магістрального (trunk) кабелю, так званим способом daisy-chain;

2. через пасивну коробку підключення та кабель відгалуження (Derivation); до 20 м при 9600 біт/с; для мультипортових 40/n м (n – кількість портів)

3. через активну коробку та специфічний кабель відгалуження

Які вимоги до реалізації фізичного інтерфейсу?

2-х провідне підключення Modbus on RS-485

30.03.2015 NET – Modbus Serial [email protected]

20

(+)

(-)

Варіанти термінаторів (LT) : • резистор 150 Ом, 0.5 Вт; • конденсатор (1 нФ, 10 В

мінімум) + резистор номіналом 120 Ом (0.25 Вт)

Захисне зміщення: PullIUp та PulDown від 450 Ом до 650 Ом в залежності від кількості пристроїв (650 Ом при великій кількості). Проводиться тільки в одній точці лінії, як правило на стороні Ведучого. Максимальна кількість пристроїв з реалізованою поляризацією зменшується на 4 порівняно з системою без поляризації.

Як правильно підключати по RS-485?

4-х провідне підключення Modbus on RS-485

30.03.2015 NET – Modbus Serial [email protected]

21

Що таке 4-ри провідна схема RS-485?

Способи підключення до пристроїв

30.03.2015 NET – Modbus Serial [email protected]

22

RS-485

RS-232

Які вимоги до способів підключення пристроїв?

Вимоги Modbus.ORG до документації

30.03.2015 NET – Modbus Serial [email protected]

23

У документації до засобу з Modbus Serial мусить бути описані: - перелік усіх підтримуваних запитів; - операційні режими; - візуальна діагностика; - доступні змінні (регістри/біти) та підтримувані коди функцій; - правила інсталяції (монтажу), зкорема:

- правила монтажу 2-х та 4-х провідного Modbus - способи поляризації (захисного зміщення); - правильна прокладка кабелів

- вказані опціональні режими передачі, швидкості, паритети, живлення, способи конфігурації порта, інтерфейси

- максимальна кількість пристроїв без репітерів

Modbus Serial Line Implementation Classes

30.03.2015 NET – Modbus Serial [email protected]

24

Modbus Serial Line: приклад налаштування

30.03.2015 NET – Modbus Serial [email protected]

25

Modbus Serial Line: варіанти реалізації

30.03.2015 NET – Modbus Serial [email protected]

26

- у всіх пристроях повинен бути присутній фізичний інтерфейс - для непрограмованих пристроїв (периферії, приводів, засобів

вводу/виводу): прошитий на рівні мікропрограми чи ОС пристрою, або його модулю;

- для ПЛК може бути присутній у вигляді: - прошитих в ОС ПЛК функцій як Master так і Slave; - прошитих в комунікаційний модуль функцій як Master так і Slave; - бібліотечної функції як Master так і Slave; - самописної функції як Master так і Slave;

- для SCADA/HMI може бути присутній у вигляді: - драйверу протоколу, як правило Master (рідко Slave); - проміжного шлюзу (наприклад OPC, DDE)

Яким чином може бути доступний Modbus Serial Line в пристрої?

Modbus Serial Line: висновки

30.03.2015 NET – Modbus Serial [email protected]

27

• (+) відкритий, велика кількість підтримуваних пристроїв з вбудованим протоколом;

• (+) базується на стандартних промислових інтерфейсах, промислові умови експлуатації;

• (+) відкритий та простий, можливість самостійної реалізації; • (+) детермінований, можливо визначити час доставки;

• (-) порівняно повільний (9600 біт/с, 19200 біт/с); • (-) великі витрати на обробку: для періодичного оновлення кожен раз

формування запиту і його обробка; неможливість буферного підходу (як в Prfibus, CANOpen);

• (-) тільки один клієнт на всю мережу; • (-) обмежена кількість об'єктів обміну (змінних); • (-) недостатня жорсткість вимог і не дотримання обов'язкових вимог

стандарту (із-за відсутності ліцензування) – часта несумісність засобів (наприклад "отвори" в областях змінних, малі буфери для кадрів)

• (-) не достатньо продумані сервіси конфігурування, відсутність команд управління вузлом …

• ….