воскресенье, 27 августа 2017 г.

Станово-орієнтоване керування (state based control) з каркасу



Це  фрагмент з опису каркасу, який постійно оновлюється https://www.slideshare.net/pupenasan/pac-framework-v1.

Станово-орієнтоване керування (state based control)

У основі концепції каркасу лежить парадигма керування і створення ПЗ, що базується на поняттях станів. У кожен момент часу об’єкт та система керування знаходиться в певному стані, в залежності від якого може змінюватися не тільки величина сигналів керування, а і самі алгоритми. Особливо яскраво це проявляється в періодичних та дискретних виробництвах, де одне і те саме обладнання в різний момент часу працює в різних умовах та з різним типом матеріалу. Для неперервних процесів це менш типово, однак в моменти пуску, зупину, зміни обладнання (наприклад переключення насосів), нештатних ситуацій (тривоги), зміни режиму, необхідно також передбачати іншу поведінку системи і алгоритми роботи. У таких випадках, першочергово для розроблювальної програми керування означується автомат з кінцевої кількості станів (скінчений автомат), що включає:
-          самі стани та необхідні дії (або окремі алгоритми) при їх активності,
-          та переходи (умови переходів) між ними.
Скінчені автомати можна описувати формулами, таблицями або діаграмами. Для практичного використання в програмуванні систем керування знайшли застосування таблиці (наприклад барабанний регулятор, DRUM-controller), спеціалізовані мови програмування (SFC, Grafcet). У текстових мовах (наприклад ST) такий автомат добре описується структурою CASE, де в якості змінної CASE є умовний номер стану (кроку). Формальних методів описів (моделей) доволі багато: мережі Петрі, скінчені автомати Мура, Мілі. Програмування на базі станів також називають станово-орієнтованим, автоматним, або case-програмуванням.       
Самі прості і зрозумілі для більшості автомати станів, які використовуються у всіх системах керування, - це режими роботи регуляторів. У даному випадку слово "режим" не протиставляється слову "стан", і розуміється як підвид стану. Враховуючи що кожен регулятор в автоматизованих системах передбачає втручання людини, він повинен мати автоматичний та ручний режим, який означує джерело звідки буде змінюватися значення, що йде на виконавчий механізм. Переходи між цими станами (режимами) відбуваються за команди оператору (хоча можуть проводитися і програмним шляхом). Деякі системи можуть потребувати окремого режиму ручного керування за місцем, тому в такому випадку станів (режимів) вже буде три: ручний (дистанційний, диспетчерський), автоматичний та місцевий (ручний за місцем). Назва режиму не має значення, але той факт, що в кожному режимі необхідно передбачити логіку (алгоритм) роботи контуру регулювання не має викликати сумнівів. Для цих трьох станів (режимів) треба означувати поведінку регулятору при протиречних командах за місцем і дистанційному. Навіть на цьому простому прикладі, означення окремих станів (режимів) не є тривіальними і передбачає обов’язкове  означення поведінки регулятору в кожному з них, що лягає на плечі проектанта (як правило не програміста). Враховуючи, що обладнання запускається і зупиняється, необхідно також передбачувати в якому зі станів (режимів) воно буде знаходитися під час пуску.      
Другий популярний приклад використання станів – це керування тривогами. У більшості випадків кожна тривога описуються класичним набором станів:
·         нормальний (Alarm OFF), коли немає тривоги за даною змінною;
·         непідтверджена активна тривога (Alarm ON not ACK), коли тривога виникла а оператор її ще не квітував;
·         підтверджена активна тривога (Alarm ON ACK), коли умова активності тривоги виконується, але оператор її підтвердив (квітував)
·         непідтверджена неактивна тривога (Alarm OFF not ACK), коли умова активації тривоги вже не виконується, але оператор ще не зробив квітування.   
Означення самих станів (їх може бути більше або менше) потребується для того, щоб забезпечити правильні дії. Так, наприклад, аварійна сирена (оповіщувач) може бути увімкненою до тих пір, поки оператор не зробив квітування, навіть якщо умова активності тривоги не виконується. Світлова сигналізація у свою чергу може миготіти для непідтверджених тривог, та горіти постійно для активних підтверджених.   
 
 
       
Слід зазначити, що описані вище приклади стосуються усіх типів процесів та виробництв. Для періодичних процесів необхідність в означенні станів ще більш очевидна, бо одне і те саме обладнання в кожен момент часу має робити різні керівні діяльності, наприклад наповнення апарату, дозування інгредієнтів, нагрівання, мийка, тощо. Ці періоди роботи, які характеризуються одним набором діяльностей зручно відокремлювати в окремий стан (крок, етап), при активності якого активуються ті чи інші алгоритми керування. Цей механізм є одним із фундаментальним в стандарті ISA-88 (Batch Control).       
Таким чином, кожен об’єкт (обладнання, програма, регулятор тощо) характеризується певним станом, в залежності від якого система керування виконує той чи інший алгоритм. Дуже важливим є розуміння того, що один і той самий об’єкт характеризується набором станів з точки зору різних аспектів. Так, наприклад, запірний клапан може характеризуватися наступними наборами станів і підстанів:
-          положення: відкритий, закритий, відкривається, закривається, невизначений;
-          тривоги (кожна тривога описується своїм автоматом станів тривог): не закрився, не відкрився, довільний зсув, помилка датчиків положення;
-          блокування: заблокований, незаблокований;
-          режим роботи: ручний, автоматичний
Ці набори (автомати станів) можуть бути взаємопов’язані і впливати один на одного. Наприклад, одна з тривог може привести до блокування клапана, тобто переводу в спеціально означений стан "заблокований". У цьому стані вихід на керування клапаном буде відключеним, і при цьому режим буде насильно триматися в ручному, поки не буде відправлена команда на розблокування. Однак, в той же час, положення буде вказувати на дійсне положення клапану згідно датчиків кінцевого положення та команд керування.     
Слова "Режим" і "Стан" у конкретному випадку можуть означувати різні особливості діяльності. З одного боку, вони обидва описуються автоматом станів. Однак "Стан" як правило вказує на плинну ситуацію, а "Режим" – на особливості поведінки алгоритмів керування. Тому "ручний/автомат" та "заблоковано/незаблоковано" прийнято називати режимами, так як вони означують особливості керування. У ручному режимі команди на клапан відправляє оператор. У заблокованому режимі на клапан завжди подається команда закриття. Наявність двох "автоматів режимів" (це теж автомат станів, але слово "стан" не використовується, щоб протиставити режими станам), також потребує їх узгодження, бо їх дії конфліктують між собою. Тому необхідно означити пріоритети, наприклад дії в режимі "заблоковано" мають вищий пріоритет ніж в режимі "ручний".
Режими і стани означені в системі керування для різних об’єктів теж як правило взаємодіють між собою. Так, наприклад, для усієї установки можуть бути означені режими: ручний, автоматичний та наладки. При цьому зміна режиму в "наладки" може змінювати пріоритет режимів "ручний/автомат" та "заблоковано/незаблоковано".
Для означення набору станів в програмі користувача потребуються стільки змінних, скільки автоматів станів. Для прикладу з дискретним клапаном треба змінні:
-          положення: (5 значень);
-          тривоги (кожна тривога описується своїм автоматом станів тривог, тому потребується окрема змінна): не закрився (4 значення), не відкрився (4 значення), довільний зсув(4 значення), помилка датчиків положення (4 значення);
-          блокування (2 значення): заблокований, незаблокований;
-          режим роботи (2 значення): ручний, автоматичний
Оскільки системи керування передбачають наявність SCADA/HMI, стани кожної тривоги в програмі користувача ПЛК можна означити тільки 2 значеннями. Навіть при такій постановці, кількість змінних є дуже великою, а значень станів при цьому досить небагато (часто 2). Тому є сенс їх "упакувати" в одне слово статусу, біти якого будуть представляти стан/режим певного автомату. Такий підхід використовується, наприклад, при керуванні перетворювачами частоти та севроприводами по мережі (IEC 61800-7: профілі PROFIDRIVE, CIA402, CIP Motion, SERCOS). У даному каркасі усі біти станів об’єктів пакуються в одну змінну (поле структури) з назвою STA. Приклад такого упакування показаний в 1.4.

Комментариев нет:

Отправить комментарий