Лабораторна робота №7. Робота з майстер рецептами та керівними рецептами. Обробка винятків
Мета роботи – навчитися використовувати операції, керувати майстер рецептами та керівними рецептами.
Загальні теоретичні відомості
Керівний рецепт (Control recipe) використовується для створення конкретної партії. Його створюють шляхом копіювання одного з екземплярів майстер-рецепту, а потім за необхідністю модифікують. Керівний рецепт повинен містити:
- інформацію про продукт, яка необхідна для виготовлення конкретної партії цього продукту;
- про обладнання та апаратурні об’єкти технологічної комірки, що будуть використовуватися для приготування з достатньою деталізацією для їх ініціації і моніторингу.
Керівний рецепт може бути змінений для врахування фактичної якості сировини і фактичного обладнання, що необхідно використовувати. Деякі приклади необхідної зміни:
- обладнання, яке насправді буде використовуватися для керівного рецепта визначають при ініціюванні партії, або безпосередньо перед використанням
-
додають нові або змінюють існуючі параметри на основі даних про якість сировини, що використовується, або проміжних аналізів якості продукції партії;
- процедура керівного рецепту може бути змінена при нештатній ситуації
Процедура технологічної комірки керівного рецепта (також називається просто “Рецептурна процедура”) складається з рецептурних процедур апаратів, рецептурних операцій і рецептурних етапів, що відносяться безпосередньо до тих, які означені в майстер рецепті. У момент створення керівного рецепта, вони «копіюються» 1:1 з майстер рецепту. Керівний рецепт використовується також для збору інформації про хід виготовлення конкретної партії.
Завдання до виконання лабораторної роботи
- Створити спеціальне вікно для керування рецептами.
- Випустити у використання майтсер рецепт.
- Створити та запустити керівний рецепт.
- Створити та перевірити рецепт у матричному редакторі.
- Створити операцію та використати її в означенні рецепту.
- Створити змінні та інтерфейс для Runtime Information Unit.
- Використати інформацію про стан керування в процедурному керуванні.
- Реалізувати пошиерння стану.
Порядок проведення роботи
1. Вікно керування майстер рецептами
У минулих лабораторних роботах майстер рецепти використовувалися тільки в режимі тестування. У цій лабораторній роботі необхідно випустити майстер рецепти (Release) для використання на їх основі керівних рецептів, що в свою чергу призначені для виготовлення конкретних партій продукту.
У zenon необхідно створити вікно керування майстер рецептами
-
Завантажте Unity PRO та проект з минулої лабораторної роботи, скомпілюйте проект, завантажте в імітатор ПЛК та запустіть на виконання
-
Завантажте проект zenon з минулої лабораторної роботи, скомпілюйте його та запустіть на виконання
-
У проекті zenon створіть екран
Екран керування майстер рецептами
з типом сторінкиBatch Control
та фрейму, на базі якого був створенийЕкран Cell
(див. рис.7.1)
рис.7.1. Створення вікна керування рецептами
- На екрані розмістіть керівні елементи за шаблоном для Майстер-рецептів
Only master recepies
(див.рис.7.2)
рис.7.2. Розміщування елементів для керування Майстер-рецептами за замовченням
-
Створіть функцію
Перемикання на екран керування майстер рецептами
для відкриття новоствореного екрану. У вікні налаштування фільтрів залиште все за замовченням -
На
Екран Меню
створіть кнопку з написомМайстер рецепти
для перемикання на новостворенний екран -
На
Екран керування майстер рецептами
розтягніть елементMaster recipes list
на всю ширину екрану з урахуванням розміщення з права кнопок керування; -
Скомпілюйте та запустіть на виконання проект.
-
Відкрийте
Екран керування майстер рецептами
, використовуючи кнопку та вікно налаштування колонок добавте усі колонки (див. рис.7.3)
рис.7.3. Добавлення усіх колонок до елементу відображення списку рецептів
Тепер в списку майстер рецептів добре видно усі їх властивості. Однак для роботи з вікнами керування, операторам бажано мати локалізовані назви параметрів. У наступному пункті показано як в zenon налаштувати переклади.
2. Локалізація текстів
У даному пункті показано як у zenon реалізувати мультимовну підтримку з україномовним перекладом системних вікон. Цей пункт є необов’язковим для виконання.
- Створіть новий файл для збереження локалізованих текстів (мовний файл) з іменем
UKRAINIAN
(рис.7.4)
рис.7.4. Добавлення нового файлу локалізації (мови)
Тепер усі тексти, які в середовищі розробки будуть починатися з символу @
можна замінити на локалізовані версії. Для цього в полі “Keyword” вказується проектна назва (але вже без символу @
), а в полі мовного перекладу локалізований текст. SCADA zenon дає можливість перекладати також оригінальні тексти виконавчої системи, що робить мультимовну підтримку дуже гнучкою. Для спрощення внесення текстів перекладів в zenon існує декілька помічників (Wizard). Є помічник, який вибирає всі існуючі тексти в проекті і заносить їх в поле keyword
, при цьому з можливістю заміни звичайних текстів на мультимовні (доповнюючи тексти префіксом @
). Використовуючи помічник можна також заповнити колонки текстами вікон виконавчої системи zenon, та їх існуючими перекладами.
- Запустіть на виконання помічник формування системних текстів: меню File->Wizards->System Text Wizards (рис.7.5);
рис.7.5.Виклик помічника для формування перекладених текстів вікон виконавчої системи zenon
- Користуючись діалоговими вікнами помічника створіть тексти з існуючим перекладом англійькою мовою для
ZENONSTR.TXT
та російськоюUKRAININAN.TXT
(див. рис.7.6). Після формування текстів закрийте вікна конфігурації.
рис.7.6. Діалогові вікна помічника
Тепер при старті виконавчої системи zenon оригінальні тексти будуть показуватися такими, як записано ZENONSTR.TXT
. Для зміни текстів на ті, які внесені в UKRAININAN.TXT
треба запустити функцію зміни мови.
- Створіть функцію типу Language Switch з назвою
Зробити інтерфейс українською
(див.рис.7.7).
рис.7.7. Створення функції зміни мови
- Для автоматичного виклику функції зміни мови при запуску виконавчої системи створіть скрипт з назвою
AUTOSTART
(див.рис.7.8)
Тепер усі існуючі функції, які будуть добавлені в скрипт AUTOSTART будуть викликатися при старті середовища виконання.
рис.7.8. Створення скрипту AUTOSTART
- Добавте в скрипт
AUTOSTART
функції зміни мови та перемикання наЕкран Batch
(див.рис.7.9)
рис.7.9. Добавлення до скрипту AUTOSTART функцій
- Закрийте середовище виконання zenon (якщо воно виконується), скомпілюйте проект, та запустіть на виконання; проконтролюйте спрацювання функцій відкриття екрану Batch та зміни мови. Подивіться як перекладені російською терміни.
Існуючий перекладений текст не завжди зрозумілий. Для зручності роботи при відлагодженні необхідно зробити можливість перемикання на англійську мову, а також імпортувати заздалегідь перекладені тексти.
-
Створіть функцію типу
Language Switch
з назвоюSwitch to English
з перемиканням на текстів наZENONSTR.TXT
. Добавте кнопки наЕкран Меню
відповідно з написами:English
– для перемикання на англійську мову;Українська
– для перемикання на українську. -
Використовуючи команду розширеного імпорту в контекстному меню мовних таблиць – імпортуйте переклади з файлу
language_ukr.csv
(див. рис. 7.10) у мовні таблиці.
За необхідності мовні таблиці підправити у будь який момент часу.
рис.7.10. Імпорт записів мовних таблиць з файлу CSV
- Запустіть середовище виконання zenon, подивіться як відображається редактор рецептів для різних мов на сторінках
Екран Batch
таМайстер рецептів
.
Надалі в опису лабораторних робіт буде використовуватися тільки англомовний варіант, однак Ви зможете перемикатися на україномовний для кращого розуміння. Якщо англомовні терміни більш зручніші – в функції автостарт виставте іншу мову.
3. Випуск Майстер рецептів
У минулих лабораторних роботах Майстер рецепти створювалися та перевірялися в режимі тестування. Однак такі рецепти не є випущеними для використання (Released
) тому не можуть бути основою для створення керівних рецептів. Нагадаємо, що керівні рецепти використовуються для створення конкретних партій продукту. Після тестування майстер рецепту, він повинен бути випущеним (Release) у використання.
Коли майстер рецепт випущено, на основі нього, як шаблону, можуть бути створені керівні рецепти. При цьому він більше не може редагуватися. Тим не менше, з випущеного майстер рецепту можна робити копії (дублювати), які будуть доступні для редагування аж поки ті, в свою чергу, не будуть також випущеними. Коли рецепт вже не може використовуватися при виготовленні продукції, його позначають як застарілий (Outdated
). Застарілі рецепти можуть бути використані для дублювання а також відслідковування в історії виготовлення партій.
У zenon необхідно продублювати існуючий рецепт, зробити його випуск, створити на його основі керівний рецепт та позначити його як застарілий.
-
Відкрийте вікно
Майстер рецепти
, уважно передивіться властивості існуючих майстер рецептів -
Продублюйте рецепт
Коктейль1
з назвоюКоктейль 1_1
через контекстне вікно списку майстер рецептів (див. рис.7.11).
- Подивіться які можливості доступні в контекстному меню
Коктейль 1_1
.
рис.7.11. Копіювання рецепту
-
Використовуючи команду
RELEASE
випустіть рецепт для використання. -
Подивіться які операції доступні для випущеного майстер рецепту та як змінилися властивості рецепту.
- У вікні редактору рецептів відобразіть список керівних рецептів (Control Recipe) та майстер рецептів (Master recipe) виставивши обидві опції (рис.7.12)
рис.7.12. Відображення списку керівних рецептів у вікні редактору
4. Керівний рецепт (Control recipe)
У стандарті ISA-88, проводиться відмінність між майстер рецептами (Master Recipe) і керівними рецептами (Control recipe). При цьому, керівні рецепти завжди походять від майстер рецептів. Після випуску майстер рецепту, з нього може бути створений керівний рецепт, який виконується тільки один раз. Таким чином керівний рецепт відповідає за виготовлення конкретної партії.
SCADA zenon 7.6 не дає можливості змінювати процедуру в керівному рецепті, хоча це передбачається стандартом.
-
На базі майстер рецепту
Коктейль 1_1
створіть керівний рецепт: для цього в контекстному менюКоктейль 1_1
виберітьNew control recipe ...
, ім’я залиште таке саме. - Через вікно редактору рецепту (
Control recipe list
) відкрийте керівний рецепт та запустіть його на виконання. - Створіть ще один керівний рецепт і запустіть на виконання.
- Продублюйте рецепт
Коктейль2
з назвоюКоктейль 2_1
, зробіть його випуск (Release
). - На базі майстер рецепту
Коктейль 2_1
створіть керівний рецепт і запустіть його на виконання. - Вибираючи рецепт у списку майстер рецептів покажіть асоційовані з ним керівні рецепти (див. рис.7.13)
рис.7.13. Відображення списку керівних рецептів асоційованих з вибраним майстер рецептом
Зверніть увагу, що по завершенню керівного рецепту його не можна повторно виконати. Але керівний рецепт можна продублювати і знову виконати.
- Виділіть керівний рецепт який щойно виконався, продублюйте його і новостворений рецепт запустіть на виконання
За допомогою редагованих командних тегів, властивості в керівному рецепті можуть бути встановленими як змінювані в керівному рецепті (Changeable in control recipe
). У результаті, стане можливим перезаписувати значення командних тегів в кожному керівному рецепті. Значення в керівному рецепті може бути змінено тільки в межах, які були встановлені для тега в майстер рецепті.
- Позначте майстер рецепт
Коктейль 2_1
як застарілий (Highlited as outdated
), проаналізуйте доступні команди та властивості майстер рецепту.
5. Рецепти створені матричною формою означення
Окрім мови PFC у різних середовищах Batch керування для створення рецептів можуть використовуватися і інші форми означення, такі як мова SFC, список, таблиця, діаграма Ганта, та інші. У SCADA zenon можна використовувати табличну форму, яка зветься Матричною. Матрична форма (Matrix) представлення рецептів є більш простішою і не має усіх можливостей, що доступні в PFC. Зокрема, тут немає вибору послідовності (альтернативного розгалуження), переходів з умовами та виділення (Allocation) апаратів. Рецепт створюється у вигляді таблиці, де рядки є послідовністю кроків, а стовпці – етапами або операціями. Кожна клітинка таблиці може бути активованою або деактивованою незалежно одна від одної. Активність етапу/операції на кожному кроці означує необхідність їх виконання на цьому кроці. Рядки і стовпці можна додавати за необхідністю.
У наступному завданні необхідно створити майстер рецепт мийки, який буде складатися з 4-рьох кроків, на кожному з яких повинен бути активним один або декілька з етапів набору танку 1:
-
1 крок (наповнення): активний етап
Наповнити
на20%
-
2 крок(нагрівання з перемішуванням): активні етапи
Перемішувати
таНагрівати
протягом 10 секунд -
3 крок (витримка з перемішуванням): активний етап
Перемішувати
протягом 20 секунд -
4 крок (злити): активний етап
Вивантажити
до0%
;
У zenon необхідно створити створити майстер рецепт Мийка2
у матричному вигляді та перевірити його роботу.
-
У середовищі виконання zenon відкрийте вікно
Екран Batch
, та створіть новий рецептМийка2
матричного вигляду (Matrix recipe
) -
Добавте до рецепту 4 кроки та етапи для танку 1 (див.рис.7.14)
рис.7.14. Добавлення кроків та етапів/операцій
- Зробіть подвійний клік по етапу і шляхом виставлення опції
Phase active in this step
виставте активність етапів на кроках, як це показано на рис.7.15
рис.7.15. Налаштування активності етапів на кожному кроці
-
Налаштуйте за бажанням інші параметри кроків, відповідно до поставленого завдання
-
Переведіть майстер рецепт в режим тестування та запустіть його на виконання в тестовому режимі; це матиме вигляд як на рис.7.16
рис.7.16. Вигляд матричного рецепту в режимі виконання
6. Операції
Операції можуть бути використані для інкапсулювання задач, які повинні виконуватися в кількох рецептах. Прикладом цього є операція мийки, яку часто треба запускати після приготування будь-якого продукту. Замість трьох етапів, які постійно треба б було ставити в рецепт, туди можна помістити тільки одну операцію, яка буде заздалегідь створена з цих етапів. Так можна досягнути простішого та швидшого створення рецепту та зручнішого відображення великих рецептів.
У zenon необхідно створити та перевірити роботу операції Мийка
.
- У середовищі виконання zenon відкрийте вікно
Екран Batch
, та використовуючи команди редактора рецепту створіть операціюМийка
на мові PFC (див.рис.7.17)
рис.7.17. Відкриття списку операцій та створення нової операції
- Заповніть операцію аналогічно рецепту мийка (рис.7.18), перевірте її правильність та збережіть
- Відкрийте майстер-рецепт
Коктейль1
, перейдіть в режим редагування та добавте після етапуВивантажити
операціюМийка
(рис.7.18)
Операції не можуть бути перевірені безпосередньо. Щоб перевірити операцію, вона повинна бути частиною майстер рецепту і перевірена разом з ним.
рис.7.18. Наповнення операції “Мийка” та вставка його в процедуру майстер рецепту
- Перевірте правильність рецепту: переведіть його в режим тестування.
- Подвійним кліком зайдіть в операцію. Треба розуміти, що це не шаблон операції, а екземпляр цього шаблону, який є унікальним.
- Перемістіть екземпляр операції в свою власну групу так, щоб Ви могли побачити майстер рецепт і операцію поруч один з одним (рис.7.19)
рис.7.19. Відображення поряд операції та майстер-рецепту.
- Запустіть рецепт на виконання в режимі тестування.
Символ екземпляра операції представляє стан всіх вкладених в нього етапів. У підказці дається огляд помилок в екземплярі операції.
- Випустіть операцію
Мийка
на використання (Release
) через його контекстне меню
7. Створення, прив’язка змінних до Runtime Information Unit, відображення стану
Для того, щоб мати можливість контролювати стан виконання REE, рецепту або об’єктів в рецепті, модуль Batch Control пропонує прив’язувати цю інформацію до змінних. Ці змінні можуть бути відображені та використані для контролю.
В налаштуваннях Unit Batch Control для кожного апарату можна в налаштуваннях Runtime Information
вказати змінні, в яких буде відображатися актуальний стан (див.рис.7.20) пов’язаних з ним в даний момент рецептів Master recipe
(в режимі тестування, або на якому базується Control Recipe
) та Control Recipe
. До такої інформації відноситься:
ID
– ідентифікатор рецепту (тип UDINT)Description
– опис (string)Name
– ім’я(string)Version
– версія(udint)Initial Version
– початкова версія(udint)Job ID
– тільки для керівного рецепту (string)Number of active recipes
(udint)
рис.7.20. Налаштування зв’язку інформації по апаратам (Unit) в модулі Batch zenon.
-
Number of active recipes
– кількість активних рецептів: 0 або 1, при ручному форсуванні запуску рецепту може бути більше (тип UDINT) -
Execution Status
– стан виконання (відповідно до автомату стану) рецепту в текстовому і числовому вигляді (string та numeric), наведені в таб.7.1
Таб.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 |
Execution Mode
– режим виконання (відповідно до автомату стану) рецепту в текстовому і числовому вигляді (string та numeric), наведені в таб.7.2
Таб.7.2. Числові значення режимів виконання рецепту
Режими виконання рецепту | Значення | Примітка |
---|---|---|
Ignore | 0 | Рецепт не виконується |
Automatic | 1 | |
Semi-automatic | 2 | |
Manual | 3 |
Phases
– перелік активних етапів, розділених символом кінця рядку (string)
Окрім наведених вище даних в налаштуваннях Runtime Information
налаштовується також прив’язка змінних до інформації про помилки виконання та кроки матричного рецепту, якщо цей рецепт займає апарат.
У цьому пункті у zenon необхідно створити та налаштувати тип та змінні для відображення стану рецептів прив’язаних до апаратів.
- У проекті zenon створіть структурні типи
RECIPE_INFO
таUNIT_INFO
відповідно до наведеного рис.7.21 або імпортуйте їх з файлу за посиланням -
для кожного Unit в проекті створіть внутрішню змінну (driver
Intern
) zenon, яка буде містити інформацію про рецепт (див. рис.7.21) на базі типуUNIT_INFO
: T1_INFO
T2_INFO
DOZ_INFO
PCELL_INFO
рис.7.21. Створення змінних та типів для відображення актуальних станів прив’язаних до апаратів, агрегатів та технологічної комірки рецептів.
- У налаштуваннях
Runtime Information
для UnitТанк1
прив’яжіть змінні, як це показано на рис.7.22
рис.7.22. Налаштування Runtime Information для апарату Танк1.
Зверніть увагу що при виборі змінної поле Status
потрібно розширити щоб відображалися усі рівні вкладеності.
- аналогічно прив’яжіть змінні до інших Unit:
Танк2
,Установка
таДозатори
Для зручності вибору змінних з великого переліку можна користуватися фільтрами.
- Відкрийте
екран Batch
та видаліть зайві елементи, які використовувалися в 2-й лабораторній роботі (задана кількість доз) - Зробіть імпорт символу з файлу
symbrcpinfo.XML
за посиланням - За допомогою імпортованого символу покажіть інформацію про плинний стан рецептів, що займають апарати
Танк1
таТанк2
та агрегатДозатори
, приклад показаний на рис.7.23
рис.7.23. Приклад вікна Batch Control з інформацію про плинний стан прив’язаних до апаратів та агрегату рецептів.
Тепер необхідно показати яке обладнання наразі використовується в рецепті.
-
На
екрані Batch
, використовуючи поле зміннихN_ACTRCP
(Number of active recipes) реалізуйте індикатор, який буде показувати, що Unit зараз використовуються в рецепті, наприклад: -
перейдіть в налаштування
Limits
поляN_ACTRCP
типуUNIT_INFO
добавте 2 границі:0 – Minimum
, колір чорний (Black);1 – Maximum
, колір яскраво-зелений (Bright Green).
-
на екрані Batch змініть контури апаратів та дозатору так, щоб вони змінювали свій колір в залежності від зайнятості рецептом (рис.7.24). Наприклад для прямокутника що зображує танк 1:
рис.7.24. Відображення зайнятості апаратів та агрегату зміною кольору контуру обладнання.
8. Використання Runtime Information в процедурному керуванні рецептом
Інформацію про зайнятість обладнання можна використовувати і в логіці процедурного керування рецепту. У попередніх роботах для приготування одного і того самого продукту але в різних танках використовувалися різні майстер рецепти. Доречно в одному і тому самому рецепті прописувати процедуру приготування для усіх танків, в яких це можливо зробити. Вибір танку може проводитися вручну, або за певною умовою. Нижче описано, як реалізувати автоматичний вибір танку при запуску рецепту з використанням Unit Runtime Information
.
У zenon необхідно створити рецепт, який буде готовити продукт у будь-якому з вільних (не зайнятих іншим рецептом) танків
- У проекті zenon в створіть Unit
Цех
в якому створіть етапВибір танку
, який буде передувати приготуванню продукту в конкретному танку (див. рис. 7.25)
рис.7.25. Створення етапу Вибір танку, та тегів індикаторів зайнятості танків.
Даний етап потрібен тільки для того, щоб створити в ньому теги перевірки зайнятості танків. Інакшим чином інформацію в процедурне керування рецепту передати не можна. Логічно було б створити етап уже в існуючому Unit Установка
, який відповідає за функції Технологічної комірки (Process Cell). Однак, при виконанні етапу Вибір танку
Unit буде зайнятий рецептом, що не дасть можливість запустити в іншому рецепті етап Прокласти маршрут доз
. У зв’язку з цим необхідно створити новий Unit.
- В етапі
Вибір танку
створіть теги зворотного зв’язку (Return
) типуNumeric
з іменамиT1 Зайнятий
таT2 Зайнятий
та прив’яжіть їх до полівN_ACTRRCP
змінних відповідних танків (див. рис. 7.25)
Тепер в рецепті можна використовувати змінні, які будуть показувати скільки вже рецептів на даний момент використовують даний танк (займають його). Якщо кількість буде нульовою – танк незайнятий, тому його можна використовувати для приготування продукту в даному рецепті. Таким чином, в рецепті можна вказати процедуру приготування продукту в одному з двох танків, який буде вільним, через альтернативне розгалуження.
-
Збережіть проект, та запустіть середовище виконання zenon.
-
Відкрийте
Екран Batch
. Продублюйте операціюМийка
з назвоюМийка2
- Змініть операцію
Мийка2
так, щоб вона працювала з танком 2. Зробіть перевірку рецепту на помилки, та збережіть рецепт
-
Продублюйте Майстер рецепт
Коктейль1
(той, в якому була добавлена операція) та назвіть йогоКоктейль Кровава Мері
-
Модифікуйте
Коктейль Кровава Мері
так, щоб він готовив продукт в одному з двох танків: -
загальний вигляд процедури рецепту показаний на рис.7.26, використовуйте альтернативне галуження після етапу вибору такну
-
налаштування нових процедурних елементів показані на рис.7.27
-
аналогічно послідовності для приготування в
Танку1
створіть послідовність дляТанку2
, яка йде в альтернативній гілці; -
зверніть увагу на етап
Прокласти маршрут
там необхідно задати правильне число.
рис.7.26. Загальний вигляд рецепту “Коктейль Кровава Мері”.
рис.7.27. Налаштування деяких елементів рецепту “Коктейль Кровава Мері”.
Після перевірки умови незайнятості танку програма буде йти по відповідній гілці. Для убезпечення займання танку іншим рецептом, спочатку проводиться його явне займання (Allocation), а після закінчення приготування - вивільнення (Release).
-
Перевірте рецепт
Коктейль Кровава Мері
на помилки, збережіть його, та перевірте роботу майстер рецепту в режимі тестування: -
Спочатку запустіть рецепт
Коктейль Кровава Мері
і дочекайтеся його завершення: рецепт повинен приготувати продукт в Танку1; -
Після завершення рецепту запустіть в режимі тестування майстер-рецепт
Коктейль1
, щоб той зайнявАпарат1
; під час наповненняТанку1
знову запустіть на виконання рецептКровава Мері
;
Тепер рецепт Кровава Мері
повинен зайняти 2-й танк. Після перевірки майстер рецепту необхідно його випустити для експлуатації, щоб на базі нього можна було створювати керівні рецепти.
-
Випустіть для використання (
Release
) операціюМийка2
-
Випустіть для використання (
Release
) майстер-рецептКоктейль Кровава Мері
; -
У вікні рецептів покажіть список керівних рецептів, натомість перелік операцій приховайте.
- Через контекстне меню колонок налаштуйте поля для зручності відображення.
- На базі майстер рецепту
Коктейль Кровава Мері
створіть три керівні рецепти, дайте їм різні імена
- Запустіть ці керівні рецепти один за одним, не очікуючи завершення попереднього
- Спостерігаючи за написами стану (
Runtime Information
) прослідкуйте який рецепт в який час займає який апарат та агрегат дозування;
9. Обробка винятків (Error handling)
ISA88 передбачає врахування в автоматі станів результату обробки виняткових ситуацій. Ця обробка винятків як правило проводиться в логіці роботи апаратурних процедур (в ПЛК). Тим не менше, деякі винятки, наприклад комунікаційні помилки треба обробляти з обидвох боків - і з боку ПЛК (апаратурного керування) і з боку SCADA (апаратурне та рецептурне керування).
У даному пункті у програмі етапу phFILL
ПЛК та SCADA zenon в стані RUNNING
необхідно створити обробник помилок клапану відкриття.
- У проекті UNITY PRO відкрийте секцію функціонального блоку
phFILL
та змініть програму таким чином, щоб при будь-якій помилці клапану набору (статусні біти 0..3) етап переходив в станHolding
(рис.7.28);
(*при будь якій помилці клапану*)
if VLV.sta.0 or VLV.sta.1 or VLV.sta.2 or VLV.sta.3 then
phIO.STA:=7;(*перейти в стан Holding*)
end_if;
- зверніть увагу на дії, які відбуваються в стані
Holding
та як змінюється реакція автомату станів на команди керування;
рис.7.28. Модифікація програми для етапу phFILL
.
- Зверніть увагу що в стані
Held
, на клапан набору завжди відправляється команда закриття; - Зробіть компілювання програми, збережіть проект та внесіть зміни в імітатор ПЛК.
- У zenon для етапу
Наповнити
Танку 1 та Танку 2: - створіть умову виникнення помилки: це перехід етапу в ПЛК в стан
Holding
(STA = 7, див.рис.7.29) - змініть умову
Restarted
;
рис.7.29. Добавлення в zenon умови виникнення помилки для етапу.
- У реакціях етапу
Наповнити
створіть подіюPLC Error
, без прив’язки до змінної в якій пропишіть перехід етапу в станHeld
(Held phase
) коли виникне якась помилка з ПЛК (див.рис.7.30)
рис.7.30. Добавлення в zenon реакції на помилку в ПЛК.
- У UNITY PRO в онлайн режимі створіть таблицю анімації
- У таблицю анімації внесіть змінну
%I0.1.0
, та перейдіть в режим форсування
- Зафорсуйте змінну в стані
0
(FALSE).
- Проконтролюйте що режим імітації знаходиться не в прискореному режимі, або в операторському екрані Unity PRO натисніть
норма
.
-
У середовищі виконання zenon на екрані Batch виберіть рецепт
Коктейль1
та в режимі тестування запустіть рецепт. -
Зверніть увагу на стан етапу наповнити (рис.7.31); коли етап перейде в стан
Held
зніміть в UNITY PRO форсування зі змінної%I0.1.0
(unforce
) та перезапустіть етап; -
Дочекайтеся виконання рецепту
рис.7.31. Вигляд етапу Наповнити в стані “Held”
10. Поширення стану Held
За допомогою команд, що прописані в реакціях на події, можна реалізовувати поширення станів та режимів (propagation state
, propagation mode
) вгору. Тобто, наприклад, якщо важливий етап переходить в стан Holding
можна перевести весь рецепт в стан Holding
(Command = Recipe Holding
).
У цьому пункті у zenon необхідно реалізувати перехід усього рецепту в стан Holding
, коли етап Нагрівати
переходить в Held
.
- Добавте реакцію на подію
Held
без прив’язки до змінної, у реакції етапу на подіюHolding
пропишіть команду переходу усього рецепту вHolding
-
Збережіть зміни і скомпілюйте проект.
-
Запустіть рецепт
Коктейль1
на виконання в режиму тесту, виділіть етапНагрівати
, дочекайтеся його активації та переведіть командою керування з панелі в стан утримування (Hold Phase
); весь рецепт повинен перейти в станHeld
;
- Перезапустіть рецепт (
Restart Recipe
) та дочекайтесь його закінчення;
Для Batch Control дуже важливою є синхронізація між ПЛК і zenon. Кожен етап zenon може виявити проблеми зв’язку з ПЛК і реагувати на них. Етап повідомляє про втрату зв’язку, якщо параметри команди не можуть бути записані, або якщо результат виконання формули в обробнику помилок дає істину. Якщо відбувається втрата зв’язку, етап призупиняється (paused
) або утримується (held
), і через налаштовані реакції може виконатися певна подія.
Після запису командних тегів (параметрів), значення відповідних змінних негайно зчитуються з ПЛК. Крок Записати командний параметр
завершується тільки тоді, коли всі значення, які були прочитані відповідають записаним. Якщо хоча б одна змінна значення відрізняється, то після заданого часу очікування всі командні теги записуються знову. Якщо після третьої спроби запису усі прочитані змінні не будуть відповідати записуваним етап повідомляє про помилку зв’язку, після чого переходить в стан, означений в налаштуваннях Batch Control (рис.7.32).
рис.7.32. Налаштування дій етапів при втраті зв’язку та при виконанні формули.
На додаток до згаданого вище автоматичного виявлення помилок, для виявлення відмов зв’язку також можна пов’язати формулу (Loss of communication
). Таким чином, можна виявити збої не тільки при запису значень параметрів, але і під час активності етапу. Для того, щоб гарантувати безпечний повторний запуск рецепта після втрати зв’язку, можна запросити підтвердження для відновленої зв’язку (Loss of communication acknowledged
). Ці налаштування для кожного етапу проводяться окремо (див. рис.7.32).