Підсистема керування збором та обробкою даних в реальному часі
1. Людино-машинні інтерфейси та SCADA
Підсистема керування
збором та обробкою
даних в реальному часі
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
28.09.2020 1
3. База даних реально часу
28.09.2020 pupena_san@ukr.net 3
База даних реального часу (БДРЧ) – це
сховище тегів (змінних), значення та атрибути
яких постійно оновлюються.
• оновлення диктується необхідністю в
"свіжих" даних для ЛМІ та інших підсистем
• з одного боку - з джерела даних
(наприклад контролера),
• а з іншого – з інших підсистем, які в такому
зв’язку є клієнтами
Сервер вводу/виводу та клієнти можуть
знаходитися як на одному так і на різних
комп’ютерах.
• підсистеми вводу/виводу - драйверами
протоколів або просто драйверами.
• наявність того чи іншого драйверу у
SCADA-програмі може стати визначальним
при її виборі
• уніфікацію інтерфейсу підсистеми
вводу/виводу через технологію OPC
• Сервер вводу/виводу
• підсистеми вводу/виводу
4. Змінні (Теги)
28.09.2020 pupena_san@ukr.net 4
• БДРЧ вміщує змінні, теги (tag)
• "тег","змінна«, канал, точка в/в
• теги вводу/виводу (змінні
вводу/виводу)
• ідентифікатор або ім'я тегу;
• короткий опис (коментар);
• тип;
• параметри налаштування
вказівки на джерело даних
(наприклад, контролер);
• періодичність оновлення;
• параметри налаштування
масштабування;
• інші параметри • зовнішні ліцензуються
• внутрішні теги, не потребують зв’язку з джерелом; використовуються для
обміну даними між підсистемами SCADA/HMI та збереження проміжних
результатів
• системні теги (наприклад для отримання інформації про дату та час),
математичні, імітаційні чи інші (залежать від SCADA-програми.
5. Ідентифікація тегів
28.09.2020 pupena_san@ukr.net 5
ім'я тегу – як правило (не завжди) вимоги:
- використовується тільки літери латинського алфавіту, цифри та деякі спец. символи
(не рекомендуємо використовувати кирилицю) ;
- не можуть вміщувати пробілів;
- мають суттєві обмеження на кількість літер
• чітко продумуйте спосіб та правила формування їх імен для конкретного проекту
• Простір імен (перелік найменувань) тегів може мати пласку (flat) або ієрархічну
структуру.
• фільтри у преглядачах
• використання символу "_" в якості розділового знаку (для неструктурних)
Рис.3.1. Використання фільтрів в редакторах
6. Ієрархічність (Приклад)
28.09.2020 pupena_san@ukr.net 6
• PV: для плинного значення аналогової величини;
• HHSP: для значення уставки верхньої аварійної межі;
• LLSP: для значення уставки нижньої аварійної межі;
• HH: біт, що спрацьовує при перевищенні верхньої аварійної межі;
• LL: біт, що спрацьовує при зниженні за нижню аварійну межу.
Одна змінна TT101: TT101.PV, TT101.HH …
7. Зв'язок з джерелом даних
28.09.2020 pupena_san@ukr.net 7
необхідно вказати:
• драйвер вводу/виводу, через який
відбувається зв'язок;
• параметри комунікаційних інтерфейсів для
вказаного драйверу та інших драйверів, що
беруть участь в обміні;
• адресу (адреси) пристрою в комунікаційній
системі;
• адресу (адреси) змінних в пристрої;
• Цей перелік може бути доповнений, в
залежності від типу драйверу.
• період опитування може вказуватися в
налаштуваннях драйверу, або безпосередньо в
налаштуваннях тегу.
• У деяких SCADA/HMI період оновлення тегів в
БДРЧ визначається автоматично під час роботи
системи.
8. Масштабування, діапазони та обмеження на введення
28.09.2020 pupena_san@ukr.net 8
Рис.3.3. Лінійне масштабування.
інженерні одиниці vs одиниці
контролера
• лінійне vs нелінійне масштабування
• вигляд 1 (не дуже зручний)
S = k*R + Sb (3.1)
де S – отримуване масштабоване
значення в інженерних одиницях; R –
вхідне сире немасштабоване значення,
Sb – зміщення; k – коефіцієнт, який
дорівнює тангенсу кута нахилу прямої
масштабування до осі абсцис.
• вигляд 2
• задають макс. та мін. межі для сирого (raw) і масштабованого
(scaled) значення: Rmax та Rmin, а масштабованого як Smax та Smin.
• може використовуватися як нормоване вхідне значення
• може виставлятися обмеження на введення, але деякі SCADA/HMI
дають можливість окремо задавати межі для введення
9. Одиниці виміру, формат відображення
28.09.2020 pupena_san@ukr.net 9
інженерні одиниці (engineering unit,
EU)
• Величини, що мають дробову
частину, потребують означення
формату відображення.
• після значення будуть
відображатися інженерні одиниці
(EU).
10. Властивості тегів в режимі виконання
28.09.2020 pupena_san@ukr.net 10
Рис.3.5. Приклади вигляду відображення при
відсутності зв’язку з джерелом даних: ліворуч в
Citect, праворуч в SCADA zenon
Рис.3.6. Вибір бітів статусу тегу в анімації в SCADA zenon
тег в режимі виконання
характеризується :
• плинне значення (Value)
• якість (Quality)
• відмітка часу (Time Stamp)
11. Типи даних тегів
28.09.2020 pupena_san@ukr.net 11
Рис.3.7. Структурні типи та змінні в SCADA zenon
• тип потрібен для того щоб вірно інтерпретувати для тегу дані на джерелі
(кількість байт, порядок біт, формат)
• при перетворенні (масштабуванні) може потребувати зміни типу.
• Найменування типів в SCADA/HMI може не співпадати з найменуваннями їх в
джерелі даних.
• Останнім часом дані в ПЛК все частіше представляються у вигляді структурних
користувацьких типів (user types).
12. Пакування бітів в теги
28.09.2020 pupena_san@ukr.net 12
• тег вводу/виводу рахується як ліцензована одиниця
• -> чим більше тегів I/O, тим дорожче буде ліцензія на використання
середовища виконання SCADA/HMI.
• багато типу BOOL.
• прийом: усі значення змінних з типом BOOL пакують в змінні цілого типу
(16-біні INT, UINT, або 32-бітні DINT, UDINT). Тобто в кожен біт цілої змінної
записують значення однієї змінної типу BOOL. Таким чином в упакованому
16-бітному INT можна передати 16 значень BOOL, а 32-бітний – 32.
• в якому стані знаходиться 12-й біт в змінній WPACK типу INT?
WPACK AND 4096 < > 0
4096 <-> 0001_0000_0000_0000.
• записати в 12-й біт 1:
WPACK = WPACK OR 4096
17. Citect
28.09.2020 pupena_san@ukr.net 17
Тип
даних
Пояснення Розмір Діапазон
DIGIT
AL
Digital 1 bit або
1 byte
0 or 1
INT Integer 2 bytes -32,768 to 32,767
UINT Unsigned Integer 2 bytes 0 до 65,535
LONG Long Integer 4 bytes -2,147,483,648 до
2,147,483,647
ULON
G
Unsigned Long Integer
(тільки для відображення
на екрані. Не підтримує
арифметичні операції)
4 bytes 0 to 4,294,967,295
REAL Floating Point 4 bytes -3.4E38 до 3.4E38
STRIN
G
String 256
bytes
(maximu
m)
ASCII (null
terminated)