SlideShare a Scribd company logo
Промислові мережі та інтеграційні
технології
Мережі та протокол
MODBUS
реєстрація fieldbus_book@ukr.net
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
30.03.2015 NET - Modbus pupena_san@ukr.net 1
Історія Modbus: PLC Modicon
30.03.2015 NET - Modbus pupena_san@ukr.net 2
DO
прикладна
програма
Discrete Outputs
(Coils) 0x
Discrete Inputs
1x
Input Registers
3x
Output (Holding)
Registers 4x
пам'ѐть
DI
AI
AO
PLC Modicon
Створений в 1978 Modicon Inc. (тоді Gould
Electronics зараз в складі Schneider Electric) длѐ
обміну між ПЛК та іншими пристроѐми по
інтерфейсу RS232
Modbus – MODicon BUS
Modicon 984 PLC Memory
Де і коли з'ѐвивсѐ Modbus?
Історія Modbus: PLC Modicon деталі адресації
30.03.2015 NET - Modbus pupena_san@ukr.net 3
• Кожна область пам'ѐті (0x, 1x, 3x, 4x)
починається з 1
• область 0x, 1x (біти) – адресаціѐ побітова
• область 3x, 4x (регістри) – адресаціѐ по
словам
• область 1x, 3x (входи) – доступна тільки для
читання
DO
прикладна
програма
Discrete Outputs
(Coils) 0x
Discrete Inputs
1x
Input Registers
3x
Output (Holding)
Registers 4x
пам'ѐть
DI
AI
AO
PLC Modicon
000001
000002
…
100001
100002
…
300001
300002
…
400001
400002
…
У ѐкій послідовності
розміщені дані в Modicon?
прикладна
програма
РеалізаціяMODBUS
Історія Modbus: доступ до даних (data) контролерів
Modicon
30.03.2015 NET - Modbus pupena_san@ukr.net 4
ПЛК/ОП/ПК SCADA
читання/запис Coils
читання/запис Holding Registers
читання Discrete Inputs
читання Input Registers
Мережа Modbus
Призначеннѐ – читаннѐ/запис
комірок пам'ѐті контролерів
Modicon, зчитуваннѐ діагностичних
даних
Яке призначеннѐ Modbus?
Modbus: розвиток та стандартизація
30.03.2015 NET - Modbus pupena_san@ukr.net 5
Розвиток
• 1978 – виникненнѐ Modbus (поверх RS-232)
• Modbus RTU/ASCII (RS232, RS485 …)
• Modbus + (Modbus Plus)
• Modbus TCP/IP
Стандартизація
• з самого початку – відкритий, став стандартом де-факто
• 2005 - Modbus-IDA (зараз Modbus Organization, Inc)
www.modbus.org
• 2010 - IEC 61784-5-15 specifies the installation profiles for
CPF 15/1 (MODBUS -TCP) and CPF 15/2 (RTPS).
http://webstore.iec.ch/preview/info_iec61784-5-
15%7Bed1.0%7Den.pdf
Як розвивавсѐ?
Мережі на основі протоколу Modbus
30.03.2015 NET - Modbus pupena_san@ukr.net 6
www.Modbus.org
Длѐ всіх мереж спільний протокол прикладного рівнѐ* (Application Layer) –
Modbus Protocol
*Протокол прикладного рівнѐ – система
правил взаюмодії прикладних процесів
(програм).
http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
Які мережі?
Сервіси(функції) Modbus
30.03.2015 NET - Modbus pupena_san@ukr.net 7
Сервіси* (функції)
• читаннѐ Discrete Inputs (1x)
• читаннѐ/запис Coils (0x)
• читаннѐ Input Registers (3x)
• читаннѐ/запис Outputs (Holding) Registers (4x)
• читаннѐ/запис записів файлів
• ідентифікаціѐ пристроя
• читаннѐ діагностичної інформації
• додаткові
Два типи прикладних процесів (програм):
• Modbus Server – виконую Modbus-
функції: надаю доступ до даних
(процесу, діагностичних…) на пристрої
длѐ читаннѐ/запису а також до інших
команд
• Modbus Client – ініціяю виконаннѐ
функцій Modbus Server'а: доступаютьсѐ
до його даних та може ініціявати
виконаннѐ команди на ньому
Modbus Client Modbus Server
обмін даними
процесу
обмін
параметрични
ми даними
діагностичні
сервіси
керування
режимом
пристрою
Комунікаційний сервіс * – послуги, що надаються комунікацією пристрою або
його частиною (мережною картою, драйвером, функцією…). Сервіси прикладного
рівня – послуги що надається прикладним рівнем.
Які сервіси?
Modbus архітектура
30.03.2015 NET - Modbus pupena_san@ukr.net 8
різні типи засобів: контролери (PLC), SCADA/HMI,
розподілений ввід/вивід (I/O), електроприводи
(Drive), інші засоби (Device)
Які засоби?
Modbus Protocol – відкритий протокол
30.03.2015 NET - Modbus pupena_san@ukr.net 9
• не тільки Modicon (Schneider Electric)
• доступний будь-ѐкому розробнику та інтегратору
• популѐрність (реалізований практично у всіх
брендах)
• реалізовуютьсѐ різними способами (відкритий
програмний код, мікропрограма, частина
операційної системи…)
Modbus
PLCPLC PLCPLC
регулѐторперетворявач
частоти
розподілений
ввід/вивід
SCADA/HMI
Які виробники, тільки Modicon?
Приклади моделі даних (data) різних пристроїв,
що підтримують Modbus Protocol
30.03.2015 NET - Modbus pupena_san@ukr.net 10
AI
Q (QW, QX…)
I (IW, IX…)
DB/DI
Timers, Counters…
пам'ѐть
DO
PLC S7 300
РеалізаціяMODBUS
M (MW,MX…)
DI
AO
AI
%IW
%MW
Unlocated
пам'ѐть
DO
PLC M340
РеалізаціяMODBUS
%M
DI
AO
%I
%QW %Q
M1
Перетворявач частоти
пам'ѐть
РеалізаціяMODBUS
задана частота
дійсна частота
напруга на двигуні
струм на двигуні
Засоби зовсім різні, хіба у них не різна модель даних?
Модель даних пристроїв vs моделі даних PLC Modicon
30.03.2015 NET - Modbus pupena_san@ukr.net 11
те саме?
те саме?
Це не дискретні
входи чи виходи,
не аналогові
входи чи виходи.
Тоді що це?
Якщо дані пристрої
підтримують
протокол Modbus,
то ми можемо
наприклад
прочитати/записат
и їх дискретні
виходи чи не так?
Хоч це теж Modicon!
Доступ до даних пристроїв через Modbus?
30.03.2015 NET - Modbus pupena_san@ukr.net 12
прикладна
програма
До чого тоді ми
звертаємось коли
наприклад читаємо
або пишемо Coils?
В якому розділі
стандарту це можна
дізнатися?
Принципи Modbus Mapping (Відображення даних)
30.03.2015 NET - Modbus pupena_san@ukr.net 13
фізична пам'ѐть
Пристрій
РеалізаціѐMODBUS
"віртуальна" пам'ѐть Modbus
Discrete Outputs
(Coils) 0x
Discrete Inputs
1x
Input Registers
3x
Output (Holding)
Registers 4x
читаннѐ Discrete Inputs
читаннѐ Input Registersприкладна
програма
область 1
область 2
область 4
…
область 3
область n
Modbus Mapping
Modbus Mapping (Відображення) – зв'ѐзуваннѐ реальних
даних пристроя до "віртуальних" даних Modbus
Modbus Mapping длѐ пристроїв не визначене в протоколі, і
робиться виробником пристрою довільно (читай
документація до пристроя)
До чого тоді ми звертаємось коли
наприклад читаємо або пишемо Coils?
В якому розділі стандарту це можна
дізнатися?
Можливі варіанти Modbus Mapping
30.03.2015 NET - Modbus pupena_san@ukr.net 14
Є якісь "стандартні" підходи до Mapping?
Приклади Modbus Mapping (ПЛК M340)
30.03.2015 NET - Modbus pupena_san@ukr.net 15
Modbus Modicon
Momentum/
Quantum
Micro/Premium/M
340/ Twido
Input
Discrete
1X %M
Coils 0X %M
Input
Registers
3X %MW
Holding
Registers
4X %MW
пам'ѐть
PLC M340
%M0…
РеалізаціѐMODBUS
"віртуальна" пам'ѐть Modbus
Discrete Outputs
(Coils) 0x00001…
Discrete Inputs
1x00001…
Input Registers
3x00001…
Output (Holding)
Registers 4x00001…
%MW0…
• Реалізаціѐ на рівні операційної системи;
• жорстка (неналаштовувана) прив'ѐзка;
• прѐмий доступ тільки до %M та %MW
Приклади Modbus Mapping (ПЛК VIPA)
30.03.2015 NET - Modbus pupena_san@ukr.net 16
• реалізаціѐ на рівні модулѐ/каналу
та ОС;
• взаюмодіѐ та прив'ѐзка через
функції (SEND/RECV): SEND –
оновленнѐ даних у буфері входів
(1x,3x) або виходів (0x, 4x), RECV –
отриманнѐ даних з буферів
виходів (0x, 4x);
• прѐмий доступ до даних ПЛК
відсутній, тільки через вказівник в
аргументі функції (SEND/RECV)
Приклади Modbus Mapping (ПЧ Altivar)
30.03.2015
NET - Modbus pupena_san@ukr.net 17
пам'ѐть
РеалізаціѐMODBUS
"віртуальна" пам'ѐть
Modbus
Output
(Holding)
Registers
4x00001…
змінні контроля,
керуваннѐ,
діагностуваннѐ,
конфігуруваннѐ
Перетворявач частоти ATV31
M1
• реалізаціѐ на рівні модулѐ/каналу
та прошивки;
• жорстка (неналаштовувана)
прив'ѐзка;
• прѐмий доступ до всіх даних
пристроя (використовуютьсѐ длѐ
контроля/керуваннѐ
конфігуруваннѐ та діагностики);
• підтримую тільки читаннѐ/запис
Holding Registers
Функціонування протоколу Modbus: запит-відповідь
30.03.2015 NET - Modbus pupena_san@ukr.net 18
Два типи прикладних процесів (програм):
• Modbus Server – виконую Modbus-функції: надаю доступ до даних (процесу, діагностичних…) на пристрої длѐ
читаннѐ/запису а також до інших команд
• Modbus Client – ініціяю виконаннѐ функцій Modbus Server'а: доступаютьсѐ до його даних та може ініціявати
виконаннѐ команди на ньому
Два типи прикладних процесів (програм):
• Modbus Client – ініціяю повідомленнѐ-запити (request) до
Modbus Server'а на виконаннѐ функцій
• Modbus Server – приймаю повідомленнѐ-запити, виконую
вказані в запиті Modbus-функції, та формую повідомленнѐ-
відповідь (response)
Як функціонує Modbus протокол?
Приклад запиту на читання Holding Registers
30.03.2015 NET - Modbus pupena_san@ukr.net 19
Discrete Outputs
(Coils) 0x
Discrete Inputs
1x
Input Registers
3x
Output (Holding)
Registers 4x
дані Modbus
MODBUSServer
Modbus
Client
Необхідно прочитати значеннѐ Holding Registers з 400108
по 400110 (3 шт)
1.Запит Кліюнт у до Серверу:
функ
ціѐ
03
читати Holding Registers
00 6B
адреса
початкового
регістру
HI LO
*починаячи з 107
кількість
регістрів
00 03
HI LO
3 штуки
2.Відповідь від Серверу до Кліюнту: відповідь на читаннѐ Holding Registers
функ
ціѐ
03
передая 6 байт
06
лічил
ьник
дані
значеннѐ регістрів
СD 6B
400108-й 400109-й
00 05 00 64
400110-й
*адресаціѐ регістрів починаютьсѐ з 1, але в запиті з 0
1
2
Як проводиться читання?
Приклади. Функція 01HEX, 10HEX
30.03.2015 NET - Modbus pupena_san@ukr.net 20
Записати значеннѐ 3-х Holding Registers (400108, 400109, 400110)
кількість
бітів
функ
ціѐ
01 00 13
адреса
початковог
о біту
00 14
HI LO HI LO
повідомлення-запит
значеннѐ бітівфунк
ціѐ
01 03 СD
лічил
ьник
6B
27-20
позитивне повідомлення-
відповідь
39-3635-28
Формат повідомлень длѐ запиту читаннѐ статусу Coils (0x)
05
Як проводиться Coils?
Як проводиться запис Holding Registers?
Приклади. Функція 17HEX(23DEC)
30.03.2015 NET - Modbus pupena_san@ukr.net 21
Прочитати значеннѐ 3-х Holding Registers (400108, 400109, 400110) і
записати 400201-й і 400202-й.
А можна прочитати і записати за один запит?
Помилка обробки запиту
30.03.2015 NET - Modbus pupena_san@ukr.net 22
кількість
бітів
функ
ціѐ
01 00 13
адреса
початковог
о біту
00 14
HI LO HI LO
повідомлення-запит
значеннѐ бітівфунк
ціѐ
01 03 СD
лічил
ьник
6B
27-20
позитивне повідомлення-
відповідь
39-3635-28
05
Якщо вдале виконання функції
– код функції повторюється у
повідомленні-відповіді
Код Назва Опис
01 ILLEGAL FUNCTION Прийнѐтий код функції не може бути оброблений на Сервері
02
ILLEGAL DATA
ADDRESS
Адреса даних вказана в запиті не доступна даному Серверу .
03
ILLEGAL DATA
VALUE
Величина, вміщена в полі даних запиту ѐвлѐютьсѐ не
допустимоя величиноя длѐ Серверу .
04
SLAVE DEVICE
FAILURE
Невиправна помилка мала місце поки Сервер намагавсѐ
виконати дія запиту.
05 ACKNOWLEDGE
Сервер прийнѐв запит і оброблѐю його, але необхідний
певний час. Цѐ відповідь захищаю Кліюнта від генерації
помилки тайм-ауту.
06 SLAVE DEVICE BUSY
Сервер зайнѐтий обробкоя команди, Кліюнт повинен
повторити запит пізніше.
07
NEGATIVE
ACKNOWLEDGE
Невдалий програмний запит (длѐ функцій 13 і 14).
08
MEMORY PARITY
ERROR
Сервер хоче читати розширену пам’ѐть, але знайшов помилку
паритету.
функ
ціѐ
81 02
код
поми
лки
ERR
відповідь з
помилкою
Якщо НЕвдале виконання функції –
код_функції_у_ відповіді = код_функції_в+запиті + 80HEX
01HEX + 80HEX = 81HEX
А може бути, що запит не обробиться?
ILL DATA
ADDR
Змінні Modbus і Коди функцій
30.03.2015 NET - Modbus pupena_san@ukr.net 23
Які ще функції прописані в протоколі Modbus?
Мадбаский алфавит
30.03.2015 NET - Modbus pupena_san@ukr.net 24
Спасибо
учител!
Унимательнэе буд !
Трёшки реадай четворкой,
а четворки - тройкой.
А нол - это адин!
Мадбаский алфавит.
asu.in.ua
4x
3x
функ
ціѐ
03 00 00
адреса
початкового
регістру
HI LO
кількість
регістрів
00 03
HI LO
Читаннѐ Holding Registers з 400001
Щось трохи заплутано…
HI та LO?
30.03.2015 NET - Modbus pupena_san@ukr.net 25
Терміни big-endian і little-endian запозичено у Джонатана Свіфта з його
сатиричного твору «Мандри Гуллівера», де описуятьсѐ держави
Ліліпутіѐ і Блефуску, що вели між собоя протѐгом багатьох років війни
через розбіжності з приводу того, з ѐкого кінцѐ слід розбивати варені
ѐйцѐ («гострого» чи «тупого» кінцѐ («little-» and «big-endians»)).
функ
ціѐ
03 06
лічил
ьник
значеннѐ регістрів
СD 6B 00 05 00 64
HI LO HI LO HI LO
http://uk.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_
%D0%B1%D0%B0%D0%B9%D1%82%D1%96%D0%B2
Motorola-формат
Наприклад Simatic
S7-300/400
Intel-формат
Наприклад Modicon
M340/Premium
Порядок передачі байтів для регістрів визначений протоколом
Modbus - спочатку HI потім LO (big-Endian)!
Що таке HI і LO, навіщо мені про них знати?
Чому саме big-endian і little-endian, причому тут великі та малі
індійці?
Проблема доступу до REAL, DOUBLE та інших типів
30.03.2015 NET - Modbus pupena_san@ukr.net 26
фізична пам'ѐть
Пристрій
РеалізаціѐMODBUS
"віртуальна" пам'ѐть Modbus
Discrete Outputs
(Coils) 0x
Discrete Inputs
1x
Input Registers
3x
Output (Holding)
Registers 4x
REAL0…
DINT…
• REAL (4 байти)
• REAL8 (8 байт)
• DINT/UDINT/DWORD (4 байти)
• STRING
• ARRAY
• STRUCTURE
• …
…
HI
функ
ціѐ
03 06
лічил
ьник
два підрѐд регістри –
ѐк одне значеннѐ
СD 6B 00 05
LO HI LO
Для зчитування REAL, DINT, UDINT,
DWORD запитують підряд два
регістри.
HI або LO LO або HI
Який регістр буде йти першим старший чи
молодший, адже це не визначено протоколом?
У моделі пам'яті Modbus немає
таких даних!
Я розумію як читати та писати BOOL, INT/UINT, а як читати інші дані?
Доступу до REAL, DOUBLE та інших типів – порядок байт
30.03.2015 NET - Modbus pupena_san@ukr.net 27
функ
ціѐ
03 06
лічил
ьник
значеннѐ регістрів
СD 6B 00 05
HI LO HI LO
HI або LO LO або HI
Порядок регістрів визначається в самих засобах, де
реалізований протокол Modbus!
Який регістр буде йти першим старший чи молодший, адже це не визначено протоколом?
REAL, DOUBLE – приклад впливу порядку байт
30.03.2015 NET - Modbus pupena_san@ukr.net 28
НЕспівпадіння на
Клієнті і Сервері
співпадіння на Клієнті і
Сервері
Що буде, якщо я вкажу порядок що не співпадає з джерелом даних?
Зміна порядку байт в програмованих контролерах
30.03.2015 NET - Modbus pupena_san@ukr.net 29
У програмованих контролерах порѐдок байт зміняютьсѐ програмно
перед відправкоя чи післѐ прийому. Можна використати функції IEC-
61131-3 ROR та ROL
a_word:=ROL(2#0001_0010_0000_1111,4) -> 2#0010_0000_1111_0001
функ
ціѐ
03 06
лічил
ьник
значеннѐ регістрів
СD 6B 00 05
HI LO HI LO
HI або LO LO або HI
Simatic S7-300/400 Modicon M340
Як це налаштовується в програмованих контролерах?
Modbus протокол і мережі
30.03.2015 NET - Modbus pupena_san@ukr.net 30
А як процес передасть дані іншому процесу, якщо вони знаходяться на різних пристроях ?

More Related Content

What's hot

1.2 функції, градація промислових мереж
1.2 функції, градація промислових мереж1.2 функції, градація промислових мереж
1.2 функції, градація промислових мережПупена Александр
 
Підсистема введення/виведення SCADA/HMI. Modbus
Підсистема введення/виведення SCADA/HMI. ModbusПідсистема введення/виведення SCADA/HMI. Modbus
Підсистема введення/виведення SCADA/HMI. ModbusПупена Александр
 
1.1 призначення промислових комунікацій
1.1 призначення промислових комунікацій1.1 призначення промислових комунікацій
1.1 призначення промислових комунікаційПупена Александр
 
Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Lesia Sobolevska
 
лр2 асинхронні послідовні інтерфейси.
лр2 асинхронні послідовні інтерфейси.лр2 асинхронні послідовні інтерфейси.
лр2 асинхронні послідовні інтерфейси.Пупена Александр
 
Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Lesia Sobolevska
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична роботаAnna Popravka
 

What's hot (20)

2 2 символьний обмін
2 2 символьний обмін2 2 символьний обмін
2 2 символьний обмін
 
5.1 profibus intro
5.1 profibus intro5.1 profibus intro
5.1 profibus intro
 
4 3 tcp udp
4 3 tcp udp4 3 tcp udp
4 3 tcp udp
 
4 2 3 ip
4 2 3 ip 4 2 3 ip
4 2 3 ip
 
4 2 1 Протоколи IP (частина 1)
4 2 1 Протоколи IP (частина 1)4 2 1 Протоколи IP (частина 1)
4 2 1 Протоколи IP (частина 1)
 
1.2 функції, градація промислових мереж
1.2 функції, градація промислових мереж1.2 функції, градація промислових мереж
1.2 функції, градація промислових мереж
 
Підсистема введення/виведення SCADA/HMI. Modbus
Підсистема введення/виведення SCADA/HMI. ModbusПідсистема введення/виведення SCADA/HMI. Modbus
Підсистема введення/виведення SCADA/HMI. Modbus
 
4 4 1 app
4 4 1 app 4 4 1 app
4 4 1 app
 
1.1 призначення промислових комунікацій
1.1 призначення промислових комунікацій1.1 призначення промислових комунікацій
1.1 призначення промислових комунікацій
 
1 4 фізичний рівень
1 4 фізичний рівень1 4 фізичний рівень
1 4 фізичний рівень
 
4 4 s security
4 4 s security 4 4 s security
4 4 s security
 
5.3 profibus dp0
5.3 profibus dp05.3 profibus dp0
5.3 profibus dp0
 
лр3 основи modbus
лр3 основи modbusлр3 основи modbus
лр3 основи modbus
 
5.2 PROFIBUS фізичний рівень
5.2 PROFIBUSфізичний рівень5.2 PROFIBUSфізичний рівень
5.2 PROFIBUS фізичний рівень
 
лр4 основи modbus
лр4 основи modbusлр4 основи modbus
лр4 основи modbus
 
Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Computers and Computing Works lecture №9
Computers and Computing Works lecture №9
 
лр2 асинхронні послідовні інтерфейси.
лр2 асинхронні послідовні інтерфейси.лр2 асинхронні послідовні інтерфейси.
лр2 асинхронні послідовні інтерфейси.
 
Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Computers and Computing Works lecture №8
Computers and Computing Works lecture №8
 
Profibus (УКР)
Profibus (УКР)Profibus (УКР)
Profibus (УКР)
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 

Similar to 3 1 Modbus Protocol

5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPCПупена Александр
 
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаHelen Pata
 
network
networknetwork
networkjudin
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIПупена Александр
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
 
урок 27
урок 27урок 27
урок 27Serega89
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераМаксим Павленко
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform ArchitecturePavel Bashmakov
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатикиTanyushka Bora-Bora
 
Тренди розвитку АСУТП в 4-ій промисловій
Тренди розвитку АСУТП в 4-ій промисловійТренди розвитку АСУТП в 4-ій промисловій
Тренди розвитку АСУТП в 4-ій промисловійAPPAU_Ukraine
 
Хмарні сервіси
Хмарні сервісиХмарні сервіси
Хмарні сервісиOleh
 
Lec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних системLec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних системcit-cit
 
комп мережі 9 клас
комп мережі 9 клас комп мережі 9 клас
комп мережі 9 клас NataKvasha
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьcit-cit
 

Similar to 3 1 Modbus Protocol (20)

5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
 
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережа
 
Opc
OpcOpc
Opc
 
network
networknetwork
network
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
урок 27
урок 27урок 27
урок 27
 
лр6 використання modbus для scada
лр6 використання modbus для scada лр6 використання modbus для scada
лр6 використання modbus для scada
 
2
22
2
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатики
 
Тренди розвитку АСУТП в 4-ій промисловій
Тренди розвитку АСУТП в 4-ій промисловійТренди розвитку АСУТП в 4-ій промисловій
Тренди розвитку АСУТП в 4-ій промисловій
 
Хмарні сервіси
Хмарні сервісиХмарні сервіси
Хмарні сервіси
 
Lec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних системLec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних систем
 
комп мережі 9 клас
комп мережі 9 клас комп мережі 9 клас
комп мережі 9 клас
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
пIм метод лаб2112
пIм метод лаб2112пIм метод лаб2112
пIм метод лаб2112
 
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
 
Dbase
DbaseDbase
Dbase
 

More from Пупена Александр

Розроблення підсистеми трендів
Розроблення підсистеми трендівРозроблення підсистеми трендів
Розроблення підсистеми трендівПупена Александр
 
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenonПупена Александр
 
8 Розробка підсистеми тривожної сигналізації
8 Розробка підсистеми тривожної сигналізації8 Розробка підсистеми тривожної сигналізації
8 Розробка підсистеми тривожної сигналізаціїПупена Александр
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігаціяПупена Александр
 
Розроблення дисплеїв та анімованих елементів
Розроблення дисплеїв та анімованих елементівРозроблення дисплеїв та анімованих елементів
Розроблення дисплеїв та анімованих елементівПупена Александр
 
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПупена Александр
 
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІПупена Александр
 
2.1. Функції графічного людино-машинного інтерфейсу
2.1. Функції графічного людино-машинного інтерфейсу2.1. Функції графічного людино-машинного інтерфейсу
2.1. Функції графічного людино-машинного інтерфейсуПупена Александр
 
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-REDМастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-REDПупена Александр
 
Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Пупена Александр
 
Git и GitHub для создания учебного контента
Git и GitHub для создания учебного контентаGit и GitHub для создания учебного контента
Git и GitHub для создания учебного контентаПупена Александр
 
Короткий опис лабораторного практикуму по MOM
Короткий опис лабораторного практикуму по MOMКороткий опис лабораторного практикуму по MOM
Короткий опис лабораторного практикуму по MOMПупена Александр
 
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0 Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0 Пупена Александр
 

More from Пупена Александр (20)

Node-RED довідник
Node-RED довідникNode-RED довідник
Node-RED довідник
 
Інші підсистеми
Інші підсистемиІнші підсистеми
Інші підсистеми
 
11 Підсистеми захисту
11 Підсистеми захисту11 Підсистеми захисту
11 Підсистеми захисту
 
Розроблення підсистеми трендів
Розроблення підсистеми трендівРозроблення підсистеми трендів
Розроблення підсистеми трендів
 
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon
9 Приклади підсистеми тривожної сигналізації в SCADA Citect і SCADA zenon
 
8 Розробка підсистеми тривожної сигналізації
8 Розробка підсистеми тривожної сигналізації8 Розробка підсистеми тривожної сигналізації
8 Розробка підсистеми тривожної сигналізації
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігація
 
Розроблення дисплеїв та анімованих елементів
Розроблення дисплеїв та анімованих елементівРозроблення дисплеїв та анімованих елементів
Розроблення дисплеїв та анімованих елементів
 
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часі
 
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ
2_3 Функції графічного людино-машинного інтерфейсу: високоефективний ЛМІ
 
2 2 Інші функції SCADA/HMI
2 2 Інші функції SCADA/HMI2 2 Інші функції SCADA/HMI
2 2 Інші функції SCADA/HMI
 
2.1. Функції графічного людино-машинного інтерфейсу
2.1. Функції графічного людино-машинного інтерфейсу2.1. Функції графічного людино-машинного інтерфейсу
2.1. Функції графічного людино-машинного інтерфейсу
 
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-REDМастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
 
Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0»
 
Git и GitHub для создания учебного контента
Git и GitHub для создания учебного контентаGit и GitHub для создания учебного контента
Git и GitHub для создания учебного контента
 
Короткий опис лабораторного практикуму по MOM
Короткий опис лабораторного практикуму по MOMКороткий опис лабораторного практикуму по MOM
Короткий опис лабораторного практикуму по MOM
 
Git4 all
Git4 allGit4 all
Git4 all
 
Presentation 111019 1
Presentation 111019 1Presentation 111019 1
Presentation 111019 1
 
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0 Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
 
Vebinar isa88
Vebinar isa88Vebinar isa88
Vebinar isa88
 

3 1 Modbus Protocol

  • 1. Промислові мережі та інтеграційні технології Мережі та протокол MODBUS реєстрація fieldbus_book@ukr.net автор і лектор: Олександр Пупена (pupena_san@ukr.net) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua) 30.03.2015 NET - Modbus pupena_san@ukr.net 1
  • 2. Історія Modbus: PLC Modicon 30.03.2015 NET - Modbus pupena_san@ukr.net 2 DO прикладна програма Discrete Outputs (Coils) 0x Discrete Inputs 1x Input Registers 3x Output (Holding) Registers 4x пам'ѐть DI AI AO PLC Modicon Створений в 1978 Modicon Inc. (тоді Gould Electronics зараз в складі Schneider Electric) длѐ обміну між ПЛК та іншими пристроѐми по інтерфейсу RS232 Modbus – MODicon BUS Modicon 984 PLC Memory Де і коли з'ѐвивсѐ Modbus?
  • 3. Історія Modbus: PLC Modicon деталі адресації 30.03.2015 NET - Modbus pupena_san@ukr.net 3 • Кожна область пам'ѐті (0x, 1x, 3x, 4x) починається з 1 • область 0x, 1x (біти) – адресаціѐ побітова • область 3x, 4x (регістри) – адресаціѐ по словам • область 1x, 3x (входи) – доступна тільки для читання DO прикладна програма Discrete Outputs (Coils) 0x Discrete Inputs 1x Input Registers 3x Output (Holding) Registers 4x пам'ѐть DI AI AO PLC Modicon 000001 000002 … 100001 100002 … 300001 300002 … 400001 400002 … У ѐкій послідовності розміщені дані в Modicon?
  • 4. прикладна програма РеалізаціяMODBUS Історія Modbus: доступ до даних (data) контролерів Modicon 30.03.2015 NET - Modbus pupena_san@ukr.net 4 ПЛК/ОП/ПК SCADA читання/запис Coils читання/запис Holding Registers читання Discrete Inputs читання Input Registers Мережа Modbus Призначеннѐ – читаннѐ/запис комірок пам'ѐті контролерів Modicon, зчитуваннѐ діагностичних даних Яке призначеннѐ Modbus?
  • 5. Modbus: розвиток та стандартизація 30.03.2015 NET - Modbus pupena_san@ukr.net 5 Розвиток • 1978 – виникненнѐ Modbus (поверх RS-232) • Modbus RTU/ASCII (RS232, RS485 …) • Modbus + (Modbus Plus) • Modbus TCP/IP Стандартизація • з самого початку – відкритий, став стандартом де-факто • 2005 - Modbus-IDA (зараз Modbus Organization, Inc) www.modbus.org • 2010 - IEC 61784-5-15 specifies the installation profiles for CPF 15/1 (MODBUS -TCP) and CPF 15/2 (RTPS). http://webstore.iec.ch/preview/info_iec61784-5- 15%7Bed1.0%7Den.pdf Як розвивавсѐ?
  • 6. Мережі на основі протоколу Modbus 30.03.2015 NET - Modbus pupena_san@ukr.net 6 www.Modbus.org Длѐ всіх мереж спільний протокол прикладного рівнѐ* (Application Layer) – Modbus Protocol *Протокол прикладного рівнѐ – система правил взаюмодії прикладних процесів (програм). http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf Які мережі?
  • 7. Сервіси(функції) Modbus 30.03.2015 NET - Modbus pupena_san@ukr.net 7 Сервіси* (функції) • читаннѐ Discrete Inputs (1x) • читаннѐ/запис Coils (0x) • читаннѐ Input Registers (3x) • читаннѐ/запис Outputs (Holding) Registers (4x) • читаннѐ/запис записів файлів • ідентифікаціѐ пристроя • читаннѐ діагностичної інформації • додаткові Два типи прикладних процесів (програм): • Modbus Server – виконую Modbus- функції: надаю доступ до даних (процесу, діагностичних…) на пристрої длѐ читаннѐ/запису а також до інших команд • Modbus Client – ініціяю виконаннѐ функцій Modbus Server'а: доступаютьсѐ до його даних та може ініціявати виконаннѐ команди на ньому Modbus Client Modbus Server обмін даними процесу обмін параметрични ми даними діагностичні сервіси керування режимом пристрою Комунікаційний сервіс * – послуги, що надаються комунікацією пристрою або його частиною (мережною картою, драйвером, функцією…). Сервіси прикладного рівня – послуги що надається прикладним рівнем. Які сервіси?
  • 8. Modbus архітектура 30.03.2015 NET - Modbus pupena_san@ukr.net 8 різні типи засобів: контролери (PLC), SCADA/HMI, розподілений ввід/вивід (I/O), електроприводи (Drive), інші засоби (Device) Які засоби?
  • 9. Modbus Protocol – відкритий протокол 30.03.2015 NET - Modbus pupena_san@ukr.net 9 • не тільки Modicon (Schneider Electric) • доступний будь-ѐкому розробнику та інтегратору • популѐрність (реалізований практично у всіх брендах) • реалізовуютьсѐ різними способами (відкритий програмний код, мікропрограма, частина операційної системи…) Modbus PLCPLC PLCPLC регулѐторперетворявач частоти розподілений ввід/вивід SCADA/HMI Які виробники, тільки Modicon?
  • 10. Приклади моделі даних (data) різних пристроїв, що підтримують Modbus Protocol 30.03.2015 NET - Modbus pupena_san@ukr.net 10 AI Q (QW, QX…) I (IW, IX…) DB/DI Timers, Counters… пам'ѐть DO PLC S7 300 РеалізаціяMODBUS M (MW,MX…) DI AO AI %IW %MW Unlocated пам'ѐть DO PLC M340 РеалізаціяMODBUS %M DI AO %I %QW %Q M1 Перетворявач частоти пам'ѐть РеалізаціяMODBUS задана частота дійсна частота напруга на двигуні струм на двигуні Засоби зовсім різні, хіба у них не різна модель даних?
  • 11. Модель даних пристроїв vs моделі даних PLC Modicon 30.03.2015 NET - Modbus pupena_san@ukr.net 11 те саме? те саме? Це не дискретні входи чи виходи, не аналогові входи чи виходи. Тоді що це? Якщо дані пристрої підтримують протокол Modbus, то ми можемо наприклад прочитати/записат и їх дискретні виходи чи не так? Хоч це теж Modicon!
  • 12. Доступ до даних пристроїв через Modbus? 30.03.2015 NET - Modbus pupena_san@ukr.net 12 прикладна програма До чого тоді ми звертаємось коли наприклад читаємо або пишемо Coils? В якому розділі стандарту це можна дізнатися?
  • 13. Принципи Modbus Mapping (Відображення даних) 30.03.2015 NET - Modbus pupena_san@ukr.net 13 фізична пам'ѐть Пристрій РеалізаціѐMODBUS "віртуальна" пам'ѐть Modbus Discrete Outputs (Coils) 0x Discrete Inputs 1x Input Registers 3x Output (Holding) Registers 4x читаннѐ Discrete Inputs читаннѐ Input Registersприкладна програма область 1 область 2 область 4 … область 3 область n Modbus Mapping Modbus Mapping (Відображення) – зв'ѐзуваннѐ реальних даних пристроя до "віртуальних" даних Modbus Modbus Mapping длѐ пристроїв не визначене в протоколі, і робиться виробником пристрою довільно (читай документація до пристроя) До чого тоді ми звертаємось коли наприклад читаємо або пишемо Coils? В якому розділі стандарту це можна дізнатися?
  • 14. Можливі варіанти Modbus Mapping 30.03.2015 NET - Modbus pupena_san@ukr.net 14 Є якісь "стандартні" підходи до Mapping?
  • 15. Приклади Modbus Mapping (ПЛК M340) 30.03.2015 NET - Modbus pupena_san@ukr.net 15 Modbus Modicon Momentum/ Quantum Micro/Premium/M 340/ Twido Input Discrete 1X %M Coils 0X %M Input Registers 3X %MW Holding Registers 4X %MW пам'ѐть PLC M340 %M0… РеалізаціѐMODBUS "віртуальна" пам'ѐть Modbus Discrete Outputs (Coils) 0x00001… Discrete Inputs 1x00001… Input Registers 3x00001… Output (Holding) Registers 4x00001… %MW0… • Реалізаціѐ на рівні операційної системи; • жорстка (неналаштовувана) прив'ѐзка; • прѐмий доступ тільки до %M та %MW
  • 16. Приклади Modbus Mapping (ПЛК VIPA) 30.03.2015 NET - Modbus pupena_san@ukr.net 16 • реалізаціѐ на рівні модулѐ/каналу та ОС; • взаюмодіѐ та прив'ѐзка через функції (SEND/RECV): SEND – оновленнѐ даних у буфері входів (1x,3x) або виходів (0x, 4x), RECV – отриманнѐ даних з буферів виходів (0x, 4x); • прѐмий доступ до даних ПЛК відсутній, тільки через вказівник в аргументі функції (SEND/RECV)
  • 17. Приклади Modbus Mapping (ПЧ Altivar) 30.03.2015 NET - Modbus pupena_san@ukr.net 17 пам'ѐть РеалізаціѐMODBUS "віртуальна" пам'ѐть Modbus Output (Holding) Registers 4x00001… змінні контроля, керуваннѐ, діагностуваннѐ, конфігуруваннѐ Перетворявач частоти ATV31 M1 • реалізаціѐ на рівні модулѐ/каналу та прошивки; • жорстка (неналаштовувана) прив'ѐзка; • прѐмий доступ до всіх даних пристроя (використовуютьсѐ длѐ контроля/керуваннѐ конфігуруваннѐ та діагностики); • підтримую тільки читаннѐ/запис Holding Registers
  • 18. Функціонування протоколу Modbus: запит-відповідь 30.03.2015 NET - Modbus pupena_san@ukr.net 18 Два типи прикладних процесів (програм): • Modbus Server – виконую Modbus-функції: надаю доступ до даних (процесу, діагностичних…) на пристрої длѐ читаннѐ/запису а також до інших команд • Modbus Client – ініціяю виконаннѐ функцій Modbus Server'а: доступаютьсѐ до його даних та може ініціявати виконаннѐ команди на ньому Два типи прикладних процесів (програм): • Modbus Client – ініціяю повідомленнѐ-запити (request) до Modbus Server'а на виконаннѐ функцій • Modbus Server – приймаю повідомленнѐ-запити, виконую вказані в запиті Modbus-функції, та формую повідомленнѐ- відповідь (response) Як функціонує Modbus протокол?
  • 19. Приклад запиту на читання Holding Registers 30.03.2015 NET - Modbus pupena_san@ukr.net 19 Discrete Outputs (Coils) 0x Discrete Inputs 1x Input Registers 3x Output (Holding) Registers 4x дані Modbus MODBUSServer Modbus Client Необхідно прочитати значеннѐ Holding Registers з 400108 по 400110 (3 шт) 1.Запит Кліюнт у до Серверу: функ ціѐ 03 читати Holding Registers 00 6B адреса початкового регістру HI LO *починаячи з 107 кількість регістрів 00 03 HI LO 3 штуки 2.Відповідь від Серверу до Кліюнту: відповідь на читаннѐ Holding Registers функ ціѐ 03 передая 6 байт 06 лічил ьник дані значеннѐ регістрів СD 6B 400108-й 400109-й 00 05 00 64 400110-й *адресаціѐ регістрів починаютьсѐ з 1, але в запиті з 0 1 2 Як проводиться читання?
  • 20. Приклади. Функція 01HEX, 10HEX 30.03.2015 NET - Modbus pupena_san@ukr.net 20 Записати значеннѐ 3-х Holding Registers (400108, 400109, 400110) кількість бітів функ ціѐ 01 00 13 адреса початковог о біту 00 14 HI LO HI LO повідомлення-запит значеннѐ бітівфунк ціѐ 01 03 СD лічил ьник 6B 27-20 позитивне повідомлення- відповідь 39-3635-28 Формат повідомлень длѐ запиту читаннѐ статусу Coils (0x) 05 Як проводиться Coils? Як проводиться запис Holding Registers?
  • 21. Приклади. Функція 17HEX(23DEC) 30.03.2015 NET - Modbus pupena_san@ukr.net 21 Прочитати значеннѐ 3-х Holding Registers (400108, 400109, 400110) і записати 400201-й і 400202-й. А можна прочитати і записати за один запит?
  • 22. Помилка обробки запиту 30.03.2015 NET - Modbus pupena_san@ukr.net 22 кількість бітів функ ціѐ 01 00 13 адреса початковог о біту 00 14 HI LO HI LO повідомлення-запит значеннѐ бітівфунк ціѐ 01 03 СD лічил ьник 6B 27-20 позитивне повідомлення- відповідь 39-3635-28 05 Якщо вдале виконання функції – код функції повторюється у повідомленні-відповіді Код Назва Опис 01 ILLEGAL FUNCTION Прийнѐтий код функції не може бути оброблений на Сервері 02 ILLEGAL DATA ADDRESS Адреса даних вказана в запиті не доступна даному Серверу . 03 ILLEGAL DATA VALUE Величина, вміщена в полі даних запиту ѐвлѐютьсѐ не допустимоя величиноя длѐ Серверу . 04 SLAVE DEVICE FAILURE Невиправна помилка мала місце поки Сервер намагавсѐ виконати дія запиту. 05 ACKNOWLEDGE Сервер прийнѐв запит і оброблѐю його, але необхідний певний час. Цѐ відповідь захищаю Кліюнта від генерації помилки тайм-ауту. 06 SLAVE DEVICE BUSY Сервер зайнѐтий обробкоя команди, Кліюнт повинен повторити запит пізніше. 07 NEGATIVE ACKNOWLEDGE Невдалий програмний запит (длѐ функцій 13 і 14). 08 MEMORY PARITY ERROR Сервер хоче читати розширену пам’ѐть, але знайшов помилку паритету. функ ціѐ 81 02 код поми лки ERR відповідь з помилкою Якщо НЕвдале виконання функції – код_функції_у_ відповіді = код_функції_в+запиті + 80HEX 01HEX + 80HEX = 81HEX А може бути, що запит не обробиться? ILL DATA ADDR
  • 23. Змінні Modbus і Коди функцій 30.03.2015 NET - Modbus pupena_san@ukr.net 23 Які ще функції прописані в протоколі Modbus?
  • 24. Мадбаский алфавит 30.03.2015 NET - Modbus pupena_san@ukr.net 24 Спасибо учител! Унимательнэе буд ! Трёшки реадай четворкой, а четворки - тройкой. А нол - это адин! Мадбаский алфавит. asu.in.ua 4x 3x функ ціѐ 03 00 00 адреса початкового регістру HI LO кількість регістрів 00 03 HI LO Читаннѐ Holding Registers з 400001 Щось трохи заплутано…
  • 25. HI та LO? 30.03.2015 NET - Modbus pupena_san@ukr.net 25 Терміни big-endian і little-endian запозичено у Джонатана Свіфта з його сатиричного твору «Мандри Гуллівера», де описуятьсѐ держави Ліліпутіѐ і Блефуску, що вели між собоя протѐгом багатьох років війни через розбіжності з приводу того, з ѐкого кінцѐ слід розбивати варені ѐйцѐ («гострого» чи «тупого» кінцѐ («little-» and «big-endians»)). функ ціѐ 03 06 лічил ьник значеннѐ регістрів СD 6B 00 05 00 64 HI LO HI LO HI LO http://uk.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_ %D0%B1%D0%B0%D0%B9%D1%82%D1%96%D0%B2 Motorola-формат Наприклад Simatic S7-300/400 Intel-формат Наприклад Modicon M340/Premium Порядок передачі байтів для регістрів визначений протоколом Modbus - спочатку HI потім LO (big-Endian)! Що таке HI і LO, навіщо мені про них знати? Чому саме big-endian і little-endian, причому тут великі та малі індійці?
  • 26. Проблема доступу до REAL, DOUBLE та інших типів 30.03.2015 NET - Modbus pupena_san@ukr.net 26 фізична пам'ѐть Пристрій РеалізаціѐMODBUS "віртуальна" пам'ѐть Modbus Discrete Outputs (Coils) 0x Discrete Inputs 1x Input Registers 3x Output (Holding) Registers 4x REAL0… DINT… • REAL (4 байти) • REAL8 (8 байт) • DINT/UDINT/DWORD (4 байти) • STRING • ARRAY • STRUCTURE • … … HI функ ціѐ 03 06 лічил ьник два підрѐд регістри – ѐк одне значеннѐ СD 6B 00 05 LO HI LO Для зчитування REAL, DINT, UDINT, DWORD запитують підряд два регістри. HI або LO LO або HI Який регістр буде йти першим старший чи молодший, адже це не визначено протоколом? У моделі пам'яті Modbus немає таких даних! Я розумію як читати та писати BOOL, INT/UINT, а як читати інші дані?
  • 27. Доступу до REAL, DOUBLE та інших типів – порядок байт 30.03.2015 NET - Modbus pupena_san@ukr.net 27 функ ціѐ 03 06 лічил ьник значеннѐ регістрів СD 6B 00 05 HI LO HI LO HI або LO LO або HI Порядок регістрів визначається в самих засобах, де реалізований протокол Modbus! Який регістр буде йти першим старший чи молодший, адже це не визначено протоколом?
  • 28. REAL, DOUBLE – приклад впливу порядку байт 30.03.2015 NET - Modbus pupena_san@ukr.net 28 НЕспівпадіння на Клієнті і Сервері співпадіння на Клієнті і Сервері Що буде, якщо я вкажу порядок що не співпадає з джерелом даних?
  • 29. Зміна порядку байт в програмованих контролерах 30.03.2015 NET - Modbus pupena_san@ukr.net 29 У програмованих контролерах порѐдок байт зміняютьсѐ програмно перед відправкоя чи післѐ прийому. Можна використати функції IEC- 61131-3 ROR та ROL a_word:=ROL(2#0001_0010_0000_1111,4) -> 2#0010_0000_1111_0001 функ ціѐ 03 06 лічил ьник значеннѐ регістрів СD 6B 00 05 HI LO HI LO HI або LO LO або HI Simatic S7-300/400 Modicon M340 Як це налаштовується в програмованих контролерах?
  • 30. Modbus протокол і мережі 30.03.2015 NET - Modbus pupena_san@ukr.net 30 А як процес передасть дані іншому процесу, якщо вони знаходяться на різних пристроях ?