3 3 modbus tcp
TRANSCRIPT
Промислові мережі та інтеграційні технології
MODBUS on TCP/IP реєстрація [email protected]
автор і лектор: Олександр Пупена ([email protected]) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
07.04.2015 NET - ModbusTCP
Modbus on TCP/IP
07.04.2015 NET - ModbusTCP
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?
Modbus on TCP/IP комунікаційна архітектура
07.04.2015 NET - ModbusTCP
• Різні типи пристроїв: • 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
Які типи пристроїв можна з'єднати в мережу?
Modbus on TCP/IP формат повідомлення
07.04.2015 NET - ModbusTCP
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, однак може бути призначеним на інший
Як передаються запити і відповіді?
Modbus on TCP/IP модель зв'язку
07.04.2015 NET - ModbusTCP
Стандартним серверним портом є TCPпорт = 502, однак може бути призначеним на інший
Як функціонує весь стек протоколів?
Modbus on TCP/IP vs Modbus RTU/ASCII over TCP/IP
07.04.2015 NET - ModbusTCP
Modbus RTU/ASCII over TCP/IP в стандартах Modbus.ORG не описані
Яка різниця між Modbus TCP/IP та Modbus RTU/ASCII over TCP/IP ?
функ
ція
03 00 00
адреса
початкового
регістру
кількість
регістрів
00 03 05
Unit
ID
TCP Header 06 00 00 00 XX XX
Transaction
ID
Protocol
ID length
MBAP Header MODBUS PDU
функ
ція
03 00 00
адреса
початкового
регістру
кількість
регістрів
00 03 05
адре
са
Slave
04 4F
контрольн
а сума
TCP Header
RTU RTU MODBUS PDU
Modbus TCP/IP
Modbus RTU/ASCII over TCP/IP (не описаний в MODBUS.ORG)
Modbus on TCP/IP: варіанти реалізації
07.04.2015 NET - ModbusTCP
Яким чином може бути доступний Modbus on TCP в пристрої?
- у всіх пристроях повинен бути присутній TCP/IP як правило з Ethernet - для непрограмованих пристроїв (периферії, приводів, засобів
вводу/виводу): прошитий на рівні мікропрограми чи ОС пристрою, або його модулю;
- для ПЛК може бути присутній у вигляді: - прошитих в ОС ПЛК функцій як Клієнт так і Сервер; - прошитих в комунікаційний модуль функцій як Клієнт так і Сервер; - бібліотечної функції як Клієнт так і Сервер; - самописної функції як Клієнт так і Сервер;
- для SCADA/HMI може бути присутній у вигляді: - драйверу протоколу, як правило Клієнт (рідко Сервер); - проміжного шлюзу (наприклад OPC, DDE)
Modbus on TCP/IP: приклад програмної реалізації клієнта
07.04.2015 NET - ModbusTCP
AI0
…
AI3
MW200
…
MW207
VIPA Speed7 NET
AI 4x12 bits IM253-NET
VIPA System 200V
IP=192.168.0.2
IP=192.168.0.1 VIPA S7 NET VIPA System 200v
кросс-кабель UTP
NET X5 (PG/OP)
X2 (MP2I)
X8 (TP)
X3 (PB-DP)
AI 4
x12
bit
s Рис.6.30. Схема мережних з’єднань до
прикладу 6.7
IM 2
53
-N
ET
Для реалізації обміну: • конфігурують з’єднувальні канали (Connections) • для кожного каналу вказують:
• локальний процесор, для якого конфігурується канал (порт TP);
• точку виходу в мережу, тобто комунікаційний модуль; • ідентифікатор з’єднання; • активність з’єднання, тобто чи ініціює даний вузол
з’єднання; • адреса комунікаційного партнеру, з яким настроюється
з’єднання (IP та TCP port); • локальний TCP port для з’єднання.
Modbus on TCP/IP: приклад програмної реалізації клієнта
07.04.2015 NET - ModbusTCP
Рис.6.33. Блок DB11 для отримання відповіді серверу MODBUS (до прикладу
6.7).
Рис.6.31. Блок DB10 для формування клієнтського запиту MODBUS до прикладу 6.7.
Modbus on TCP/IP: приклад програмної реалізації клієнта
07.04.2015 NET - ModbusTCP
Рис.6.32. Частина програми (Network1-3),
яка відповідає за відправку запитів, (до
прикладу 6.7).
Modbus on TCP/IP: приклад програмної реалізації клієнта
07.04.2015 NET - ModbusTCP
Рис.6.34. Частина програми (Network4-5), яка відповідає за отримання відповіді з
вхідного буферу комунікаційного модулю (до прикладу 6.7).
Modbus on TCP/IP: висновки
07.04.2015 NET - ModbusTCP
• (+) плюси ті самі що в Modbus Serial Line • (+) як правило базується на Ethernet – висока швидкість; • (+) TCP/IP – легка інтеграція в систему, використання плюсів
маршрутизації; • (+) немає обмежень на кількість клієнтів в мережі, на одному пристрої
може бути і клієнт і сервер;
• (-) великі витрати на обробку: для періодичного оновлення кожен раз формування запиту і його обробка; неможливість буферного підходу (як в Prfibus, CANOpen); TCP vs UDP
• (-) обмежена кількість об'єктів обміну (змінних); • (-) недостатня жорсткість вимог і не дотримання обов'язкових вимог
стандарту (із-за відсутності ліцензування) – часта несумісність засобів (наприклад "отвори" в областях змінних)
• (-) не достатньо продумані сервіси конфігурування, відсутність команд управління вузлом …
• (-) як правило базується на Ethernet – на сьогоднішній день пристрої з Ethernet дорожче аналогічних з RS-485; якщо Ethernet не промисловий, може не працювати в промислових умовах;
• ….