Модель компетенцій спеціалістів Industrial Automation в епоху 4.0
2 2 символьний обмін
1. Промислові мережі та інтеграційні технології
Символьний режим обміну
(character mode, ASCII)
реєстрація fieldbus_book@ukr.net
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
1
2. Сумісність на рівні бітів/символів – цього
достатньо для побудови мережі?
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
2
USBRS485<->USB
RS232RS485<->RS232
RS485
RS485RS485
RS485
RS485
RS485
RS485 Усі пристрої можуть відправити і отримати
послідовність біт (наприклад символи). Цього
достатньо?
Сумісність на фізичному рівні
(фізичного інтерфейсу, рівні бітів) не
достатня, щоб забезпечити цільовий
обмін між пристроями!
• кому призначені ці символи?
• чи вірно отримані ці символи?
• що означають ці символи?
3. Модель обміну на базі символів
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
3
символ
Те, що я знаю всі літери угорського
алфавіту ще не значить, що я розумію
угорську!
літера~
Amit tudok a magyar ábécé nem
jelenti azt, hogy érti a magyar.
Оміт тудок о модьор абиси тум
єленті озт, ходь ирті о модьор?
HU UK
4. Модель обміну кадрами
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
4
Кадр (Frame) при асинхронній передачі - це
послідовність символів, які
відправляються/приймаються пристроєм як
єдина "осмислена" структура.
принципи побудови речень
визначається правилами мови
правила побудови та доставки кадрів а
також їх змісту визначається протоколами
мережі
~
символ літера~ кадрречення (послідовність
слів з літер)
~
літера"р"
Кадр – це "осмислена" послідовність символів.
5. Протоколи рівнів – правила
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
5
Задачі мережного обміну ділять на підзадачі або рівні (див.1.3), правила
функціонування в яких описується протоколами рівня. Повний набір
протоколів формують стек протоколів мережі.
символ FHEX
A02F345E4569023456890A5612
символ"р"
Кадр –це послідовність символів.
Аналогія правил мови: в граматиці є правила написання слів (морфологія), а
є правила формування речень (синтаксис). Стек = синтаксис + морфологія
Кадр це послідовність символів- .
символ"р"
6. "Однорівневий" стек протоколів
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
6
У самих примітивних мережах
правила обміну описують тільки на
рівні кадрів, тобто описаний тільки
протокол канального рівня.
символ"р"
Кадр –це послідовність символів.
"Словарь Вильяма Шекспира, по подсчёту
исследователей, составляет 12000 слов. Словарь
негра из людоедского племени «Мумбо-Юмбо»
составляет 300 слов. Эллочка Щукина легко и
свободно обходилась тридцатью. Вот слова, фразы и
междометия, придирчиво выбранные ею из всего
великого, многословного и могучего русского языка:
Хамите.
Хо-хо! (Выражает, в зависимости от обстоятельств,
иронию, удивление, восторг, ненависть, радость,
презрение и удовлетворенность.)…"
Для правильної побудови речень на
мові Елочки-Щукіної достатньо б
було використання тільки
морфологічного протоколу.
7. Умова роботи мережі - повна сумісність
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
7
USBRS485<->USB
RS232RS485<->RS232
RS485
RS485RS485
RS485
RS485
RS485
RS485 Для функціонування мережі необхідна
сумісність на всіх рівнях:
• забезпечення єдиного фізичного
інтерфейсу
• сумісність протоколів на всіх рівнях (усього
стеку)
Наприклад, усі підтримують Modbus
RTU, причому на боці клієнта -
Modbus RTU Master, а на боці
серверів - Modbus RTU Slave
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
протокол A1
протокол A2
протокол A3
HU
HU
HU
HU
HU
HU
HU
HU
8. Що значить реалізований
(implementation) протокол?
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
8
Прикладна програма
COM порт
послідовність
байтів для
кадру
Доступ до функцій (сервісів)
протоколу
послідовність
байтів прийнятого
кадру
промислова мережа
RS485
протокол A1
протокол A2
протокол A3
Програма протоколу рівнів А1..А3
(реалізована виробником)
9. Вирішення проблеми несумісності
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
9
Відсутність підтримки протоколів на одному з
вузлів потребує:
- використання шлюзів (перетворювачів
протоколів);
- або самостійної реалізації протоколів на
пристрої;
- або заміни несумісного пристрою
RSxxxRSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
RSxxxRSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
RSxxx RSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
шлюз
перетворення
протоколів
10. Пропрієтарний протокол
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
10
RSxxxRSxxx
протокол ? протокол ?
Пропрієтарний протокол (або мережа) –
власний нестандартизований протокол (або
мережа) виробника пристрою.
Проблема, яка виникає при використанні в
пристрої – відсутність реалізації в пристроях
інших виробників, відсутність готових шлюзів.
Вирішення проблеми сумісності –
самостійна реалізація протоколів або
заміна пристроїв.
11. Принципи символьного режиму обміну
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
11
Символьний режим обміну (character
mode) – режим обміну програмованого
пристрою (контролеру) через послідовний
порт, при якому програміст реалізовує
алгоритм формування послідовності байтів
(character, символів) для передачі і
алгоритм інтерпретації змісту кадрів по
прийому.
1 char передається за 1 symbol
Прикладна програма
COM порт
послідовність
байтів для
кадрів
Реалізація
алгоритму
формування кадру
Реалізація
алгоритму
інтерпретації кадру
послідовність
байтів прийнятого
кадру
промислова мережа
Символьний режим обміну забезпечує
тільки відправку та прийом кадрів, а
протокол обміну реалізовується
програмою користувача.
- також називають ASCII-режимом або безпротокольним
режимом
- використовувався тільки для відправки/прийому
послідовності ASCII-символів, зараз і для обміну байт-кодами.
- не всі програмовані контролери (або їх послідовні порти)
дають можливість працювати в символьному режимі.
12. ASCII vs binary
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
12
128 символів (7-бітне
кодування) – числовий код
+ 128 (8-бітне кодування)
розширення (національні
літери)
ASCII режим – передача літер
бінарний режим – передача
байт-кодів
09
"0"
30
"9"
39
ASCIIBIN
13. Призначення символьного обміну
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
13
- для реалізації протоколу (пропрієтарного чи
стандартизованого), що не підтримується
даним програмованим пристроєм
- для роботи з зовнішніми
модемами (по RSxxx) в якості
клієнта (AT-команди) як для
відправки так і для прийому;
- для відправки тексту на друк чи
термінал, що працюють в
текстовому режимі, для прийому
тексту з терміналу
14. Задачі при побудові/інтерпретації кадрів
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
14
• розмежування кадрів
• доставка кадрів за місцем призначення
• перевірка кадрів на цілісність
• призначення полів (частин) кадру
скажиякділитикадриякажияквказатиадресатаскажиякправльнозаповнюватиполя
15. Задачі, що вирішуються при символьному обміні
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
15
Задачі, що вирішуються при
формуванні/інтерпретації та
доставці кадрів
Як вирішуються при
символьному обміні
розмежування кадрів налаштування порту інтерфейсу
доставка за місцем
призначення
програмна реалізація алгоритму
обробки кадру згідно
протоколу, що реалізується
перевірка кадрів на
цілісність
призначення полів (частин)
кадру
16. Розмежування кадрів в символьному режимі
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
16
Розділення на кадри необхідне для:
- структурування обміну (відповідно до протоколу);
- для можливості апаратної та програмної оброки при певних обмеженнях
(обмеження вхідних/вихідних буферів, обмеження часу обробки …)
Тиша (+char)
Beginning Повідомлення кадру End
0 … yyy chars Тиша або 1(2) chars або
досягнута фіксована кількість символів
Способи розділення:
- по часу тиші (по таймауту);
- використання спеціалізованих символів (стартові та стопові Char)
- по фіксованій або вказаній в переданих даних кількості символів
скажиякділитикадриякажияквказатиадресатаскажиякправльнозаповнюватиполя
17. Розмежування кадрів: приклади
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
17
Frame 1 Frame 2
Тиша Char 1 Char n
STX CR
0D
LF
0AПовідомлення кадру02 0D 0A
кінець кадру?
18. Доставка за місцем призначення та перевірка на
цілісність (приклад)
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
18
Повідомлення кадру
Адреса
призначення
32
Адреса
відправника
65
контрольна
сума
10 11 12 13 14
контрольна сума = 2+3+10+11+12+13+14 = 65
Приклад: контр. сума - арифметична сума
19. Принципи обміну в символьному режимі - відправка
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
19
* - тільки при розмежуванні символьною послідовністю
Прикладна
програма
COM порт
вихідний буфер вхідний буфер
Повідомлення кадру End Chars*
Реалізація алгоритму
формування кадру
Функція запису у
вихідний буфер
COM порт
Повідомлення кадру
Символьне закінчення (End Chars) та початок кадру при
відправці формується прикладною програмою або
апаратурою пристрою (або ОС)
20. Принципи обміну в символьному режимі - прийом
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
20
* - тільки при розмежуванні символьною послідовністю
Прикладна
програма
COM порт
вихідний буфер вхідний буфер
Повідомлення кадру
Реалізація алгоритму
інтерпретації кадру
Функція читання з
вхідного буферу
COM порт
Повідомлення кадру End Chars*
Закінчення кадру (по символам або паузі)
визначається апаратурою пристрою (або ОС)
21. Приклад: вікно налаштування кінця кадру для
Modicon M340
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
21
1 – символьний розмежувач кадру
2 – налаштування параметрів обміну
3 – вибір інтерфейсу і сигналів синхронізації
за символами (Stop on reception)
Можливі варіанти CR,
LF,
або заданий кодом
ASCII
Character Included – включити
символ зупинки в повідомлення
для програми користувача;
по часу тиші (Stop on silence)
Кінець повідомлення – один з
двох вказаних (Character 1 або
Character 2)
22. Приклад: вікно налаштування кінця кадру для
Simatic S7-1200
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
22
23. Приклад: вікно налаштування початку кадру
для Simatic S7-1200
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
23
26. Приклад використання кодування ASCII при
обміні
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
26
3A 30 31 36 30 30 30 30 30 30 30 31 30 35 0d 0a
: 0 1 6 0 0 0 0 0 0 0 1 0 5 CR LF
запит (HEX)
запит (ASCII)
відповідь (HEX) відповідь (ASCII) вікно значень параметрів (з ПЗ програматора)
27. Приклад використання AT-команд для модемного
обміну
23.03.2015
NET - символьний обмін
pupena_san@ukr.net
27
команда Опис
AT ПЛК->M: увага
OK М(модем)->ПЛК: так
AT+CBST? ПЛК: запит на вибір типу носія: режими швидкості,
стиснення даних, прозорості
+CBST: 0,0,1 М: 0 – швидкість автоматична, 0 – стиснення відсутнє,
1 - непрозорий
OK М: так
AT+CBST=7,0,1 ПЛК: запит на підтримання носія
OK М: так, підтримується
AT+CBST=12,0,1 ПЛК: встановлення швидкості – 9600 біт/с
OK М: так
AT+IFC? ПЛК: запит команди управління місцевим потоком
<DCE_by_DTE> та <DTE_by_DCE>
+IFC: 0,0 М: не підтримується, не підтримується
OK М: так
AT&W ПЛК: запис поточних налаштувань в EEPROM
OK М: так, записано
+CMTI: "SM",1 М: отримано нове повідомлення, індекс 1
AT+CMGF=1 ПЛК: встановлення текстового режиму
OK М: так, встановлено
AT+CMGR=1 ПЛК: читати перше повідомлення
+CMGR: "REC
READ","+380
669572528",,
"09/05/18,14:
09:28+12"
М: прочитане повідомлення з номеру
телефону +380669572528 отримано 09/05/18
о 14:09:28
Hello М: текст повідомлення
OK М: так
AT+CMGS=+3
80669572528
ПЛК: Відіслати повідомлення в текстовому
режимі на номер +380669572528
> HELLOW() ПЛК: текст повідомлення
+CMGS: 23 М: повідомлення відіслано, номер
повідомлення 23 (визначається виробником)
OK М: так