Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
3 3 modbus tcp
1. Промислові мережі та інтеграційні
технології
MODBUS on TCP/IP
реєстрація fieldbus_book@ukr.net
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
1
2. Modbus on TCP/IP
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
2
http://modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf
• Згідно стандартів MODBUS.ORG Modbus on TCP/IP функціонує
поверх стека протоколів TCP/IP, тобто носієм Modbus запитів є
пакети TCP а для адресації вузлів IP-адреси;
• є реалізації Modbus on UDP/IP, однак в стандартах
MODBUS.ORG не описані
• є реалізації Modbus RTU/ASCII over TCP/IP, однак в стандартах
MODBUS.ORG не описані (кадр RTU/ASCII інкапсулюється в
пакет TCP або UDP)
• нижніми рівнями стеку є як правило Ethernet, але це не
обов'язково
Що таке Modbus on TCP/IP?
3. Modbus on TCP/IP комунікаційна архітектура
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
3
• Різні типи пристроїв:
• MODBUS TCP/IP Клієнти і Сервери підключені до мережі TCP/IP;
• міжмережні пристрої типу мостів, маршрутизаторів або шлюзів для
з’єднання TCP/IP мережі з послідовними лініями підмереж, що
дозволяє обмінюватися даними з MODBUS Serial Веденими
• Протоколом Modbus on TCP/IP (Modbus/TCP) передбачена
можливість шлюзування на Modbus RTU/ASCII
• кількість клієнтів і серверів не обмежено на мережу
• один вузол може бути одночасно і клієнтом і сервером
• синонімія понять (історична):
• Modbus TCP/IP Client часто називають Modbus TCP/IP Master
• Modbus TCP/IP Server часто називають Modbus TCP/IP Slave
Які типи пристроїв можна
з'єднати в мережу?
4. Modbus on TCP/IP формат повідомлення
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
4
ADU – Application Data Unit
Поле MBAP
Header
Дов-
жина
(байт)
Пояснення Клієнт Сервер
TransactionID 2
ідентифікація транзакцій
запитів/ відповідей
ініціалізує Клієнт в
запиті
копіює з запиту у
повідомлення -
відповідь
ProtocolID 2
тип протоколу, 0=MODBUS
протокол
ініціалізує Клієнт в
запиті
копіює з запиту у
повідомлення -
відповідь
Length 2 кількість наступних байтів
ініціалізує Клієнт в
запиті
ініціалізує Сервер у
відповіді
UnitID 1
адреса Веденого, який
підключений до вузла (1-
247, 255 або 0 – призначено
самому вузлу
ініціалізує Клієнт в
запиті
копіює з запиту у
повідомлення -
відповідь
MBAP Header = 7 байт
Стандартним серверним портом є TCPпорт = 502, однак може
бути призначеним на інший
Як передаються запити і відповіді?
5. Modbus on TCP/IP модель зв'язку
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
5
Стандартним серверним портом є TCPпорт = 502, однак може
бути призначеним на інший
Як функціонує весь стек протоколів?
6. Modbus on TCP/IP vs Modbus RTU/ASCII over TCP/IP
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
6
Modbus RTU/ASCII over TCP/IP в стандартах Modbus.ORG не описані
Яка різниця між Modbus TCP/IP та Modbus RTU/ASCII over TCP/IP ?
функ
ція
03 00 00
адреса
початкового
регістру
кількість
регістрів
00 0305
Unit
ID
TCP Header 06000000XXXX
Transaction
ID
Protocol
ID
length
MBAP Header MODBUS PDU
функ
ція
03 00 00
адреса
початкового
регістру
кількість
регістрів
00 0305
адре
са
Slave
04 4F
контрольн
а сума
TCP Header
RTU RTUMODBUS PDU
Modbus TCP/IP
Modbus RTU/ASCII over TCP/IP (не описаний в MODBUS.ORG)
7. Modbus on TCP/IP: приклад налаштування (1)
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
7
8. Modbus on TCP/IP: приклад налаштування (2)
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
8
9. Modbus on TCP/IP: варіанти реалізації
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
9
Яким чином може бути доступний Modbus on TCP в пристрої?
- у всіх пристроях повинен бути присутній TCP/IP як правило з Ethernet
- для непрограмованих пристроїв (периферії, приводів, засобів
вводу/виводу): прошитий на рівні мікропрограми чи ОС пристрою, або
його модулю;
- для ПЛК може бути присутній у вигляді:
- прошитих в ОС ПЛК функцій як Клієнт так і Сервер;
- прошитих в комунікаційний модуль функцій як Клієнт так і Сервер;
- бібліотечної функції як Клієнт так і Сервер;
- самописної функції як Клієнт так і Сервер;
- для SCADA/HMI може бути присутній у вигляді:
- драйверу протоколу, як правило Клієнт (рідко Сервер);
- проміжного шлюзу (наприклад OPC, DDE)
10. Modbus on TCP/IP: приклад програмної реалізації
клієнта
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
10
AI0
…
AI3
MW200
…
MW207
VIPA Speed7 NET
AI 4x12 bitsIM253-NET
VIPA System 200V
IP=192.168.0.2
IP=192.168.0.1VIPA S7 NET VIPA System 200v
кросс-кабель UTP
NETX5
(PG/OP)
X2
(MP2I)
X8
(TP)
X3
(PB-DP)
AI4x12bits
Рис.6.30. Схема мережних з’єднань до
прикладу 6.7
IM253-
NET
Для реалізації обміну:
• конфігурують з’єднувальні канали (Connections)
• для кожного каналу вказують:
• локальний процесор, для якого конфігурується канал (порт
TP);
• точку виходу в мережу, тобто комунікаційний модуль;
• ідентифікатор з’єднання;
• активність з’єднання, тобто чи ініціює даний вузол
з’єднання;
• адреса комунікаційного партнеру, з яким настроюється
з’єднання (IP та TCP port);
• локальний TCP port для з’єднання.
11. Modbus on TCP/IP: приклад програмної реалізації
клієнта
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
11
Рис.6.33. Блок DB11 для отримання відповіді серверу MODBUS (до прикладу
6.7).
Рис.6.31. Блок DB10 для формування клієнтського запиту MODBUS до прикладу 6.7.
12. Modbus on TCP/IP: приклад програмної реалізації
клієнта
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
12
Рис.6.32. Частина програми (Network1-3),
яка відповідає за відправку запитів, (до
прикладу 6.7).
13. Modbus on TCP/IP: приклад програмної реалізації
клієнта
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
13
Рис.6.34. Частина програми (Network4-5), яка відповідає за отримання відповіді з
вхідного буферу комунікаційного модулю (до прикладу 6.7).
14. Modbus on TCP/IP: висновки
07.04.2015
NET - ModbusTCP
pupena_san@ukr.net
14
• (+) плюси ті самі що в Modbus Serial Line
• (+) як правило базується на Ethernet – висока швидкість;
• (+) TCP/IP – легка інтеграція в систему, використання плюсів
маршрутизації;
• (+) немає обмежень на кількість клієнтів в мережі, на одному пристрої
може бути і клієнт і сервер;
• (-) великі витрати на обробку: для періодичного оновлення кожен раз
формування запиту і його обробка; неможливість буферного підходу (як
в Prfibus, CANOpen); TCP vs UDP
• (-) обмежена кількість об'єктів обміну (змінних);
• (-) недостатня жорсткість вимог і не дотримання обов'язкових вимог
стандарту (із-за відсутності ліцензування) – часта несумісність засобів
(наприклад "отвори" в областях змінних)
• (-) не достатньо продумані сервіси конфігурування, відсутність команд
управління вузлом …
• (-) як правило базується на Ethernet – на сьогоднішній день пристрої з
Ethernet дорожче аналогічних з RS-485; якщо Ethernet не промисловий,
може не працювати в промислових умовах;
• ….