Навчальні матеріали з автоматизації технологічних процесів та виробництв, розроблені спільнотою
Мета роботи – навчитися створювати для ПЛК логіку модулів керування відповідно до ISA-88.
У попердніх лабораторних роботах для керування виконавчими механізмами (ВМ) використовувались безпосередньо вихідні змінні. Однак ВМ, наприклад клапан, це більш складний об’єкт, який окрім дискретних сигналів (відкрити/закрити) потребує:
контролю стану за наявними датчиками положення;
сигналізування при несправності: не відкрився, не закрився, зрушив зі стану;
функціонування в режимах ручний/автоматичний: при ручному режимі команди керування видаються оператором.
Окрім цього, в залежності від типу ВМ, додатково може знадобитися ведення певної статистичної інформації про кількість включень, кількість тривог за певний час і т.д. З точки зору фізичної моделі, виконавчий механізм – це реальний фізичний пристрій, який знаходиться на найнижчому рівні ієрархії фізичних пристроїв підприємства. В термінах ISA-88, виконавчий механізм – це Модуль Керування (Control Module). Модуль Керування може виконувати тільки базові функції керування (basic control). Реалізація цих функцій в поєднані з описом стану Модуля Керування є апаратурним об’єктом (Equipment Entity). У даній лабораторній роботі необхідно реалізувати апаратурні об’єкти, та базові функції керування для цих об’єктів.
На рис.5.1 показаний можливий варіант виділення Модулів Керування (Control Module, надалі CM) для нашого об’єкта керування, а в табл. 5.1 наведений перелік цих об’єктів, вхідні та вихідні параметри, режими, стани та особливості керування.
Таблиця 5.1. Перелік CM та параметрів їх роботи
Назва CM | Опис | Вихідні змінні (на ВМ) | Вхідні змінні (датчики) | Примітка |
---|---|---|---|---|
CMVnab_D1 | Клапан набору D1 | VNabor_D1_M | VNabor_D1_CLS_M | Можна реалізувати єдиним типом cmVLVD ; Команди програмного керування: відкрити/закрити; Команди оператора: перевести в ручний/автоматичний, відкрити, закрити; Стани: відкритий, закритий, відкривається, закривається, невизначений; Стани тривог: не відкрився, не закрився, порушення стану; Режими: ручний/автоматичний; |
CMVslv_D1 | Клапан зливу D1 | VSliv_D1_M | VSliv_D1_CLS_M | |
CMVnab_D2 | Клапан набору D2 | VNabor_D2_M | VNabor_D2_CLS_M | |
CMVslv_D2 | Клапан зливу D2 | VSliv_D2_M | VSliv_D2_CLS_M | |
CMVnab_T1 | Клапан набору T1 | VNabor_T1_M | VNabor_T1_OPN_M VNabor_T1_CLS_M | |
CMVslv_T1 | Клапан зливу T1 | VSliv_T1_M | VSliv_T1_OPN_M VSliv_T1_CLS_M | |
CMVnab_T2 | Клапан набору T2 | VNabor_T2_M | VNabor_T2_OPN_M VNabor_T2_CLS_M | |
CMVslv_T2 | Клапан зливу T2 | VSliv_T2_M | VSliv_T2_OPN_M VSliv_T2_CLS_M | |
CMVdoz | Клапан перемикання дозатору | VDoz_T1toT2_M | VDoz_T1_OPN_M VDoz_T2_OPN_M | |
CMVngr_T1 | Клапан нагрівання Т1 | VNagrev_T1_M | відсутні | Можна реалізувати єдиним типом «cmVLVA»; Команди програмного керування: задане значення на клапан; Команди оператора: перевести в ручний/автоматичний, ручне завдання на ВМ; Стани тривог: відсутні; Режими: ручний/автоматичний; |
CMVngr_T2 | Клапан нагрівання Т2 | VNagrev_T2_M | відсутні | |
CMMix_T1 | Мішалка Т1 | KM1_M SC1_SP | GSM1_M | Можна реалізувати єдиним типом cmMIX ; Команди програмного керування: включити/відключити, задане значення на ПЧ; Команди оператора: перевести в ручний/автоматичний, ручне завдання на ПЧ, ручне вмикання/розмикання; Стани: вмикається, вимикається, увімкнений, вимкнений, невизначений; Стани тривог: не включився, не відключився; Режими: ручний/автоматичний; |
CMMix_T2 | Мішалка Т2 | KM2_M SC1_SP | GSM2_M |
вихідні змінні є проміжними внутрішніми змінними, які в секції Outputs
присвоюються реальним виходам
вхідні змінні треба створити як внутрішні і переприсвоїти входами в секції Inputs
Рис.5.1. Виділення Модулів Керування (CM)
Для взаємодії ЛМІ з CM стандарт ISA-88 рекомендує аналогічний до етапів механізм використання слова статусу та команди. Для цього в лабораторній роботі треба створити тип CM_INOUT
, змінні на основі якого будуть повідомляти оператора про стан CM, та дадуть можливість відправляти команди до CM. Таким чином такий тип повинен включати принаймні два поля: STA
(статус) та CMD
(команда). Кожний біт статусу буде відповідати за певний стан, а команда буде задаватися певним числовим кодом.
У табл. 5.2 показаний варіант побітового представлення статусу та значення команд які використовуватимуться в даній лабораторній роботі для дискретних клапанів. Слід зазначити, що кодування STA
та CMD
, як і їх обов’язкова наявність, не означена в стандарті ISA-88.
Таблиця.5.2. Опис структури CM_INOUT
з бітовими станами для клапану
Атрибут | Тип | Біт | Опис |
---|---|---|---|
STA | INT | 0 ALMOPN | =1 Не відкрився (скидаються при зміні команди або стану датчика) |
1 ALMCLS | =1 Не закрився (скидаються при зміні команди або стану датчика) | ||
2 ALMSNSR | =1 Помилка датчика (одночасне спрацювання обидвох датчиків положення) | ||
3 ALMSHFT | =1 Порушення стану (при закритому чи відкритому стані клапану зміна стану датчику без зміни команди на клапан) | ||
5 OPNS | =1 Відкривається | ||
6 CLSS | =1 Закривається | ||
7 OPND | =1 Відкритий | ||
8 CLSD | =1 Закритий | ||
9 MAN | =1 ручний режим | ||
10 GSSOPN | стан датчика відкриття | ||
11 GSSCLS | стан датчика закриття | ||
12 OUT | стан виходу на клапан | ||
CMD | INT | Команди: 16#0001 - CMD_OPN (відкрити); 16#0002 - CMD_CLS (закрити); 16#0301 – перевести в ручний режим; 16#0302 – перевести в автоматичний режим |
CM_INOUT
) в ПЛК для обміну зі SCADAУ цьому пункті необхідно створити типи для змінних CM для дискретних клапанів, що будуть взаємодіяти зі SCADA. Крім цього необхідно добавити змінні, які будуть містити інформацію про значення датчиків кінцевого положення для клапанів.
Спочатку необхідно в UNITY PRO створити тип CM_INOUT
та змінні для CM виконавчих механізмів.
Завантажте проект UNITY PRO з минулої лабораторної роботи.
Створіть структурний тип CM_INOUT
та зробіть Analyze
Рис.5.2. Створення типу та змінних CM_INOUT
variabless & FB inst -> Import
cmvarlab5.xsy
у наступному вікні биберіть Keep All
щоб залишити тип, який означений в проекті та натисніть Ok
проконтролюйте, у Вас повинні з’явитися змінні як на рис.5.2.
У секції INPUTS
зробіть переприсвоєння зовнішнім вхідним змінним (типу EBOOL), що відповідають за кінцеві положення виконавчих механізмів, як це показано нижче
Код для секції INPUTS
VNabor_D1_CLS_M := %I0.1.8;
VSliv_D1_CLS_M := %I0.1.10;
VNabor_D2_CLS_M := %I0.1.9;
VSliv_D2_CLS_M := %I0.1.11;
VNabor_T1_OPN_M := %I0.1.0;
VNabor_T1_CLS_M := %I0.1.4;
VSliv_T1_OPN_M := %I0.1.2;
VSliv_T1_CLS_M := %I0.1.6;
VNabor_T2_OPN_M := %I0.1.1;
VNabor_T2_CLS_M := %I0.1.5;
VSliv_T2_OPN_M := %I0.1.3;
VSliv_T2_CLS_M := %I0.1.7;
VDoz_T1_OPN_M := %I0.3.0;
VDoz_T2_OPN_M := %I0.3.1;
GSM1_M := %I0.3.2;
GSM2_M := %I0.3.3;
Тепер секція Inputs
матиме наступний вигляд
CM_CFG
) в ПЛК для збереження стану та конфігураційних налаштуваньОкрім змінної, що забезпечує взаємодію з HMI, необхідно передбачити можливість конфігурування CM, збереження його внутрішнього стану а також керування з програмної логіки (в противагу ручному керуванню). Можливим варіантом є використання для цього даних екземпляру функціонального блоку. У цій лабораторній роботі стан CM, його конфігурування та керування реалізовується теж через змінну, а не через екземпляр. Опис такого структурного типу для дискретних клапанів показаний в табл.5.4.
Таблиця 5.4. Опис структури CM_VLVDCFG
Атрибут | Тип | Опис |
---|---|---|
STA | INT | статусне слово (аналогічне CM_INOUT ) |
CMD | INT | слово команди (аналогічне CM_INOUT ) |
PRM | INT | біти параметрування: біт 0 – 1= наявність датчика відкриття біт 1 – 1= наявність датчика закриття |
STEP1 | INT | крок: 0 – ініціалізація; 1 – невизначений стан (резерв для майбутнього застосування); 2 – закритий; 3 – відкритий; 4 – відкривається; 5 – закривається |
TSTEP1 | INT | час кроку (в секундах) |
TOPN_SP | INT | заданий максимальний час відкриття (в секундах), використовується для організації тривог |
У цьому пункті необхідно створити тип CM_VLVDCFG
та відповідні змінні для CM виконавчих механізмів.
CM_VLVDCFG
(рис.5.3) та змінні типу CM_VLVDCFG
для дискретних клапанів, наведених в табл.5.3 (рис.5.3), або імпортуйте їх.Рис.5.3. Створення типу та змінних CM_INOUT
Файл для імпорту cmvlvdcfgrlab5.xsy
знаходиться за посиланням.
VALUE
) TOPN_SP
рівним 5
секунд (приклад наведений на рис. 5.4). Це значення затримки очікування датчиків кінцевого положення для клапанів. Якщо Ви імпортували змінні та тип, то у файлі імпорту ці значення вже виставлені, проконтролюйте, що це дійсно так.Рис.5.4
PLC -> Init
. У іншому випадку завантажте проект в емулятор ПЛК.смVLVD
) для клапанівУ цьому пункті необхідно створити тип функціонального блоку для реалізації CM клапанів.
cmVLVD
з імемен cmvlvd.xdb
за цим посиланнямKeep All
і Ok
для продовження роботи.Analyze
та збережіть проект, якщо немає помилок.Рис.5.6. Створення DFB типу та змінних cmVLVD
Рис.5.7. Створення DFB типу та змінних cmVLVD
Рис.5.7(1). Створення DFB типу та змінних cmVLVD (продовження)
Тепер необхідно реалізувати в UNITY PRO обробку CM для виконавчих механізмів.
Створіть один екземпляр функціонального блоку типу cmVLVD
з назвою CMVLVD
.
Створіть змінну MEA1S
типу EBOOL
для секундного меандру .
Створіть секцію VLV
з кодом, наведеним на рис.5.7. Код наведений нижче.
Рис.5.8. Секція VLV
VLV
(*використання одного екземпляру для усіх викликів дає ряд переваг:
- економя пам'яті
- використання глобальних змінних для всіх екзмеплярів
- відсутність необхідності дублювання інтерфейсних змінних в блоці і в змінних*)
CMVLVD.MEA1S:=%S6; (*бітовий меандр заводимо як глобальну змінну*)
(*конфігурвуання клапанів*)
CMVnab_D1.PRM.0:=false ;(*немає датчкива відкриття*)
CMVnab_D1.PRM.1:=true;(*є датчик закриття*)
CMVnab_D2.PRM.0:=false;CMVnab_D2.PRM.1:=true;
CMVSlv_D1.PRM.0:=false;CMVSlv_D1.PRM.1:=true;
CMVSlv_D2.PRM.0:=false;CMVSlv_D2.PRM.1:=true;
CMVnab_T1.PRM.0:=true;CMVnab_T1.PRM.1:=true;
CMVnab_T2.PRM.0:=true;CMVnab_T2.PRM.1:=true;
CMVslv_T1.PRM.0:=true;CMVslv_T1.PRM.1:=true;
CMVslv_T2.PRM.0:=true;CMVslv_T2.PRM.1:=true;
CMVslv_T2.PRM.0:=true;CMVslv_T2.PRM.1:=true;
CMVdoz.PRM.0:=true;CMVdoz.PRM.1:=true;
(*для клапанів з одним датчиком кінцевого положення на інший подаєм інверс-ну копію існуючого*)
CMVLVD (not VNabor_D1_CLS_M , VNabor_D1_CLS_M, VNabor_D1_M, CMVnab_D1_HMI, CMVnab_D1);
CMVLVD (not VNabor_D2_CLS_M , VNabor_D2_CLS_M, VNabor_D2_M, CMVnab_D2_HMI, CMVnab_D2);
CMVLVD (not VSliv_D1_CLS_M , VSliv_D1_CLS_M, VSliv_D1_M, CMVSlv_D1_HMI, CMVSlv_D1);
CMVLVD (not VSliv_D2_CLS_M , VSliv_D2_CLS_M, VSliv_D2_M, CMVSlv_D2_HMI, CMVSlv_D2);
CMVLVD (VNabor_T1_OPN_M , VNabor_T1_CLS_M, VNabor_T1_M, CMVnab_T1_HMI, CMVnab_T1);
CMVLVD (VNabor_T2_OPN_M , VNabor_T2_CLS_M, VNabor_T2_M, CMVnab_T2_HMI, CMVnab_T2);
CMVLVD (VSliv_T1_OPN_M , VSliv_T1_CLS_M, VSliv_T1_M, CMVslv_T1_HMI, CMVslv_T1);
CMVLVD (VSliv_T2_OPN_M , VSliv_T2_CLS_M, VSliv_T2_M, CMVslv_T2_HMI, CMVslv_T2);
CMVLVD (VDoz_T1_OPN_M, VDoz_T2_OPN_M, VDoz_T1toT2_M, CMVdoz_HMI, CMVdoz);
Скомпілюйте проект, якщо є помилки - виправте їх. Збережіть проект.
Якщо в офлійні, тоді завантажте проект в емулятор ПЛК та запустіть його на виконання.
У цьому пункті необхідно створити типи та змінні в SCADA zenon для реалізації інтерфейсних змінних CM_INOUT
, наведених в табл. 5.1.
Запустіть редактор zenon та відкрийте проект з лабораторної роботи 4.
Створіть тип змінної CM_INOUT
та змінні на базі нього, як це показано на рис.5.9. Ви можете також імпортувати змінні та тип, за інструкцією наведеною нижче.
Рис.5.9. Створення типів та змінних в SCADA zenon для обміну з CM
Рис.5.10.
Для імпорту змінних:
lab5CMV.XML
за посиланнямOk
Ok
проконтролюйте, що тип та змінні створилися відповідно до рис.5.9
Збережіть зміни в проекті.
Стан клапану повинен відображатися на мнемосхемі комбінацією кольорів та/або тексту. У лабораторній роботі пропонується використовувати для цього заздалегідь створений символ. Для керування клапаном також створений екран, який повинен викликатися при натисканні на зображення символу. Тобто символ та сторінка вже створені, необхідно їх імпортувати та використати в своєму проекті.
У цьому пунктів в SCADA необхідно імпортувати символ VLVD
та екран для керування клапаном.
symbVLVD.XML
за посиланням а також екрану screenVLV.XML
за посиланнямScreens/Symbol Library
виберіть команду ImportXML
і імпортуйте символ Сивмол VLVD.XML
У локальній бібліотеці символів з’явиться новий символ
Screens
виберіть команду ImportXML
і імпортуйте екран screenVLV.XML
для вікна керування клапаномУ вас повинен з’явитися фрейм AckWin
та екран Керування клапаном
У цьому пункті необхідно видалити старі символи зображень клапанів на Екрані Batch
та розмістити на їх місці нові символи для відображення станів клапанів.
Екран Batch
Symbol->Resolve
З’явиться вікно в якому треба вказати правило заміни. У символі прив’язки йдуть для клапану CMVslv_D2
, тому в правилі прив’язки в ресурсі (source
) треба вказати що будуть замінюватися усі змінні що починаються з CMVslv_D2
, тому в кінці виразу ставиться знак *
. Перший екземпляр символу буде використаний для клапану набору дозатору 1 (CMVnab_D1
), тому вкажіть правило заміни, яке буде наступним:
CMVslv_D2*
target: CMVnab_D1
Preview
, повинно показати заміну (рис.5.11). Натисніть Ok
Рис.5.11. Приклад заміни прив’язки для символу
linking rule
замініть прив’язки до змінних відповідно до призначення символу.Клапан | target |
---|---|
Вивантаження дозатору 1 | CMVslv_D1 |
Набору дозатору 2 | CMVnab_D2 |
Вивантаження дозатору 2 | CMVslv_D2 |
Набору Т1 | CMVnab_T1 |
Вивантаження Т1 | CMVslv_T1 |
Набору Т2 | CMVnab_T2 |
Вивантаження Т2 | CMVslv_T2 |
Між Т1 та Т2 | CMVdoz |
Preview
перевірте результати заміни.У цьому пункті необхідно реалізувати виклики екрану керування клапаном.
Екран керування клапаном налаштований тільки на один СМ - CMVslv_D2
. Для керування іншими кранами в zenon буде використаний механізм заміни прив’язок при виклику функції Screen switch
. Для цього у функції вказується параметр, замість якого буде передаватися текстове значення замінника в назві змінної.
Спочатку необхідно створити в zenon функції виклику та закриття сторінки клапану.
Створіть функцію Screen switch
, яка відкриває екран Керування клапаном
.
У параметрах функції у вкладці Replace indices
(НЕ Replace links
) вкажіть правило прив’язки заміни CMVslv_D2*
на параметром {PARAM}
, і натисніть кнопку Add rule
як це показано на рис.5.12.
Рис.5.12. Налаштування правила заміни для функції виклику екрану керування клапаном
Replace preview
з’являться змінювані змінні. Натисніть Ok
Дайте назву функції Відкрити вікно керування клапаном
Close screen
з розділу Screens
з назвою Закрити вікно
, яка закриває поточний екран (рис. 5.13).Рис.5.13. Налаштування функції Close Screen
Керування клапаном
і прив’яжіть до кнопки Ок
функцію Закрити вікно
.Тепер необхідно розмістити над клапанами прозорі кнопки для виклику вікон керування клапанами.
Екран Batch
поверх зображення клапану набору розмістіть кнопку.Прив’яжіть кнопку до виклику функції Відкрити вікно керування клапаном
.
У налаштуваннях параметрів вкажіть назву CM CMVnab_D1
Рис.5.14.
Fill->Transparent
Скопіюйте прозорі кнопки і розмістіть поверх усіх інших клапанів.
У налаштуваннях параметрів для кожної кнопки вкажіть назву CM, як це вказано в таблиці нижче.
Клапан | Parameter for substitution |
---|---|
Вивантаження дозатору 1 | CMVslv_D1 |
Набору дозатору 2 | CMVnab_D2 |
Вивантаження дозатору 2 | CMVslv_D2 |
Набору Т1 | CMVnab_T1 |
Вивантаження Т1 | CMVslv_T1 |
Набору Т2 | CMVnab_T2 |
Вивантаження Т2 | CMVslv_T2 |
Між Т1 та Т2 | CMVdoz |
РУЧ
щоб перевести клапан в ручний режим. Повинен засвітитися відповідний індикатор.Відкрити
та Закрити
спробуйте покерувати цим клапаном.Спробуйте покерувати іншими кранами в ручному режимі, перевірте, щоб всі вікна відкривалися для кранів вірно.
Для клапану перемикання у певному стані буде активована тривога. Ця тривога викликана помилкою в коді програми. Крім того, для цього ж клапану не будуть відображатися стани датчиків. Знайдіть помилки в програмі і виправте їх.
У UNITY PRO створіть таблицю анімацій, впишіть в неї адреси %I0.1.0
та %I0.1.4
. За допомогою команд форсування проімітуйте тривоги не закрився
, не відкрився
та порушення стану.
Тепер необхідно модернізувати реалізацію етапів так, щоб замість звичайних змінних там використовувалися CM. Такий підхід дасть можливість гнучко керувати процесом. На даному кроці побудови системи це дає можливість використовувати ручний режими керування виконавчими механізмами. У майбутньому це також дасть можливість реалізовувати додаткову поведінку етапу в нештатних ситуаціях.
У цьому пункті необхідно модифікувати DFB phFILL
для етапу набору та phDRAIN
для етапу зливу так, щоб в якості VLV використовувався тип CM_VLVDCFG
та відповідно необхідно змінити виклик етапів та перевірити працездатність програми.
У phFILL
для формального параметру VLV
змініть тип з EBOOL
на CM_VLVDCFG
.
Змініть реалізацію секції phFILL
(рис.5.15) вказавши VLV.CMD:=1
для відкриття та VLV.CMD:=2
для закриття.
phFILL_T1
(рис.5.15) вказавши в VLV := CMVnab_T1
Analyze
. Виправте помилки за необхідності.Рис.5.15. Зміна інтерфейсу, реалізації та використання CM_VLVDCFG
Зробіть те саме для етапу phDRAIN
.
Окрім дискретних клапанів необхідно реалізувати CM для аналогових клапанів. На відміну від дискретних клапанів інтерфейсні змінні окрім STA
та CMD
потребують ще аналогове значення виходу на клапан, яке буде використовуватися як для відображення, так і для ручної зміни (табл.5.7).
Для керування всередині етапів в даній лабораторній роботі можна, як і раніше, використовувати звичайне значення аналогового виходу, яке буде за необхідності в ручному режимі замінюватися значенням з HMI.
Таблиця 5.7. Опис структури CM_INOUTA
з бітовими станами для аналогового клапану
Атрибут | Тип | Біт | Опис |
---|---|---|---|
STA | INT | 9 MAN | =1 ручний режим |
CMD | INT | Команди: 16#0301 – перевести в ручний режим 16#0302 – перевести в автоматичний режим | |
VAL | REAL | стан виконавчого механізму, ручне значення вводу; в автоматичному режимі значення повторює вихід, в автоматичному – навпаки, значення задає вихід на ВМ |
У цьому пункті необхідно створити в UNITY PRO тип CM для аналогового клапану та реалізувати його для клапанів нагрівання (рис.5.16).
Створіть в UNITY PRO тип CM_INOUTA
.
Створіть змінні CMVngr_T1
та CMVngr_T2
типу CM_INOUTA
та прив’яжіть їх до реальних адрес (рис.5.16). Зробіть Analyze
щоб перевірити помилки.
Рис.5.16. Створення в UNITY PRO CM для аналогового клапану
cmVLVA
(рис.5.1.6) та зробіть Analyze
Код секції:
MAN := HMI.STA.9;(*ручний режим*)
(*команди з HMI*)
case HMI.CMD of
16#0301:(*перевести в ручний*)
MAN:=true;
16#0302:(*перевести в автомат*)
MAN:=false;
end_case;
HMI.CMD:=0;
if man then (*в автоматичному режимі*)
OUT:=HMI.VAL;
else (*в ручному режимі*)
HMI.VAL:=OUT;
end_if;
HMI.STA.9:=MAN;
Створіть один екземпляр типу cmVLVA
з таким саме іменем.
У секції VLV
допишіть фрагмент коду з викликом cmVLVA
для двох клапанів.
CMVLVA (VNagrev_T1_M, CMVngr_T1);
CMVLVA (VNagrev_T2_M, CMVngr_T2);
У цьому пункті необхідно створіть в zenon тип CM для аналогового клапану та реалізувати його для клапанів нагрівання (рис.5.17) та перевірити роботу програми.
У SCADA zenon створіть структурний тип даних CM_INOUTA
з полями: STA
, CMD
, VAL
(рис.5.17).
Створіть змінні CMVngr_T1
та CMVngr_T2
типу CM_INOUTA
та вкажіть для них адреси (рис.5.17).
Рис.5.17. Створення в zenon CM для аналогового клапану та графічного інтерфейсу для нього
VAL
на 0-100%
На мнемосхемі Екран Batch
змініть прив’язку для елементу відображення значення клапану CMVngrT1.VAL
та CMVngrT2.VAL
з можливістю їх зміни.
Скопіюйте з екрану Керування клапаном
елементи відображення та зміну автоматичного/ручного режиму. Розмістіть їх так, як показано на рис.5.17 Змініть прив’язки на змінні CMVngrT1.STA
та відповідно CMVngrT2.STA
.
0 %
. Запустіть на виконання рецепт. На етапі нагрівання клапан буде в позиції, яку було задано в ручному режимі. Переведіть на автоматичний режим та дочекайтеся закінчення виконання рецепту.У цьому пункті необхідно самостійно реалізувати CM для приводу мішалок. Для спрощення завдання будемо вважати що керування частотою приводу мішалки залишається без змін, хоча в реальності необхідно реалізовувати це як один CM, який має функції як дискретного так і аналогового керування. Тому за реалізацією спрощений CM для мішалок схожий на CM для дискретного клапану. Нижче наведемо деякі уточнення щодо роботи.
Увімкнення двигунів мішалок керуються дискретними змінними:
двигун мішалки 1 - %q0.1.26
(KM1_M
)
двигун мішалки 2 - %q0.1.27
(KM2_M
)
Стан приводу мішалки контролюється дискретними входами:
стан приводу мішалки 1 - %i0.3.2
(GSM1_M
)
стан приводу мішалки 2 -%i0.3.3
(GSM2_M
)
Таким чином коли на вихід керування увімкненням мішалки подається 1
, стан приводу практично миттєво (<1 сек) повинен повторити цю 1
, так само і команду вимкнення 0
. Тому для обміну зі SCADA можна використовувати тип в ПЛК CM_INOUT
, однак при цьому біти стану будуть дещо відмінними
Атрибут | Тип | Біт | Опис |
---|---|---|---|
STA | INT | 0 ALMSTRT | =1 Не запустився (скидаються при зміні команди або стану датчика) |
1 ALMSTP | =1 Не зупинився (скидаються при зміні команди або стану датчика) | ||
5 STRT | =1 Вмикається | ||
6 STP | =1 Вимикається | ||
7 RUN | =1 Відкритий | ||
8 STP | =1 Закритий | ||
9 MAN | =1 ручний режим | ||
10 GSRUN | стан пускача | ||
12 OUT | стан виходу на двигун | ||
CMD | INT | Команди: 16#0001 - CMD_STRT (запустити); 16#0002 - CMD_STP (зупинити); 16#0301 – перевести в ручний режим; 16#0302 – перевести в автоматичний режим |
Так само в якості конфігураційної змінної можна використати CM_VLVDCFG
, однак TOPN_SP
буде не час відкриття а час спрацювання приводу.
cmMIX
. У якості прототипу можете використати DFB cmVLVD
.CMMIX
, реалізуйте в секції VLV
виклики для мішалки Т1
та Т2
.phDRAIN_T1
та phMIX_T1
з передачею туди новостворених CM.