Олександр Пупена
Параграф з посібника «Розробка людино-машинних інтерфейсів та систем збору даних з використанням програмних засобів SCADA/HMI»
У попередній статті показаний приклад використання ієрархії устатковання у Citect для фільтрації тривог, повідомлень в журналах, тегів а також для генерування тегів баз даних за шаблоном. Крім цього Citect використовує моделі устатковання для задач календарного планування.
Для ряду об’єктів повинно бути передбачене управління установками згідно з календарним графіком та астрономічним часом. Наприклад, у системах керування водо- та теплопостачанням може знадобитися вмикання та вимикання насосів згідно з встановленим графіком. Це задача для спеціальних підсистем SCADA/HMI, які називаються планувальниками (Scheduler).
Особливістю планувальника є можливість означення календарного плану в середовищі виконання. Іншими словами час та дії, які повинні відбуватися в цей час налаштовує не розробник системи керування а оператор.
Планувальники як правило надають наступні можливості в середовищі виконання:
- означення абсолютного часу для виконання дій, наприклад 23.10.2020 в 18:00;
- означення відносного часу для виконання дій, наприклад кожного понеділка о 18:00;
- означення спеціальних днів в календарі, тобто в яких виконується особливий план;
- означення дій у вигляді зміни тегів(змінних), або запуску функцій.
У Citect підсистема календарного керування базується на механізмі ієрархії устатковання (Equipment) . Для устатковання повинні бути зконфігуровані Стани (Equipment States), у властивостях яких вказано що саме необхідно робити при активації та активності цього Стану. Їх налаштування розглянуто в кінці статті.
Для устатковання, яке повинно керуватися з планувальника повинна бути виставлена в TRUE властивість «Заплановано» (Scheduled).
Для реалізації графічного інтерфейсу на одній із дисплейних сторінок необхідно розмістити ActiveX компонент «Scheduler» (рос.лок.«Планировщик»), який є на палітрі компонентів Citect. Він не потребує конфігурування в середовищі розробки, це може знадобитися хіба що для прив’язки певних властивостей до змінних. Уся діяльність налаштовується у Планувальнику у режимі виконання (рис.1). На ньому доступні кілька вкладок, які дають можливість налаштовувати календарний план (у вигляді дня, тижня, місяця, хронології), контролювати кінцевий стан планування. Можна також додавати спеціальні дні в календарі, для яких можна окремо конфігурувати поведінку устатковання.
У дереві відображається все доступне для планування устаткування (що має властивість Scheduled=TRUE). При виділенні устатковання, у календарному плані можна подивитися, встановити та змінити дату та час переходу на конкретний стан.

Устатковання може перебувати у різних режимах, які відображаються відповідним символом:
- Автоматичний (automatic) – режим в якому стан задається планувальником відповідно до означеного календарного плану;
- Заміщення (Override), також називається ручним – коли станом керує оператор через контекстне меню.
У контекстному меню устатковання є відповідні команди переходу в режим, та у стан (у режимі Override). Перехід у режим та стан доступний також через функцію Cicode «EquipSetProperty». Функція «EquipGetProperty» дає можливість отримати активний режим та стан.
У Citect стани та режими поширюються вниз за ієрархією. Це значить, що устатковання нижчого рівня переходить в той же стан та режим, що вищий. Поширення стану справедливо тільки у випадку, якщо устатковання нижче за ієрархією не вказане в календарному плані на цей час, або пріоритет його стану нижче за пріоритет батьківського. Дочірні елементи можна переводити в режим незалежно.
Про стани, режими, механізми поширення станів та режимів відповідно до IEC 61512 можете прочитати за посиланням.
Для устатковання, яке необхідно використовувати у підсистемі календарного планування необхідно вказати перелік Станів, для кожного з яких треба вказати (рис.2):
- дію при вході в стан (Entry Action, рос.лок «Действие ввода») – дія, яка буде виконуватися, в момент переходу в цей Стан.
- затримку (Delay, рос.лок. «Задержка») – час, який повинен пройти після активації стану до виконання дії; це може знадобитися тоді, коли прийшов час на активацію кількох одиниць обладнання, і треба уникнути одночасності, наприклад для зменшення сплесків струмів при вмиканні кількох двигунів;
- повторювану дія (Repeat Action, рос.лок. «Действие повтора») – дія, яка буде повторюватися з вказаним періодом при активності стану;
- період (Period) – час, через який буде виконуватися повторювана дія;
- пріоритет (Priority) – число, що вказує пріоритет стану, якщо кілька станів виникають одночасно (при поширенні станів);
Режим DR (DR Mode) дає можливість задати кілька станів з різними діями на основі вибраного режиму споживання (Demand and Response); можна змінювати також через функцію EquipSetProperty;
