Upload
alexandr-pupena
View
75
Download
3
Embed Size (px)
Citation preview
Промислові мережі та інтеграційні технології
Символьний режим обміну (character mode, ASCII)
реєстрація [email protected]
автор і лектор: Олександр Пупена ([email protected]) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
23.03.2015 NET - символьний обмін
Сумісність на рівні бітів/символів – цього достатньо для побудови мережі?
23.03.2015 NET - символьний обмін
USB RS485<->USB
RS232 RS485<->RS232
RS485
RS485 RS485
RS485
RS485
RS485
RS485 Усі пристрої можуть відправити і отримати послідовність біт (наприклад символи). Цього достатньо?
Сумісність на фізичному рівні (фізичного інтерфейсу, рівні бітів) не достатня, щоб забезпечити цільовий обмін між пристроями!
• кому призначені ці символи? • чи вірно отримані ці символи? • що означають ці символи?
Модель обміну на базі символів
23.03.2015 NET - символьний обмін
символ
Те, що я знаю всі літери угорського алфавіту ще не значить, що я розумію угорську!
літера ~
Amit tudok a magyar ábécé nem jelenti azt, hogy érti a magyar.
Оміт тудок о модьор абиси тум єленті озт, ходь ирті о модьор?
HU UK
Модель обміну кадрами
23.03.2015 NET - символьний обмін
Кадр (Frame) при асинхронній передачі - це послідовність символів, які відправляються/приймаються пристроєм як єдина "осмислена" структура.
принципи побудови речень визначається правилами мови
правила побудови та доставки кадрів а також їх змісту визначається протоколами мережі
~
символ літера ~ кадр речення (послідовність слів з літер)
~
літера"р"
Кадр – це "осмислена" послідовність символів.
Протоколи рівнів – правила
23.03.2015 NET - символьний обмін
Задачі мережного обміну ділять на підзадачі або рівні (див.1.3), правила функціонування в яких описується протоколами рівня. Повний набір протоколів формують стек протоколів мережі.
символ FHEX
A02F345E4569023456890A5612
символ"р"
Кадр –це послідовність символів.
Аналогія правил мови: в граматиці є правила написання слів (морфологія), а є правила формування речень (синтаксис). Стек = синтаксис + морфологія
Кадр це послідовність символів - .
символ"р"
"Однорівневий" стек протоколів
23.03.2015 NET - символьний обмін
У самих примітивних мережах правила обміну описують тільки на рівні кадрів, тобто описаний тільки протокол канального рівня.
символ"р"
Кадр –це послідовність символів.
"Словарь Вильяма Шекспира, по подсчёту исследователей, составляет 12000 слов. Словарь негра из людоедского племени «Мумбо-Юмбо» составляет 300 слов. Эллочка Щукина легко и свободно обходилась тридцатью. Вот слова, фразы и междометия, придирчиво выбранные ею из всего великого, многословного и могучего русского языка: Хамите. Хо-хо! (Выражает, в зависимости от обстоятельств, иронию, удивление, восторг, ненависть, радость, презрение и удовлетворенность.)…"
Для правильної побудови речень на мові Елочки-Щукіної достатньо б було використання тільки морфологічного протоколу.
Умова роботи мережі - повна сумісність
23.03.2015 NET - символьний обмін
USB RS485<->USB
RS232 RS485<->RS232
RS485
RS485 RS485
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
Що значить реалізований (implementation) протокол?
23.03.2015 NET - символьний обмін
Прикладна програма
COM порт
послідовність
байтів для
кадру
Доступ до функцій (сервісів) протоколу
послідовність
байтів прийнятого
кадру
промислова мережа
RS485
протокол A1
протокол A2
протокол A3
Програма протоколу рівнів А1..А3 (реалізована виробником)
Вирішення проблеми несумісності
23.03.2015 NET - символьний обмін
Відсутність підтримки протоколів на одному з вузлів потребує: - використання шлюзів (перетворювачів
протоколів); - або самостійної реалізації протоколів на
пристрої; - або заміни несумісного пристрою
RSxxx RSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
RSxxx RSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
RSxxx RSxxx
протокол A1
протокол A2
протокол A3
протокол B1
протокол B2
протокол B3
шлюз
перетворення протоколів
Пропрієтарний протокол
23.03.2015 NET - символьний обмін
RSxxx RSxxx
протокол ? протокол ?
Пропрієтарний протокол (або мережа) – власний нестандартизований протокол (або мережа) виробника пристрою. Проблема, яка виникає при використанні в пристрої – відсутність реалізації в пристроях інших виробників, відсутність готових шлюзів.
Вирішення проблеми сумісності – самостійна реалізація протоколів або заміна пристроїв.
Принципи символьного режиму обміну
23.03.2015 NET - символьний обмін
Символьний режим обміну (character mode) – режим обміну програмованого пристрою (контролеру) через послідовний порт, при якому програміст реалізовує алгоритм формування послідовності байтів (character, символів) для передачі і алгоритм інтерпретації змісту кадрів по прийому.
1 char передається за 1 symbol
Прикладна програма
COM порт
послідовність
байтів для
кадрів
Реалізація алгоритму
формування кадру
Реалізація алгоритму
інтерпретації кадру
послідовність
байтів прийнятого
кадру
промислова мережа
Символьний режим обміну забезпечує тільки відправку та прийом кадрів, а протокол обміну реалізовується програмою користувача.
- також називають ASCII-режимом або безпротокольним режимом
- використовувався тільки для відправки/прийому послідовності ASCII-символів, зараз і для обміну байт-кодами.
- не всі програмовані контролери (або їх послідовні порти) дають можливість працювати в символьному режимі.
ASCII vs binary
23.03.2015 NET - символьний обмін
128 символів (7-бітне кодування) – числовий код
+ 128 (8-бітне кодування) розширення (національні літери)
ASCII режим – передача літер
бінарний режим – передача байт-кодів
09
"0"
30
"9"
39
ASCII BIN
Призначення символьного обміну
23.03.2015 NET - символьний обмін
- для реалізації протоколу (пропрієтарного чи стандартизованого), що не підтримується
даним програмованим пристроєм
- для роботи з зовнішніми модемами (по RSxxx) в якості клієнта (AT-команди) як для відправки так і для прийому;
- для відправки тексту на друк чи термінал, що працюють в
текстовому режимі, для прийому тексту з терміналу
Задачі при побудові/інтерпретації кадрів
23.03.2015 NET - символьний обмін
• розмежування кадрів • доставка кадрів за місцем призначення • перевірка кадрів на цілісність • призначення полів (частин) кадру
скажиякділитикадриякажияквказатиадресатаскажиякправльнозаповнюватиполя
Задачі, що вирішуються при символьному обміні
23.03.2015 NET - символьний обмін
Задачі, що вирішуються при формуванні/інтерпретації та
доставці кадрів
Як вирішуються при символьному обміні
розмежування кадрів налаштування порту інтерфейсу
доставка за місцем призначення
програмна реалізація алгоритму обробки кадру згідно протоколу, що реалізується
перевірка кадрів на цілісність
призначення полів (частин) кадру
Розмежування кадрів в символьному режимі
23.03.2015 NET - символьний обмін
Розділення на кадри необхідне для: - структурування обміну (відповідно до протоколу); - для можливості апаратної та програмної оброки при певних обмеженнях
(обмеження вхідних/вихідних буферів, обмеження часу обробки …)
Тиша (+char)
Beginning Повідомлення кадру End
0 … yyy chars Тиша або 1(2) chars або
досягнута фіксована кількість символів
Способи розділення: - по часу тиші (по таймауту); - використання спеціалізованих символів (стартові та стопові Char) - по фіксованій або вказаній в переданих даних кількості символів
скажиякділитикадриякажияквказатиадресатаскажиякправльнозаповнюватиполя
Розмежування кадрів: приклади
23.03.2015 NET - символьний обмін
Frame 1 Frame 2
Тиша Char 1 Char n
STX CR
0D
LF
0A Повідомлення кадру 02 0D 0A
кінець кадру?
Доставка за місцем призначення та перевірка на цілісність (приклад)
23.03.2015 NET - символьний обмін
Повідомлення кадру Адреса
призначення
3 2
Адреса
відправника
65
контрольна
сума
10 11 12 13 14
контрольна сума = 2+3+10+11+12+13+14 = 65
Приклад: контр. сума - арифметична сума
Принципи обміну в символьному режимі - відправка
23.03.2015 NET - символьний обмін
* - тільки при розмежуванні символьною послідовністю
Прикладна програма
COM порт
вихідний буфер вхідний буфер
Повідомлення кадру End Chars*
Реалізація алгоритму формування кадру
Функція запису у вихідний буфер
COM порт
Повідомлення кадру
Символьне закінчення (End Chars) та початок кадру при відправці формується прикладною програмою або апаратурою пристрою (або ОС)
Принципи обміну в символьному режимі - прийом
23.03.2015 NET - символьний обмін
* - тільки при розмежуванні символьною послідовністю
Прикладна програма
COM порт
вихідний буфер вхідний буфер
Повідомлення кадру
Реалізація алгоритму інтерпретації кадру
Функція читання з вхідного буферу
COM порт
Повідомлення кадру End Chars*
Закінчення кадру (по символам або паузі) визначається апаратурою пристрою (або ОС)
Приклад: вікно налаштування кінця кадру для Modicon M340
23.03.2015 NET - символьний обмін
1 – символьний розмежувач кадру 2 – налаштування параметрів обміну 3 – вибір інтерфейсу і сигналів синхронізації
за символами (Stop on reception)
Можливі варіанти CR, LF, або заданий кодом ASCII
Character Included – включити символ зупинки в повідомлення для програми користувача;
по часу тиші (Stop on silence)
Кінець повідомлення – один з двох вказаних (Character 1 або Character 2)
Приклад: вікно налаштування кінця кадру для Simatic S7-1200
23.03.2015 NET - символьний обмін
Приклад: вікно налаштування початку кадру для Simatic S7-1200
23.03.2015 NET - символьний обмін
Приклад: функція відправки/отримання кадру Modicon М340
23.03.2015 NET - символьний обмін
Приклад: функція відправки/отримання кадру Simatic S7-1200
23.03.2015 NET - символьний обмін
Приклад використання кодування ASCII при обміні
23.03.2015 NET - символьний обмін
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) вікно значень параметрів (з ПЗ програматора)
Приклад використання AT-команд для модемного обміну
23.03.2015 NET - символьний обмін
команда Опис
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","+380669572528",,"09/05/18,14:09:28+12"
М: прочитане повідомлення з номеру телефону +380669572528 отримано 09/05/18 о 14:09:28
Hello М: текст повідомлення
OK М: так
AT+CMGS=+380669572528
ПЛК: Відіслати повідомлення в текстовому режимі на номер +380669572528
> HELLOW() ПЛК: текст повідомлення
+CMGS: 23 М: повідомлення відіслано, номер повідомлення 23 (визначається виробником)
OK М: так