1. Людино-машинні інтерфейси та SCADA
Інші підсистеми
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
06.12.2020 1
3. Події: загальна інформація
• подія – для виконання певної дії, що ініціюється тригером
• Тригер – умова, виконання якої приводить до дії.
• будь-який вираз, який дає булевий результат (істина або хибність)
• проходження певного періоду часу відносно заданого
• може бути виділена в окрему підсистему, або часово-генероване
завдання
• задається дія, яка буде виконуватися
• виклик функції
• зміна тегу
• …
4. Citect
• Events (События)
• Дія - Cicode команда
• тригер - виконання певної умови або періодичності виконання
• періодичність та час, відносно якого проводиться синхронізація
періодичності ("Время")
• Якщо період не вказаний, він приймається рівним 1 с.
• можуть виконуватися в контексті будь-якого процесу Citect
• місце виконання подій налаштовуються в майстрі налаштування
комп’ютера
• Події з ім'ям "GLOBAL" виконуються на всіх комп’ютерах у системі Citect.
5. SCADA zenon• за часом - Time Control
• час, відносно якого генерується виклик функції
• періодичність (один раз, періодично з указаного часу, періодично в
зазначений день), період, Можна задати дні тижня
• функція zenon, яка буде викликатися (рис. 8.7)
• за тригером- Границі/матриця реакцій
7. Календарне виконання: загальна інформація
планувальники (Scheduler)
• означення календарного плану в середовищі виконання
• час та дії, які повинні відбуватися в цей час, налаштовує не
розробник системи керування, а оператор.
• типові можливості:
• означення абсолютного часу для виконання дій, наприклад
23.10.2020 о 18:00;
• означення відносного часу для виконання дій, наприклад
кожного понеділка о 18:00;
• означення спеціальних днів у календарі, тобто в яких
виконується особливий план;
• означення дій у вигляді зміни тегів (змінних) або запуску
функцій.
8. Citect Scheduler
• на механізмі ієрархії устатковання (Equipment)
• для устатковання повинні бути зконфігуровані Стани (Equipment States)
• дії при активації та активності цього Стану
• для устатковання властивість "Заплановано" (Scheduled) повинно бути
TRUE
• графічний інтерфейс - ActiveX компонент "Scheduler" ("Планировщик")
• не потребує конфігурування в середовищі розроблення
• уся діяльність налаштовується у Планувальнику в режимі виконання
9. Citect: Можливості Scheduler
• налаштовувати календарний план (у вигляді дня, тижня, місяця, хронології)
• контролювати кінцевий стан планування
• добавляти спеціальні дні в календарі, для яких можна окремо конфігурувати поведінку
устатковання
• у дереві відображається все доступне для планування устаткування
• при виділенні устатковання, у календарному плані можна подивитися, встановити та
змінити дату й час переходу на конкретний стан
• устатковання в різних режимах:
• автоматичний (automatic) - відповідно до означеного календарного плану;
• заміщення (Override), або ручний, – коли станом керує оператор через контекстне
меню
• стани та режими поширюються вниз за ієрархією
• дочірні елементи можна переводити в режим незалежно.
11. SCADA zenon: PFS
представлена двома модулями:
• Scheduler – іде в стандартній редакції;
• PFS (Production and Facility Scheduler) – є розширенням, замінює стандартний
Scheduler, якщо наявна ліцензія, додаткові функції:
• зазначення планових годин відносно початку та кінця змін, перерв та ін.;
• події, означені користувачем.
• прив’язку дій (записування значення змінних або запуск функцій) можна
робити не тільки до абсолютного часу, а й до вказаної події
PFS
• можна конфігурувати як у середовищі розроблення, так і в середовищі
виконання
• "Runtime Changeable Date" для параметра "Scheduler" поставити значення
"Do not generate and transfer" (не генерувати і не переносити)
• SCADA zenon також дає змогу переносити налаштування PFS із середовища
виконання в середовище розроблення.
12. SCADA zenon: PFS - налаштування
• календарні плани групуються за часовими інтервалами
• конфігурувати короткострокові плани (на добу)
• відносно певної події, які пізніше можна добавляти до календаря
• кожна група часової моделі (time model group) включає
• календарні плани (Schedule)
• перелік функцій та змінних, які в ньому використовуються
• перелік дій, які відбуваються при активності плану
• Наприклад, план "Включення насосів" включає три змінні та три
функції, які можна використовувати в ньому
• задаються в часових точках (time):
• в абсолютних одиницях часу (absolute point of time)
• відносно певної події (relative point of time)
• події: початок доби, початок зміни ….
• часові моделі (Time models).
15. Підсистема скриптів: загальна інформація
• для середовища виконання:
• є завдання, які потребують індивідуального підходу з
використанням програмування -> підсистема скриптів
• може включати:
• середовище програмування для певної мови;
• окреме середовище виконання – інтерпретатор програм
(якщо скрипти не компілюються);
• клієнтський інтерфейс доступу до API середовища виконання
SCADA/HMI для можливості взаємодії з об'єктами.
• для середовища розробки:
• автоматизація рутинної роботи в середовищах розроблення
• наприклад створення великої кількості об’єктів за певним
алгоритмом
• стандартні мови та середовища:
• VBA (Visual Basic for Application), VBScript, C, JavaScript, C#, VB.NET
• власні
16. Citect CiCode/VBA
• CiCode або VBA
• функціональність шаблонів на CiCode
• Починаючи з Citect 2016 новий тип драйвера з ім'ям Cicode,
• для тегів у полі адреси вказується вирази Cicode
• дає можливість створювати обраховувані змінні
17. Citect CiCode
• Cicode – повноцінна мова програмування, яка має можливості роботи з власними
змінними, підтримує умовні оператори, оператори циклів, багатопоточність та
багато чого іншого. Cicode надає прямий доступ до тегів (змінних тегів, трендів,
тривог) через їх назву.
• Cicode вирази (Cicode expressions) – це вирази, написані мовою Cicode,
результатом виконання яких є певне значення, що може бути використане при
анімації. Виразом може бути проста змінна чи константа або рядок з
арифметичними, логічними операціями чи конкатенацією.
• Cicode команди (Cicode commands) – це інструкція або набір інструкцій
(операторів) для виконання, написаних мовою Cicode. Інструкції розділяються
крапкою з комою і можуть викликати функції та змінювати значення змінних.
Cicode команди можуть викликатися певними діями операторів (кліками миші чи
натисканням клавіші при відкриванні/закриванні/відображенні сторінок, при
спрацюванні/відключенні тривоги, при формуванні звіту, при реєстрації
користувача в системі.
Також Cicode команди можна
запускати з кожним перерахунком
сторінки, помістивши на неї
елемент "Объект Cicode".
18. Синтаксис CiCode
У виразах та командах мови Cicode доступні операнди для таких операцій:
• арифметичні операції: "+" (додавання), "-" (віднімання), "/" (ділення), "*"
(множення), "MOD" (остача від ділення);
• логічні операції: "AND", "OR", "NOT";
• побітові логічні операції: "BITAND", "BITOR", "BITXOR";
• операції порівняння: ">" , "<", "=", "<>", ">=", "<=";
• конкатенація: "+" (з'єднання двох рядків типу STRING).
У Cicode-виразах та командах доступний виклик функцій:
• системних
• власних (редактор Cicode)
19. SCADA zenon: скрипти
• практично вся діяльність відбувається без використання мов програмування
• більшість проектів можна зробити без коду однак є можливість кодувати
• кілька підтримуваних мов та редакторів:
• VBA
• VSTA (C# або VB.NET)
• можуть використовуватися:
• для середовища виконання
• для середовища розроблення.
• майстри імпорту текстів перекладів реалізовані саме з використанням
таких макросів.
20. SCADA zenon: VBA
• Редактор VBA - повноцінний редактор від Microsoft
• інтегрується з SCADA zenon через інтерфейс OLE Automation
• Виклик процедур та функцій VBA можуть відбуватися:
• за різними подіями елементів на екранах ЛМІ
• подіями інших об’єктів.
22. Підсистема роботи з рецептами: загальна інформація
рецепт (recipe) є сукупністю технологічних параметрів, які зчитуються,
записуються, зберігаються як єдине ціле.
• функції:
• створювати нові рецепти та модифікувати існуючі;
• видаляти або позначати як застарілі існуючі рецепти;
• зберігати та зачитувати рецепти з носія;
• записувати дані рецепта в контролер (теги);
• зчитувати дані з контролера (тегів).
• Інші (залежать від інструментів)
• у SCADA/HMI, які не підтримують функціональність рецептів, можуть
надаватися можливості реалізувати їх самостійно через підсистему
скриптів та/або роботу з базами даних.
23. Підсистема рецептів у SCADA Citect
• виділеної підсистеми для керування рецептами немає
• найпростіший спосіб - ActiveX "DataBase Exchange«
• відображати вибрані за певними критеріями (задається у Filter) дані із
джерела у вигляді таблиці;
• редагувати дані записів у табличному вигляді;
• завантажувати дані з вибраного запису у прив’язані теги (Download);
• вивантажувати дані з прив’язних тегів у записи (Upload);
• друкувати.
24. Підсистема рецептів у SCADA zenon
• у вигляді двох модулів:
• стандартні рецепти (Standard Recipes) – входять в стандартну поставку;
• адміністратор груп рецептів (Recipegroup Manager) – додатковий модуль.
• можна створювати та модифікувати як у середовищі виконання, так і в середовищі
розроблення
• "Runtime Changeable Date" для параметра "Standard Recipe" стоїть значення
"Do not generate and transfer" (не генерувати і не переносити)
• вибираються необхідні змінні та задаються задані значення.
• Записування значень рецепта в змінні, зчитування, імпорт і експорт можна
виконати через відповідні функції zenon
• Для створення, модифікації та видалення рецептів у середовищі виконання в
SCADA zenon є спеціальний тип екрана "Standard Recipes«
• усі операції з рецептами, включаючи добавлення нових змінних
• імпорт і експорт рецептів, завдяки чому їх можна переносити на інші робочі
станції
28. Підсистема звітів: загальна інформація
Звіт (Report) – документ або сторінка, сформовані на основі означеного
для нього формату та статистично оброблених плинних чи історичних
даних.
• формат звіту - розміщення та призначення полів
• місце та формат для даних (реального часу, історичних, тривог …)
• статична інформація (заголовки, рисунки)
• при генеруванні звіту - поля заповнюються конкретними значеннями.
• можуть генеруватися автоматично (за тригером, періодично) або за
запитом
• вигляд:
• надрукованого документа,
• файлу формату PDF, RTF, TXT, CSV, HTML сторінки або таблиці Excel
• бази даних
• онлайн, наприклад Dashboard
• реалізація:
• частина SCADA/HMI
• зовнішні програмні засоби (як правило функціональніші)
• існуюче підключення, бібліотека
• окрема незалежна система: наприклад сервер з Веб-доступом, який
приймає запити на формування звіту через HTPP API
29. Підсистема звітів: принципи побудови
• джерело даних, яке використовується для вибірки та представлення необхідної інформації у
звіті
• дані реального часу
• база даних або файли (наприклад XML, CSV)
• формат звіту, який указує, як саме виглядатиме звіт (наприклад файл RTF, XML):
• редактор формату, або на льоту (Dashboard) через онлайн сторінку
• включає означення даних (поля), які будуть використовуватись у звіті
• якщо з БД вказується джерело даних та фільтри для запиту (наприклад, запит
мовою SQL)
• зовнішній вигляд може включати кілька розділів, які задають позицію і зміст звіту
• титул (title), або титульний аркуш (title page), з якого починається звіт;
• заключна сторінка (back page, last page);
• сторінки, кожна з яких може включати:
• заголовок, колонтитул (header), який повторюється зверху кожної сторінки;
• деталі, безпосередньо зміст сторінки (detail): таблиці, рисунки, текст …
• нижній колонтитул (footer), який повторюється внизу кожної сторінки;
• фон.
• параметри, які використовуються у форматі звіту для уточнення того, як слід генерувати звіт
(наприклад, діапазон дат, за який необхідно вивести звіт, або назва даних).
• подібно формальним параметрам функції, яка генерує звіт.
33. Підсистема звітів: Citect
• проста
• має обмежену функціональність
• за класичним принципом:
• розроблення формату (шаблону) звіту:
• тип RTF: форматування кольору, шрифтів, вставляти рисунки і OLE-об’єкти
• текстовий тип(ASCII-файл): підтримується додаткова можливість по оброблення
Cicode, можна робити html
• означення звіту, в якому вказується формат, пристрій, куди буде виводитися звіт, та
умова, при якій буде відбуватися виведення;
• {LOOP_1_PV:#-###.#EU}
{CICODE}
Cicode_програма;
{END}
• генерування звіту через виклик функції (опційно).
35. Підсистема звітів: zenon Report Generator
два типи звітів:
• Report Generator;
• Report Viewer.
Report Generator
• Конфігурування:
• означення формату
(шаблону) звіту в розділі
Report Generator (схоже на
Excel);
• створення функції для
генерування звіту або/та
створення спеціального для
виведення звіту.
36. Підсистема звітів: zenon Report Viewer
• генерування та відображення звітів у
SCADA zenon у форматі RDL від Microsoft
• редактор MS Visual Studio або MS Report
Builder
• виконує Microsoft SQL Server Reporting
Services (SSRS)