atpv

Навчальні матеріали з автоматизації технологічних процесів та виробництв, розроблені спільнотою

Лабораторний практикум

Лабораторна робота №7. Робота з майстер рецептами та керівними рецептами. Обробка винятків

Мета роботи – навчитися використовувати операції, керувати майстер рецептами та керівними рецептами.

Загальні теоретичні відомості

Керівний рецепт (Control recipe) використовується для створення конкретної партії. Його створюють шляхом копіювання одного з екземплярів майстер-рецепту, а потім за необхідністю модифікують. Керівний рецепт повинен містити:

Керівний рецепт може бути змінений для врахування фактичної якості сировини і фактичного обладнання, що необхідно використовувати. Деякі приклади необхідної зміни:

Процедура технологічної комірки керівного рецепта (також називається просто “Рецептурна процедура”) складається з рецептурних процедур апаратів, рецептурних операцій і рецептурних етапів, що відносяться безпосередньо до тих, які означені в майстер рецепті. У момент створення керівного рецепта, вони «копіюються» 1:1 з майстер рецепту. Керівний рецепт використовується також для збору інформації про хід виготовлення конкретної партії.

Завдання до виконання лабораторної роботи

  1. Створити спеціальне вікно для керування рецептами.
  2. Випустити у використання майтсер рецепт.
  3. Створити та запустити керівний рецепт.
  4. Створити та перевірити рецепт у матричному редакторі.
  5. Створити операцію та використати її в означенні рецепту.
  6. Створити змінні та інтерфейс для Runtime Information Unit.
  7. Використати інформацію про стан керування в процедурному керуванні.
  8. Реалізувати пошиерння стану.

Порядок проведення роботи

1. Вікно керування майстер рецептами

У минулих лабораторних роботах майстер рецепти використовувалися тільки в режимі тестування. У цій лабораторній роботі необхідно випустити майстер рецепти (Release) для використання на їх основі керівних рецептів, що в свою чергу призначені для виготовлення конкретних партій продукту.

У zenon необхідно створити вікно керування майстер рецептами

image-20240108225620347

рис.7.1. Створення вікна керування рецептами

image-20240108225657326

рис.7.2. Розміщування елементів для керування Майстер-рецептами за замовченням

image-20240108225710973

рис.7.3. Добавлення усіх колонок до елементу відображення списку рецептів

Тепер в списку майстер рецептів добре видно усі їх властивості. Однак для роботи з вікнами керування, операторам бажано мати локалізовані назви параметрів. У наступному пункті показано як в zenon налаштувати переклади.

2. Локалізація текстів

У даному пункті показано як у zenon реалізувати мультимовну підтримку з україномовним перекладом системних вікон. Цей пункт є необов’язковим для виконання.

image-20240108225723662

рис.7.4. Добавлення нового файлу локалізації (мови)

Тепер усі тексти, які в середовищі розробки будуть починатися з символу @ можна замінити на локалізовані версії. Для цього в полі “Keyword” вказується проектна назва (але вже без символу @), а в полі мовного перекладу локалізований текст. SCADA zenon дає можливість перекладати також оригінальні тексти виконавчої системи, що робить мультимовну підтримку дуже гнучкою. Для спрощення внесення текстів перекладів в zenon існує декілька помічників (Wizard). Є помічник, який вибирає всі існуючі тексти в проекті і заносить їх в поле keyword, при цьому з можливістю заміни звичайних текстів на мультимовні (доповнюючи тексти префіксом @ ). Використовуючи помічник можна також заповнити колонки текстами вікон виконавчої системи zenon, та їх існуючими перекладами.

image-20240108225737891

рис.7.5.Виклик помічника для формування перекладених текстів вікон виконавчої системи zenon

image-20240108225752148

рис.7.6. Діалогові вікна помічника

Тепер при старті виконавчої системи zenon оригінальні тексти будуть показуватися такими, як записано ZENONSTR.TXT. Для зміни текстів на ті, які внесені в UKRAININAN.TXT треба запустити функцію зміни мови.

image-20240108225806750

рис.7.7. Створення функції зміни мови

Тепер усі існуючі функції, які будуть добавлені в скрипт AUTOSTART будуть викликатися при старті середовища виконання.

image-20240108225819539

рис.7.8. Створення скрипту AUTOSTART

image-20240108225830885

рис.7.9. Добавлення до скрипту AUTOSTART функцій

Існуючий перекладений текст не завжди зрозумілий. Для зручності роботи при відлагодженні необхідно зробити можливість перемикання на англійську мову, а також імпортувати заздалегідь перекладені тексти.

За необхідності мовні таблиці підправити у будь який момент часу.

image-20240108225842375

рис.7.10. Імпорт записів мовних таблиць з файлу CSV

Надалі в опису лабораторних робіт буде використовуватися тільки англомовний варіант, однак Ви зможете перемикатися на україномовний для кращого розуміння. Якщо англомовні терміни більш зручніші – в функції автостарт виставте іншу мову.

3. Випуск Майстер рецептів

У минулих лабораторних роботах Майстер рецепти створювалися та перевірялися в режимі тестування. Однак такі рецепти не є випущеними для використання (Released) тому не можуть бути основою для створення керівних рецептів. Нагадаємо, що керівні рецепти використовуються для створення конкретних партій продукту. Після тестування майстер рецепту, він повинен бути випущеним (Release) у використання.

Коли майстер рецепт випущено, на основі нього, як шаблону, можуть бути створені керівні рецепти. При цьому він більше не може редагуватися. Тим не менше, з випущеного майстер рецепту можна робити копії (дублювати), які будуть доступні для редагування аж поки ті, в свою чергу, не будуть також випущеними. Коли рецепт вже не може використовуватися при виготовленні продукції, його позначають як застарілий (Outdated). Застарілі рецепти можуть бути використані для дублювання а також відслідковування в історії виготовлення партій.

У zenon необхідно продублювати існуючий рецепт, зробити його випуск, створити на його основі керівний рецепт та позначити його як застарілий.

image-20240109175344740

image-20240108225857633

рис.7.11. Копіювання рецепту

image-20240109175531565

image-20240108225908251

рис.7.12. Відображення списку керівних рецептів у вікні редактору

4. Керівний рецепт (Control recipe)

У стандарті ISA-88, проводиться відмінність між майстер рецептами (Master Recipe) і керівними рецептами (Control recipe). При цьому, керівні рецепти завжди походять від майстер рецептів. Після випуску майстер рецепту, з нього може бути створений керівний рецепт, який виконується тільки один раз. Таким чином керівний рецепт відповідає за виготовлення конкретної партії.

SCADA zenon 7.6 не дає можливості змінювати процедуру в керівному рецепті, хоча це передбачається стандартом.

image-20240108225921023

рис.7.13. Відображення списку керівних рецептів асоційованих з вибраним майстер рецептом

Зверніть увагу, що по завершенню керівного рецепту його не можна повторно виконати. Але керівний рецепт можна продублювати і знову виконати.

За допомогою редагованих командних тегів, властивості в керівному рецепті можуть бути встановленими як змінювані в керівному рецепті (Changeable in control recipe). У результаті, стане можливим перезаписувати значення командних тегів в кожному керівному рецепті. Значення в керівному рецепті може бути змінено тільки в межах, які були встановлені для тега в майстер рецепті.

5. Рецепти створені матричною формою означення

Окрім мови PFC у різних середовищах Batch керування для створення рецептів можуть використовуватися і інші форми означення, такі як мова SFC, список, таблиця, діаграма Ганта, та інші. У SCADA zenon можна використовувати табличну форму, яка зветься Матричною. Матрична форма (Matrix) представлення рецептів є більш простішою і не має усіх можливостей, що доступні в PFC. Зокрема, тут немає вибору послідовності (альтернативного розгалуження), переходів з умовами та виділення (Allocation) апаратів. Рецепт створюється у вигляді таблиці, де рядки є послідовністю кроків, а стовпці – етапами або операціями. Кожна клітинка таблиці може бути активованою або деактивованою незалежно одна від одної. Активність етапу/операції на кожному кроці означує необхідність їх виконання на цьому кроці. Рядки і стовпці можна додавати за необхідністю.

У наступному завданні необхідно створити майстер рецепт мийки, який буде складатися з 4-рьох кроків, на кожному з яких повинен бути активним один або декілька з етапів набору танку 1:

У zenon необхідно створити створити майстер рецепт Мийка2 у матричному вигляді та перевірити його роботу.

image-20240108225940136

рис.7.14. Добавлення кроків та етапів/операцій

image-20240108225952227

рис.7.15. Налаштування активності етапів на кожному кроці

image-20240108230005497

рис.7.16. Вигляд матричного рецепту в режимі виконання

6. Операції

Операції можуть бути використані для інкапсулювання задач, які повинні виконуватися в кількох рецептах. Прикладом цього є операція мийки, яку часто треба запускати після приготування будь-якого продукту. Замість трьох етапів, які постійно треба б було ставити в рецепт, туди можна помістити тільки одну операцію, яка буде заздалегідь створена з цих етапів. Так можна досягнути простішого та швидшого створення рецепту та зручнішого відображення великих рецептів.

У zenon необхідно створити та перевірити роботу операції Мийка.

image-20240108230020490

рис.7.17. Відкриття списку операцій та створення нової операції

Операції не можуть бути перевірені безпосередньо. Щоб перевірити операцію, вона повинна бути частиною майстер рецепту і перевірена разом з ним.

image-20240108230031824

рис.7.18. Наповнення операції “Мийка” та вставка його в процедуру майстер рецепту

image-20240108230044649

рис.7.19. Відображення поряд операції та майстер-рецепту.

Символ екземпляра операції представляє стан всіх вкладених в нього етапів. У підказці дається огляд помилок в екземплярі операції.

image-20240109232557145

7. Створення, прив’язка змінних до Runtime Information Unit, відображення стану

Для того, щоб мати можливість контролювати стан виконання REE, рецепту або об’єктів в рецепті, модуль Batch Control пропонує прив’язувати цю інформацію до змінних. Ці змінні можуть бути відображені та використані для контролю.

В налаштуваннях Unit Batch Control для кожного апарату можна в налаштуваннях Runtime Information вказати змінні, в яких буде відображатися актуальний стан (див.рис.7.20) пов’язаних з ним в даний момент рецептів Master recipe (в режимі тестування, або на якому базується Control Recipe) та Control Recipe. До такої інформації відноситься:

image-20240108230104553

рис.7.20. Налаштування зв’язку інформації по апаратам (Unit) в модулі Batch zenon.

Таб.7.1. Числові значення статусів виконання рецепту

Статус Значення Примітка
Idle 0  
Running 1  
Executed 2 ніколи не відображається, оскільки виконаний рецепт ніколи не займає Unit
Stopping 3  
Stopped 4 ніколи не відображається, оскільки зупинений рецепт ніколи не займає Unit
Pausing 5  
Paused 6  
Holding 7  
Held 8  
Aborting 9  
Aborted 10 ніколи не відображається, оскільки відмінений рецепт ніколи не займає Unit
Restarting 11  

Таб.7.2. Числові значення режимів виконання рецепту

Режими виконання рецепту Значення Примітка
Ignore 0 Рецепт не виконується
Automatic 1  
Semi-automatic 2  
Manual 3  

Phases – перелік активних етапів, розділених символом кінця рядку (string)

Окрім наведених вище даних в налаштуваннях Runtime Information налаштовується також прив’язка змінних до інформації про помилки виконання та кроки матричного рецепту, якщо цей рецепт займає апарат.

У цьому пункті у zenon необхідно створити та налаштувати тип та змінні для відображення стану рецептів прив’язаних до апаратів.

image-20240108230123240

рис.7.21. Створення змінних та типів для відображення актуальних станів прив’язаних до апаратів, агрегатів та технологічної комірки рецептів.

image-20240108230136070

рис.7.22. Налаштування Runtime Information для апарату Танк1.

Зверніть увагу що при виборі змінної поле Status потрібно розширити щоб відображалися усі рівні вкладеності.

image-20240110124951754

Для зручності вибору змінних з великого переліку можна користуватися фільтрами.

image-20240110140817885

рис.7.23. Приклад вікна Batch Control з інформацію про плинний стан прив’язаних до апаратів та агрегату рецептів.

Тепер необхідно показати яке обладнання наразі використовується в рецепті.

image-20240110142205441

image-20240108230203895

рис.7.24. Відображення зайнятості апаратів та агрегату зміною кольору контуру обладнання.

8. Використання Runtime Information в процедурному керуванні рецептом

Інформацію про зайнятість обладнання можна використовувати і в логіці процедурного керування рецепту. У попередніх роботах для приготування одного і того самого продукту але в різних танках використовувалися різні майстер рецепти. Доречно в одному і тому самому рецепті прописувати процедуру приготування для усіх танків, в яких це можливо зробити. Вибір танку може проводитися вручну, або за певною умовою. Нижче описано, як реалізувати автоматичний вибір танку при запуску рецепту з використанням Unit Runtime Information.

У zenon необхідно створити рецепт, який буде готовити продукт у будь-якому з вільних (не зайнятих іншим рецептом) танків

image-20240108230218916

рис.7.25. Створення етапу Вибір танку, та тегів індикаторів зайнятості танків.

Даний етап потрібен тільки для того, щоб створити в ньому теги перевірки зайнятості танків. Інакшим чином інформацію в процедурне керування рецепту передати не можна. Логічно було б створити етап уже в існуючому Unit Установка, який відповідає за функції Технологічної комірки (Process Cell). Однак, при виконанні етапу Вибір танку Unit буде зайнятий рецептом, що не дасть можливість запустити в іншому рецепті етап Прокласти маршрут доз. У зв’язку з цим необхідно створити новий Unit.

Тепер в рецепті можна використовувати змінні, які будуть показувати скільки вже рецептів на даний момент використовують даний танк (займають його). Якщо кількість буде нульовою – танк незайнятий, тому його можна використовувати для приготування продукту в даному рецепті. Таким чином, в рецепті можна вказати процедуру приготування продукту в одному з двох танків, який буде вільним, через альтернативне розгалуження.

image-20240110143019805

image-20240110143400748

image-20240108230234514

рис.7.26. Загальний вигляд рецепту “Коктейль Кровава Мері”.

image-20240108230248131

рис.7.27. Налаштування деяких елементів рецепту “Коктейль Кровава Мері”.

Після перевірки умови незайнятості танку програма буде йти по відповідній гілці. Для убезпечення займання танку іншим рецептом, спочатку проводиться його явне займання (Allocation), а після закінчення приготування - вивільнення (Release).

Тепер рецепт Кровава Мері повинен зайняти 2-й танк. Після перевірки майстер рецепту необхідно його випустити для експлуатації, щоб на базі нього можна було створювати керівні рецепти.

image-20240110151203359

image-20240110152652025

image-20240110152548703

image-20240110151412741

image-20240110152816809

9. Обробка винятків (Error handling)

ISA88 передбачає врахування в автоматі станів результату обробки виняткових ситуацій. Ця обробка винятків як правило проводиться в логіці роботи апаратурних процедур (в ПЛК). Тим не менше, деякі винятки, наприклад комунікаційні помилки треба обробляти з обидвох боків - і з боку ПЛК (апаратурного керування) і з боку SCADA (апаратурне та рецептурне керування).

У даному пункті у програмі етапу phFILL ПЛК та SCADA zenon в стані RUNNING необхідно створити обробник помилок клапану відкриття.

   (*при будь якій помилці клапану*)
   if VLV.sta.0 or VLV.sta.1 or VLV.sta.2 or VLV.sta.3 then
   	phIO.STA:=7;(*перейти в стан Holding*)
   end_if;

image-20240108230259825

рис.7.28. Модифікація програми для етапу phFILL.

image-20240108230313695

рис.7.29. Добавлення в zenon умови виникнення помилки для етапу.

image-20240110174154836

рис.7.30. Добавлення в zenon реакції на помилку в ПЛК.

image-20240110160626272

image-20240110160914536

image-20240110161757045

image-20240110175002886

image-20240108230341971

рис.7.31. Вигляд етапу Наповнити в стані “Held”

10. Поширення стану Held

За допомогою команд, що прописані в реакціях на події, можна реалізовувати поширення станів та режимів (propagation state, propagation mode) вгору. Тобто, наприклад, якщо важливий етап переходить в стан Holding можна перевести весь рецепт в стан Holding (Command = Recipe Holding).

У цьому пункті у zenon необхідно реалізувати перехід усього рецепту в стан Holding, коли етап Нагрівати переходить в Held.

image-20240110175834525

image-20240110180209401

image-20240110181409806

Для Batch Control дуже важливою є синхронізація між ПЛК і zenon. Кожен етап zenon може виявити проблеми зв’язку з ПЛК і реагувати на них. Етап повідомляє про втрату зв’язку, якщо параметри команди не можуть бути записані, або якщо результат виконання формули в обробнику помилок дає істину. Якщо відбувається втрата зв’язку, етап призупиняється (paused) або утримується (held), і через налаштовані реакції може виконатися певна подія.

Після запису командних тегів (параметрів), значення відповідних змінних негайно зчитуються з ПЛК. Крок Записати командний параметр завершується тільки тоді, коли всі значення, які були прочитані відповідають записаним. Якщо хоча б одна змінна значення відрізняється, то після заданого часу очікування всі командні теги записуються знову. Якщо після третьої спроби запису усі прочитані змінні не будуть відповідати записуваним етап повідомляє про помилку зв’язку, після чого переходить в стан, означений в налаштуваннях Batch Control (рис.7.32).

image-20240108230358929

рис.7.32. Налаштування дій етапів при втраті зв’язку та при виконанні формули.

На додаток до згаданого вище автоматичного виявлення помилок, для виявлення відмов зв’язку також можна пов’язати формулу (Loss of communication). Таким чином, можна виявити збої не тільки при запису значень параметрів, але і під час активності етапу. Для того, щоб гарантувати безпечний повторний запуск рецепта після втрати зв’язку, можна запросити підтвердження для відновленої зв’язку (Loss of communication acknowledged). Ці налаштування для кожного етапу проводяться окремо (див. рис.7.32).

Контрольні питання