Матеріали курсу Людино-машинні інтерфейси
Людино-машинні інтерфейси Автор і лектор: Олександр Пупена доц. кафедри АКСТУ НУХТ
Тема. Робота з джинами та суперджинами. Розроблення тривогової підсистеми в SCADA/HMI.
Тривалість: 4 акад. години (4 пари).
Мета: ознайомлення з принципами розробки тривогової підсистеми, роботи з пристроями, шрифтами, джинами та спливаючими вікнами.
Завдання для виконання роботи
Цілі.
Опанувати основні діяльності з налаштування тривог Citect та їх відображення.
Опанувати основні діяльності зі створення та використання джинів (Genie) та спливаючих сторінок.
Опанувати основні діяльності з налаштування пристрїв Citect.
Лабораторна установка
Апаратне забезпечення: ПК.
Програмне забезпечення: UNITY PRO V>=7.0 або Control Expert, Citect 2016 (або новіше). Увага! Графічна система, починаючи з Citect 2020 повністю змінена. Тому даний лабораторний практикум не призначений для версій Citect, новіших за Citect 2018R2.
Примітки щодо відео: представлені в роботі відеоматеріали є студентською інтерпретацією лабораторної роботи, носять ознайомчий характер і можуть містити помилки!
Ознайомтеся з усіма додатками до лабораторної роботи:
Додаток 4.1.Базові можливості налаштування тривогової підсистеми Citect
STU
, варто відкрити його а не файл експорту.Запустіть середовище розробки Citect.
У цьому пункті необхідно зробити зображення клапану, який буде показувати значення команди що одається на виконавчий механізм і його стан.
Рис.4.1. Рисування полігону та його заповнення
Налаштуйте заповнення полігону сірим кольором “Dk Grey”(у палітрі RGB 127,127,127). Прямокутник на клапані показує команду на виконавчий механізм.
Нарисуйте прямокутник та лінію для зображення ВМ клапану (рис.4.2).
Рис.4.2. Зображення клапану
T1_LVS2
(набір першого танку): при 0 – сірий, при 1 – свтіло-сірий (250,250,250).У цьому пункті створюється для клапану джин - анміований символ.
T1_LVS2
на %VALVE%
.Рис.4.3. Збереження джину
Рис.4.4. Вказівка замінника
У цьому пункті необхідно змінити джин таким чином, щоб зображення клапану показувало стан кінцевого положення датчика закриття.
Рис.4.5 Налаштування анімації полігону
У цьому пункті необхідно зробити сторінку керування клапаном, що буде показуватися у діалоговому вікні при натисканні на зображення клапану.
Уважно прочитайте Додаток 4.4. Використання спливаючих сторінок з вбудованою анімацією та суперджинів
Створіть сторінку на основі шаблону “blank” з наступними властивостями:
Таб.4.1.Налаштування сторінки.
Властивість | Значення |
---|---|
Ширина | 400 |
Висота | 200 |
Колір | Color80 (сірий) |
Заголовок вікна | Керування клапаном |
1
використовувалася для команди керування клапаном:
2
використовувалася для відображення положення клапана (див. рис.4.6)Рис.4.6 Налаштування сторінки
WinFree
(див. Додаток 4.6.Cicode функції, що використані в лабораторній роботі) що закриває плинне вікно.!ValveCtrl
. Символ !
напочатку назви робить сторінку невидимою в списку (системною).У цьому пункті необхідно налаштувати джин так, щоб він викликав сторінку, попредньо налаштувавши там асоціації.
AssPopUp
беруться у подвйні лапки.AssPopUp ("!ValveCtrl", "%VALVE%", "%VALVE%_CLS")
Рис.4.7 Налаштування анімації відкриття сторінки керування клапаном
У цьому пункті необхідно створити шрифти для відображення тривог різних категорій різним кольором та величини.
Таб.4.2.Налаштування шрифтів.
Назва | Тип шрифта | Розмір | Колір тексту | Миготіння тексту |
---|---|---|---|---|
AlmUnAckON_cat1 | Arial | -10 | LIGHT_RED | RED |
AlmUnAckOFF_cat1 | Arial | -10 | LIGHT_RED | DARK_GREY |
AlmAckON_cat1 | Arial | -10 | LIGHT_RED | LIGHT_RED |
AlmAckOFF_cat1 | Arial | -10 | BLACK | BLACK |
AlmUnAckON_cat2 | Arial | -10 | 0x00ff8000 | RED |
AlmUnAckOFF_cat2 | Arial | -10 | 0x00ff8000 | DARK_GREY |
AlmAckON_cat2 | Arial | -10 | 0x00ff8000 | 0x00ff8000 |
AlmAckOFF_cat2 | Arial | -10 | BLACK | BLACK |
Змініть налаштування шрифтів для системної категорії. А саме змініть колір тексту для усіх шрифтів, що закінчуються на _Set0
на чорний.
Збережіть зміни.
Перейдіть в Citect Studio на закладку налаштувань тривог (Настройка->Алармы)
Таб.4.3.Налаштування категорій.
Номер | Шрифт НЕКВИТ. ВКЛ.алармов | Шрифт НЕКВИТ. ОТКЛ.алармов | Шрифт КВИТ. ВКЛ. | Шрифт КВИТ. ОТКЛ. | Коментар |
---|---|---|---|---|---|
1 | AlmUnAckON_cat1 | AlmUnAckOFF_cat1 | AlmAckON_cat1 | AlmAckOFF_cat1 | Категорія для аварій |
2 | AlmUnAckON_cat2 | AlmUnAckOFF_cat2 | AlmAckON_cat2 | AlmAckOFF_cat2 | Категорія для попереджень |
Уважно прочитайте
Додаток 4.2.Пристрої системного введення/виведення в Citect та ведення журналу користувацьких подій
D1_LVS1_ALCLS
, відповідно до рис.4.8.Рис.4.8. Налаштування дискретної тривоги
DIFRC[10]
в 1
на сторінці змінних або в операторському екрані UnityPRO.Це зафорсує значення змінної D1_LVS1_CLS
, щоб вона не змінювалася з програми імітації. Таким чином змінну можна буде змінювати вручну.
D1_LVS1_CLS
в 0
на сторінці змінних або в операторському екрані UnityPRODIFRC[10]
в 0
. Тривога повинна зникнути.Для пришвидшення роботи рекомендується використовувати копіювання з файлу завдання та вставлення, а також при необхідності сторонні табличні редактори.
DIFRC
.HEA_TT1_WRN
, з налаштуваннями відповідно до рис.4.9.Рис.4.9 Налаштування аналогової тривоги
Ця тривога буде спрацьовувати, коли температура вийшла за межі попередження.
HEA_TT1_WRN_DEA
, який буде відслідковувати розузгодження між дійсним та аналоговим значенням (рис.4.10).Рис.4.10 Налаштування аналогової тривоги відхилення
AIFRC[4]=1
на сторінці Startup або в операторському екрані CTRL1 UnityPRO.Для коректного виконання наступних пунктів назви тегів алармів мають називатися як назви змінних з добавленням суфіксу як показано в таб.4.4.
Таб.4.4. Найменування аналогових тривог
Назва змінної в ПЛК | Опис | Назва тега аларма |
---|---|---|
HEA_TT1 | Т продукту на виході підігрівача відхилення від заданого | HEA_TT1_WRN_DEA |
HEA_TT1 | Т продукту на виході підігрівача попередження | HEA_TT1_WRN |
HEA_TT1 | Т продукту на виході підігрівача аварія | HEA_TT1_ALM |
HEA_TT2 | Т гарячої води на виході підігрівача попередження | HEA_TT2_WRN |
HEA_TT2 | Т гарячої води на виході підігрівача аварія | HEA_TT2_ALM |
AIFRC
.У даному пункті необхідно створити два символи для відображення тривог рівня “аварія” та “попередження”.
За допомогою елемента “полігон” та тексту створіть символи відображення тривоги рівня “Аварія” (рис.4.11). Для точного налаштування зображення трикутнику скористайтеся властивостями символу “Полігон”.
Рис.4.11 Налаштування символу для зображення тривоги рівня “Аварія”
Рис.4.12. Символ для зображення тривоги рівня “Попередження”
У цьому пункті необхідно створити джин, який би відображав значення числової змінної.
anaIND
у власній бібліотеці MyGeans.Рис.4.13. Створення джина з налаштуваннями прив’язки до змінної.
anaIND
у відповідні позиції на сторінці “Heat” та прив’яжіть їх до HEAT_TT1
та HEA_TT2
.anaIND
щоб він показував наявність тривоги рівня аварія у вигляді символу та контуру (рис.4.14).Рис.4.14. Створення джина з налаштуваннями відображення символу тривоги “аварія”
У додатку 4.1.1 описано, що тривоги мають свої властивості, до яких можна звертатися як до тегів. У нашому прикладі використовується властивість .On
. У результаті символ буде прихований тоді, коли аларм теги HEA_TT101_AM.on
або відповідно HEA_TT102_AM.on
будуть в 0
. Тобто символ буде прихований, коли тривоги не буде.
Рис.4.15. Створення джина з налаштуваннями відображення символу тривоги “попередження”
У цьому пункті для відображення стану тривог в джині зробимо обводку, яка буде змінювати колір.
anaIND
нарисуйте незаповнений прямокутник, який буде змінювати колір в залежності від стану активності .on
та підтвердження .ack
тривоги (рис.4.16).Рис.4.16. Створення в джині контуру з налаштуваннями стану тривоги “аварія”
Зверніть увагу що в анімації застосовані кольори миготіння та прозорий.
Рис.4.17. Налаштування в джині втрати видимості контуру при відсутності неактивних та непідтверджених тривог
Рис.4.18. Створення в джині контуру з налаштуваннями стану тривоги “попередження”
У цьому пункті необхідно реалізувати підтвердження тривоги безпосередньо через джин, натискаючи подвійним кліком по зображенню контуру тривоги.
У таблиці Д4.1.4 додатку Д4 вказано, що властивість .Ack
тривоги доступна для запису. Це значить, що можна робити підтвердження тривоги, записуючи туди логічну 1. Використаємо цю властивість для підтвердження оператором тривоги натискаючи подвійним кліком по мигаючому контуру.
anaIND
. Використовуючи меню “Средства” -> “Перейти к объекту” відкрийте налаштування контуру для попередження. Налаштуйте дію при подвійному кліку (рис.4.19)Рис.4.19. Налаштування дії при подвійному кліку.
Зверніть увагу, що подвійний клік миші налаштовується в закладці “Клавиатурные команды” з використанням спеціальної клавіші.
У цьому пункті необхідно реалізувати відображення стану тривог для клапанів. Аналогічно попереднім пунктам необхідно реалізувати прямокутний контур для клапанів. Він повинен змінювати свій колір від стану тривог помилок відкриття та закриття:
при будь якій непідтвердженій тривозі миготіти червоним;
при наявності будь-якої підтвердженої тривоги світитися червоним.
Відкрийте джин DValveH
і розмістіть у ньому прямокутний контур (незаповнений) в якості підкладки на задньому фоні клапана. Налаштуйте анімацію кольору, як це показано на рис.4.20.
Рис.4.20. Налаштування прямокутного контуру
DIFRC[10]=1
на сторінці Startup або в операторському екрані UnityPRO. Змінюючи змінну D1_LVS1_ALCLS
та команди квітування перевірте роботу анімації.У цьому пункті необхідно зробити, щоб при наявності тривог на сторінці з’являлися написи відповідних повідомлень помилок клапанів. Подвійний клік по напису повинен робити підтвердження.
!ValveCtrl
.Рис.4.21 Налаштування відображення повідомлень помилок відкриття та закриття клапанів на вікні керування клапаном
DValveH
так, щоб при натисканні на зображення ВМ додатково до команди та стану клапану передавалися стани тривог (див. рис.4.22).Рис.4.22 Налаштування відкриття сторінки з передачею змінних для асоціацій
У цьому пункті необхідно зробити, щоб дії оператору записувалися в системний журнал
MsgLog
з налаштуваннями, як показано на рис.4.23.Для спрощення текстові налаштування виведені нижче:
{DATE,8} {TIME,12} {UserName,5}^t{MSGLOG,20}^t{ARG1,6}
[DATA]:MsgLog.txt
Рис.4.23. Налаштування пристрою
Tanks
для елементу введення тексту, налаштуйте щоб дії оператора записувалися в MsgLog
та налаштуйте текст який буде вноситись при діях оператору (рис.4.24)Рис.4.24. Налаштування елементу введення
MsgLog.txt
, відкрийте його в текстовому редакторі. Там повинен знаходитися запис про зміну значення.У цьому пункті необхідно зробити сторінку з відображенням файлу журналу.
file
.file
значення [DATA]:MsgLog.txt
(рис.4.25)Рис.4.25. Налаштування шляху розміщення файлу для відображення
У цьому пункті необхідно реалізувати одну з вимог до реалізації підсистеми ведення журналу подій , що наведена в Таблиці 15 Завдання, а саме фіксацію включення автоматичного режиму роботи контуру. Є кілька способів реалізації такого фіксування. Один з них - використання тривог з особливими налаштуваннями категорії. Саме цей спосіб використаємо у цьому пункті.
Таблиця 4.5. Шрифти для
Назва | Тип шрифта | Розмір | Колір тексту |
---|---|---|---|
AlmUnAckON_cat3 | Arial | -10 | BLACK |
AlmUnAckOFF_cat3 | Arial | -10 | BLACK |
AlmAckON_cat3 | Arial | -10 | BLACK |
AlmAckOFF_cat3 | Arial | -10 | BLACK |
Рис.4.26 Налаштування категорії 3 для подій
Рис.4.27 Налаштування тривоги для фіксації переключення контуру регулювання в автоматичний режим
Збережіть проект і зробіть компіляцію проекту. Перезапустіть середоивще виконання.
Heat
і декілька раз змініть значення змінної HEA_TC1_AUTO
.Зверніть увагу, що за замовченням сторінка журналу SOE не налаштована на оптимальне відображення. Тому варто налаштувати її.
Зверніть увагу, що подія має два записи, оскільки тривога реєструється в системі при спрацюванні (on) та при відключенні (off). Це одна з причин, чому для журналювання подій краще скористаися іншим механізмом - через спеціальну Cicode функцію.
У цьому пункті подія відкриття сторінки налаштування системи, що повинна фіксуватися в журналі SOE, записуватиметься через Cicode функцію SOEEventAdd
.
SOEEventAdd
в Д.4.6.5.Heat
SOEEventAdd(TimestampCurrent(), "Відкрита сторінка установки підігріву")
Функція TimestampCurrent()
повертає плинне значення відмітки часу.
Рис.4.28 Налаштування реєстрації в журналі події відкриття сторінки підігріву.
Heat
. Після цього відкрийте сторінку SOE (Historical Events) знайдіть там відповідний запис.