atpv

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

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

ЛАБОРАТОРНА РОБОТА 6. Модель апаратурних об’єктів та координаційне керування

Мета роботи – розглянути модель апаратурних об’єктів та координаційне керування.

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

У попередніх лабораторних роботах в межах моделі обладнання (equipment model) установки приготування продукту для танків ми створили Апарати (Unit) Танк1 та Танк2 (рис.6.1) та модулі керування для реалізації виконавчих механізмів. У даній лабораторній роботі необхідно повністю реалізувати все процедурне керування, для чого виділимо усі процедурні елементи та обладнання (equipment).

Установка, що розглядається в лабораторній роботі 6, робить повністю партію певного продукту, отже вона з точки зору ISA-88 є технологічною коміркою (Process Cell). Враховуючи, що продукт може готуватися одночасно в двох танках, то в цій технологічній комірці може одночасно виконуватися приготування двох партій продукту.

Для обох танків використовується одна установка дозування, яка включає в себе два дозатори та клапан перемикання CMVdoz. З точки зору процедурного керування установка робить дві дії – дозування певної кількості компоненту A (Дозатор D1) та B (Дозатор D2). Ці технологічні дії найбільш підходять до функцій етапу (phase). Тому в межах обладнання необхідно створити етапи: Добавити А та Добавити B, в параметрах яких задавати необхідну кількість доз компоненту.

image-20240102114237908

Рис.6.1. Виділення Агрегату (EM) та Апаратів (UN) у технологічній комірці

Тепер необхідно визначитися з тим, до якого типу обладнання відноситься установка дозування. Оскільки етап – це процедурне керування, він може виконуватися в Апараті (Unit), в Агрегаті (Equipment Module) або в Технологічній Комірці (Process Cell). Установка дозування найкраще підходить до поняття Агрегату (Equipment Module), так як в ній не готовиться продукт і вона є допоміжним обладнанням. Самі дозатори зручно реалізувати у вигляді модулів керування, які будуть брати на себе усю логіку підрахунку кількості доз. Таким чином, до складу Технологічної комірки крім танків будуть входити два модулі керування дозаторами CMDozator1 та CMDozator2 , які будуть в складі Агрегату EMDozators .

У моделі обладнання установка дозування не належить жодному танку, оскільки може використовуватися будь яким з них. З цього слідує декілька висновків:

Діяльність Allocation відноситься до координаційного керування, яке теж необхідно реалізувати.

Загальна модель апаратурних об’єктів показана на рис.6.2. Для спрощення на рисунку показані не всі об’єкти.

image-20240102114312504

Рис.6.2. Узагальнена модель апаратурних об’єктів (Equipment Entity Model)

Для можливості використання установки дозування в рецептах необхідно в межах Агрегату EMDozators створити етапи. Поки в явному створенні EMDozators в Unity Pro немає необхідності, тому достатньо створити етапи та викликати їх в програмі, аналогічно, як це було зроблено для етапів танків. Слід також відмітити, що в структурі означення компонувальних блоків Batch zenon немає інших типів апаратурних об’єктів, окрім Unit. Тим не менше, з точки зору означення рецепту немає різниці, як саме називається тип апаратурного об’єкту, оскільки користувач буде бачити тільки його назву. Іншими словами, як для Апаратів так і для Технологічних Комірок, і для Агрегатів в означенні компонувальних блоків Batch будуть використовуватися також Unit. Щоб користувач оперував зрозумілими для нього словами, замість EMDozators будемо використовувати назву агрегату «Дозатори».

Варто відмітити, що у ISA-88.01-2010 Агрегати (Equipment Modules), етапи яких можуть безпосередньо викликатися з рецептів, називаються рецептно-обізнаними агрегатами (recipe-aware equipment module).

Для дозування сумішей з дозаторів в Танк 2 необхідно зробити перемикання 3-х ходового клапану. Враховуючи, що клапан належить технологічній комірці, саме вона повинна реалізувати таке перемикання. Це можна зробити через базове керування, або через явний виклик етапу, який буде частиною технологічної комірки. Вибір реалізації для таких задач залежить від об’єкту і вимог. У даній лабораторній роботі використаємо окремий етап Прокласти шлях для дозування, в параметрах якого буде вказуватися номер танку, до якого необхідно перемкнути дозатори. Така реалізація дасть можливість в рецепті явно вказувати той момент, коли необхідно робити таке перемикання. Етап необхідно створити в межах технологічної комірки, так як згідно моделі апаратурних об’єктів (рис.6.2) клапан належить саме їй.

Окрім керування необхідно реалізувати блокування запуску етапів та програм дозування без явного дозволу. Це загальноприйнята практика координаційного керування, коли запуск процедур повинно бути дозволено, або заборонено. Якщо оператор явно вибирає маршрут, то тільки після його прокладання можливий дозвіл на запуск дозаторів. У нашому випадку маршрутів для дозування буде лише два:

Вибір маршруту буде задаватися окремою змінною DOZROUTE_SP, яка буде приймати значення:

Блокування необхідно зробити як в програмі модулів керування дозаторів (CMDozator), так і в етапах дозування, наприклад в SCADA (Дозувати). Для CMDozator введемо додатковий біт стану DOZENBL (STA.13). Цей біт буде змінюватися ззовні CM, а саме в реалізації програми керування Технологічної Комірки. Цей же біт буде використовуватися для дозволу дозування в zenon.

У ISA-88 описане вище керування, що не робить ніяких явних технологічних дій або керування обладнанням, а лише дозволяє/забороняє, змінює режим чи стан базового або процедурного керування прийнято називати Координаційним керуванням (Coordination Control).

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

  1. Створити CM для дозаторів (з боку ПЛК та SCADA) та перевірити їх роботу.
  2. Створити EM для установки дозування (з боку ПЛК та SCADA) етапів для них, та реалізувати інтерфейс.
  3. Створити етапи та апаратурні елементи для 2-го танку.
  4. Забезпечити блокування етапів дозування при невірному стані 3-ходового клапану перемикання дозатору на танки.
  5. Реалізувати перемикання дозаторів на необхідний танк в залежності від вибраного маршруту.
  6. Реалізувати єдиний рецепт для приготування продукту у будь-якому вільному танку.

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

1. Створення СМ дозаторів в ПЛК

У цьому пункті спочатку необхідно в Unity Pro створити тип та змінні для керування та контролю дозаторами.

image-20240102114331582

Рис.6.3.Тип та змінні в Unity Pro для керування/контролю дозування

Тепер треба створити DFB тип, екземпляри та виклики для керування та контролю дозаторами.

image-20240102114350036

Рис.6.4.Тип DFBдля реалізації CM дозатору

image-20240102114406911

(*плинний статус дозатору - розпаковка бітів*)
STEP1:=Dozator.STA and 16#000F;(*тільки молодший байт використовується для значення кроку*)
UP:=Dozator.STA.8;(*набирається*)
DOWN:=Dozator.STA.9;(*зливається*)
COMPL:=Dozator.STA.10;(*кількість доз досягнута*)
UP_PREV:=Dozator.STA.11;(*стан набору до зупинки*)
DOWN_PREV:=Dozator.STA.12;(*стан зливу до зупинки*)

if Dozator.CMD=2 then(*припинити дозування*)
	step1:=1;
	(*запамятати стан*)
	UP_PREV:=UP;DOWN_PREV:=DOWN;
end_if; 
if Dozator.CMD=3 then step1:=0; end_if; (*ініціалізувати дозатор*)

if dozator.DozesPV < Dozator.DozesSP then
	COMPL:=false;	
end_if;

CASE STEP1 OF
	  0: (*інціалізація/невизначений стан*)
		dozator.DozesPV:=0;
		UP_PREV:=false;DOWN_PREV:=false;COMPL:=false;
		STEP1:=1;
	  1: (*дозування припинено*)
		VLVin.cmd:=2;
		VLVout.cmd:=2;
		if Dozator.CMD=1 then (*продовжити/почати дозування*)
		  if LSH then step1:=3; (*повний*)
		  elsif NOT LSL then step1:=2; (*порожній*)
		  else (*наповнюється або зливаться залежить від попереднього стану*)
			if UP_PREV then step1:=4; 
			else step1:=5;
			end_if; 
		  end_if; 
		end_if;	
	  2: (*порожній*)
	  if VLVout.STA.8 then (*якщо вихідний клапан закритий*)
		if dozator.DozesPV >= Dozator.DozesSP then 
		   COMPL:=true; (*кількість доз досягнута*)
		   step1:=1;		
		else
		   step1:=4;	
		end_if;	
	  end_if;
	  3: (*повний*)
	  if VLVin.STA.8 then  (*якщо вхідний клапан закритий*)
		step1:=5;
		dozator.DozesPV:=dozator.DozesPV+1; (* +1 доза*)
	  end_if;	
	  4: (*наповнюється*)
	   VLVin.cmd:=1;
	  if LSH then 
		step1:=3; 
		VLVin.cmd:=2;
	  end_if; 	
	  5: (*зливається*)
	   VLVout.cmd:=1;
	  if not LSL then 
		step1:=2; 
		VLVout.cmd:=2;
	  end_if;			
	  ELSE (*інціалізація*)
	  STEP1:=0;   	
END_CASE;

(*блокування: закриття клапанів по датчику на будь якому кроці*)
if LSH then VLVin.cmd:=2; end_if;	
if not LSL then VLVout.cmd:=2; end_if;

UP:=(STEP1=4);
DOWN:=(STEP1=5);

Dozator.CMD:=0; (*обнулити команду*)

(*плинний статус дозатора - упаковка бітів*)
Dozator.STA:=0;
Dozator.STA.8:=UP;(*наповнюється*)
Dozator.STA.9:=DOWN;(*зливається*)
Dozator.STA.10:=COMPL;(*кількість доз досягнута*)
Dozator.STA.11:=UP_PREV;(*стан набору до зупинки*)
Dozator.STA.12:=DOWN_PREV;(*стан зливу до зупинки*)
Dozator.STA := Dozator.STA or STEP1;
CMDozator (VLVin := CMVnab_D1, VLVout := CMVslv_D1, Dozator := CMDozator1, LSH := LSH_D1, LSL := LSL_D1);
CMDozator (VLVin := CMVnab_D2, VLVout := CMVslv_D2, Dozator := CMDozator2, LSH := LSH_D2, LSL := LSL_D2);

image-20240102114420649

Рис.6.5. Програма виклику CM дозаторів в секції Dozators

2. Створення змінних СМ дозаторів в SCADA

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

image-20240102114433351

Рис.6.6. Створення та налаштування в zenon типу CM_Dozator

image-20240102114449179

Рис.6.7. Створення та налаштування в zenon змінних CM_Dozator

image-20240102114459038

Рис.6.8. Створення та налаштування в zenon ЛМІ для керування та контролю дозаторів

3. Перевірка роботи СМ дозаторів

4. Створення ЕМ, етапів для установки дозування в ПЛК

У цьому пункті спочатку необхідно створити DFB-тип phDoze та один екземпляр цього типу для реалізації етапу Дозувати.

image-20240102114513213

image-20240102114524742

Рис.6.9. Створення типу DFB для етапу «Дозувати»

(*обробка команд керування автоматом станів етапу phDRAIN*)
CASE phIO.CMD OF
  1: (*Phase started*)
    phIO.STA:=1;
  2:;(*Finished writing command tags*)
  3: (*Phase finished: Phase done condition fulfilled and Minimum execution duration reached (if engineered)*)
    phIO.STA:=3;
  4: (*Phase deactivated*)
    phIO.STA:=0; 
    Dozator.CMD:=3; (*ініціалізувати дозатор*)
  10: (*Status change: Pausing*)
    phIO.STA:=5;
  11: (*Status change: Resuming*)
    phIO.STA:=1;
  12: (*Status change: Holding*)
    phIO.STA:=7;
  13: (*Status change: Restarting*)
    phIO.STA:=11;
  14: (*Status change: Stopping*)
    phIO.STA:=3;
  15: (*Status change: Aborting*)
    phIO.STA:=9;
  20:; (*Mode change: Automatical*)
  21:; (*Mode change: Semi-automatic*)
  22:; (*Mode change: Manual*)
  30:; (*Exit Runtime initiated*)
  31:; (*Runtime restart*)
  32:; (*Unit allocation not possible*)
  33:; (*Waiting period unit allocation exceeded*)
  34:; (*Input interlocking blocked*)
  35:; (*Waiting period input interlocking exceeded*)
  36:; (*Maximum execution period exceeded*)
  37:; (*Waiting period following condition exceeded*)
  38:; (*Phase started multiple times*)	
  ELSE
      ;	
END_CASE;
phIO.CMD:=0;(*після обробки команда обнуляється*)


CASE phIO.STA OF
  0:;(*Idle*)

  1:;(*Running*)
	Dozator.CMD:=1; (*продовжити/почати дозування*)
	if dozator.STA.10 then (*кількість доз досягнута*) 
		phIO.STA:=12;
	end_if;	
  2:;(*Complete (Executed)*)
	Dozator.CMD:=2; (*припинити дозування*)  
  3:;(*Stopping*)
	Dozator.CMD:=2; (*припинити дозування*) 
	phIO.STA:=4; 
  4:;(*Stopped*)
  5:;(*Pausing*)
	Dozator.CMD:=2; (*припинити дозування*)   
	phIO.STA:=6; 
  6:;(*Paused*)
  7:;(*Holding*)
	Dozator.CMD:=2; (*припинити дозування*)  
	phIO.STA:=8; 
  8:;(*Held*)
  9:;(*Aborting*)
	Dozator.CMD:=2; (*припинити дозування*)   
	phIO.STA:=10;
  10:;(*Aborted*)
  11:;(*Restarting*)
	phIO.STA:=1;
  12: (*Completed*)
	Dozator.CMD:=2; (*припинити дозування*)		
  ELSE
   (*якщо значення відрізняється від 
    доступних - перехід в Idle*)
    phIO.STA:=0;Dozator.CMD:=3; (*ініціалізувати дозатор*) 
END_CASE;

Тепер необхідно створити інтерфейсні змінні phioDOZE_A та phioDOZE_B типу PhaseINOUT та реалізувати виклик етапів.

image-20240102114539658

Рис.6.10. Створення змінних та програми виклику етапів

 phDoze (phIO := phioDOZE_A, Dozator := CMDozator1);
 phDoze (phIO := phioDOZE_B, Dozator := CMDozator2); 

5. Створення ЕМ, етапів для установки дозування в SCADA

Тепер у SCADA zenon необхідно створити змінні та компонувальні блоки для етапів Добавити А та Добавити B.

image-20240102114550566

Рис.6.11. Створення змінних та програми виклику етапів

image-20240102114600086

Рис.6.12. Створення компонувальних блоків-етапів для дозування

image-20240102114612105

Рис.6.13. Зміна умови завершення етапу

6. Перевірка роботи EМ дозаторів

image-20240108134535603

image-20240108134636178

image-20240102114626999

Рис.6.14. Вигляд майстер-рецепту Коктейль 1

Таблиця 6.3. Налаштування елементів майстер рецепту Коктейль 1

Елемент Налаштування Примітка
етап Наповнити Maximum Execution Duration = 00:02:00 Заданий рівень наповнення = 70%  
етап Добавити А Задана кількість = 2  
етап Добавити B Задана кількість = 3  
етап Перемішувати Задана швидкість перемішування = 20 об/хв Minimum execution duration = 00:01:00  
етап Нагрівати Задана потужність нагрівання = 80%  
Умова переходу після Нагрівати Танк1.Нагрівати.Температура>35  
етап Вивантажити Заданий рівень = 1% (Мін=0% Макс=100%)  

image-20240108135657005

7. Створення компонувальних блоків для 2-го Танку в ПЛК та SCADA

До сих пір етапи були створені тільки для 1-го танку. Тепер необхідно створити етапи для 2-го танку. Спочатку необхідно перейменувати змінні для посилання їх на 1-й танк та добавити змінні для 2-го танку.

image-20240102114638255

Рис.6.15. Перейменовані змінні в Unity Pro та SCADA zenon

image-20240102114649162

image-20240102114659708

Рис.6.16. Інтерфейсні змінні етапів для 2-го танку

Звертайте увагу на однаковість найменування в zenon, наприклад T1 пишіть у кожній змінній на латиниці, а не кирилиці! Це вплине на автоматизацію заміни та функціонування правил прив’язки.

image-20240108143945953

image-20240102114711316

Рис.6.17. Додаткові змінні в zenon для контролю та керування 2-м танком

Тепер необхідно реалізувати процедурне керування, будівельні блоки для 2-го танку.

image-20240108221850824

image-20240102114722570

Рис.6.18. Зміна зв’язків для Unit Танк2

8. Створення та перевірка нового майстер рецепту для танку 2

image-20240108145951370

image-20240108150544694

image-20240108150809260

image-20240108150951624

image-20240102114736498

Рис.6.19. Використання можливості групування та фільтрації при виборі етапу

image-20240108151315360

9. Створення змінної для прокладання шляху для дозування в танки та блокування

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

Спочатку в Unity Pro та zenon необхідно створити змінну заданого маршруту для дозування, та вивести їх на екран.

image-20240102114749475

image-20240102114803880

Рис. 6.20. Змінні заданого маршруту дозування

Тепер у Unity Pro необхідно реалізувати блокування модулів керування дозування при невідповідності заданого маршруту дійсному положенню клапану.

(*дозвіл керування дозаторами*)
CMDozator1.STA.13:=(CMVdoz_HMI.STA.8 and DOZROUTE_SP=1) (*якщо клапан закритий (дозатор на Т1) і вибраний шлях на Т1*) 
		   or(CMVdoz_HMI.STA.7 and DOZROUTE_SP=2);(*або якщо клапан відкритий (дозатор на Т2) і вибраний шлях на Т2 *)
(*дозвіл для 2-го дозатору надається за тими ж правилами*)		    
CMDozator2.STA.13:= CMDozator1.STA.13; 

image-20240108162721288

Рис.6.21. Код для секції Production

image-20240102114825833

Рис.6.22. Зміна типу DFB cmDozator

image-20240108165354359

image-20240108165821764

image-20240108170625512

10. Блокування етапів в SCADA

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

image-20240102114839671

Рис.6.23. Налаштування умови блокування для запуску етапу Добавити А

image-20240102114850833

Рис.6.24. Налаштування умови блокування для запуску етапу «Добавити А»

image-20240108172744459

11. Реалізація етапу прокладення маршруту

У цьому пункті необхідно реалізувати етап прокладення маршруту дозування до танків phDOZROUTE_SP та включити його в рецепти.

image-20240102114904322

Рис.6.25. Створення інтерфейсних змінних, та екземпляру для phDOZROUTE

CASE phIO.CMD OF
  1:;(*Phase started*)
        phIO.STA:=1;
  2:;(*Finished writing command tags*)
  3: (*Phase finished: Phase done condition fulfilled and Minimum execution duration reached (if engineered)*)
    phIO.STA:=3;
  4: (*Phase deactivated*)
    phIO.STA:=0;
  5: (*Phase activated*)
    DOZROUTE_SP:=0;  
  10: (*Status change: Pausing*)
    phIO.STA:=5;
  11: (*Status change: Resuming*)
    phIO.STA:=1;
  12: (*Status change: Holding*)
    phIO.STA:=7;
  13: (*Status change: Restarting*)
    phIO.STA:=11;
  14: (*Status change: Stopping*)
    phIO.STA:=3;
  15: (*Status change: Aborting*)
    phIO.STA:=9;
  20:; (*Mode change: Automatical*)
  21:; (*Mode change: Semi-automatic*)
  22:; (*Mode change: Manual*)
  30:; (*Exit Runtime initiated*)
  31:; (*Runtime restart*)
  32:; (*Unit allocation not possible*)
  33:; (*Waiting period unit allocation exceeded*)
  34:; (*Input interlocking blocked*)
  35:; (*Waiting period input interlocking exceeded*)
  36:; (*Maximum execution period exceeded*)
  37:; (*Waiting period following condition exceeded*)
  38:; (*Phase started multiple times*)	
  ELSE
      ;	
END_CASE;
phIO.CMD:=0;(*після обробки команда обнуляється*)


CASE phIO.STA OF
  0:;(*Idle*)

  1:;(*Running*)
	if DOZROUTE_SP=1 then (*маршрут на 1-й танк*)
		VLV.CMD:=2;
		if VLV.STA.8 then phIO.STA:=12;end_if; (*маршрут прокладено*)  
	elsif DOZROUTE_SP=2 then(*маршрут на 2-й танк*)
		VLV.CMD:=1;
		if VLV.STA.7 then phIO.STA:=12;end_if; (*маршрут прокладено*) 
	end_if;
  2:;(*Complete (Executed)*)
  3:;(*Stopping*)
	phIO.STA:=4; 
  4:;(*Stopped*)
  5:;(*Pausing*)   
	phIO.STA:=6; 
  6:;(*Paused*)
  7:;(*Holding*)
	phIO.STA:=8; 
  8:;(*Held*)
  9:;(*Aborting*) 
	phIO.STA:=10;
  10:;(*Aborted*)
  11:;(*Restarting*)
	phIO.STA:=1;
  12:; (*Completed*)	
  ELSE
   (*якщо значення відрізняється від 
    доступних - перехід в Idle*)
    phIO.STA:=0;
    DOZROUTE_SP:=0; (*скинути завдання маршруту для уникнення випадкового дозування*)
END_CASE;
phDOZROUTE (phIO := phioDOZROUTE, VLV := CMVdoz, DOZROUTE_SP := DOZROUTE_SP);

image-20240102114920887

Рис.6.26. Виклик етапу phDOZROUTE

Тепер в zenon необхідно реалізувати компонувальні блоки, як це показано на рис.6.27:

image-20240102114932184

Рис.6.27. Налаштування параметрів етапу «Прокласти маршрут» в zenon

image-20240102114949164

Рис.6.28. Налаштування реакцій етапу «Прокласти маршрут»

image-20240102115000403

Рис.6.29. Вигляд зміненого рецепту «Коктейль 2»

12. Конфлікт одночасного доступу до ресурсу

У даному пункті розглянемо конфліктну ситуацію, коли одночасно запущені два рецепти.

image-20240108211019068

image-20240108212432719

Враховуючи, що 3-х ходовий клапан та Агрегат установки дозування є ресурсом спільного користування (common resource), то у будь-який момент часу будь-який споживач (обладнання або рецепт) може використати його для своїх цілей. Саме це і сталося в цьому, випадку, так як етапи Добавити А та Добавити B одного і того ж EM Дозатори використовувалися для різних рецептів одночасно. Обробка через автомат станів також відбувається за випадковою конкуренцією (хто раніше зреагував). Це не нормальна ситуація, і такий тип ресурсів потребує ексклюзивного використання, тому необхідно передбачити обмеження одночасного доступу.

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

У нашому випадку перед перемиканням дозування на потрібний танк, необхідно зайняти його (Агрегат дозування). Після надання Агрегату рецепту, можна перемикати клапан на потрібний танк. Таким чином, поки Агрегат дозування буде зайнятий, ніхто не зможе не тільки скористатися його етапами (наприклад, коли дозування на одному з дозаторів закінчено), але і не перемкне клапан. Для виконання надання ресурсу рецепту в PFC передбачений спеціальний символ Allocation, який використовується для попереднього займання ресурсу перед його використанням та наступним його вивільненням ресурсу.

13. Використання Allocation для вирішення конфліктів

У даному пункті необхідно виправити рецепти так, щоб перед використанням дозування їм надавався у використання EM Дозатори, а після використання вивільнявся.

image-20240102115017332

Рис.6.30. Вигляд зміненого рецепту з елементами Allocation

image-20240108215213039

Хоч в рецепті заданий рівень наповнення вказаний 70% , етап наповнення не завершується так як наступний рецептурний елементAllocation не виконався успішно і він не дає завершитися попередньому етапу. Це особливості реалізації zenon, тому для вирішення цієї проблеми задане значення наповнення повинно перевірятися всередині ПЛК. Вирішимо цю проблему в наступному пункті.

14. Коригування етапу Наповнити

У цьому пункті необхідно виправити компонувальні блоки етапів Наповнити так, щоб умова завершення перевірялася в ПЛК, а не SCADA.

image-20240102115030044

Рис.6.31. Налаштування етапу наповнити для виконання умови завершення його в ПЛК

Тепер у Unity Pro необхідно відредагувати DFB phFILL таким чином, щоб він завершувався при досягненні заданого рівня:

if Level >= LevelSP then
	phIO.STA := 12;
end_if;	
  12:;(*Completed*)
    VLV.CMD := 2;   

image-20240102115042381

Рис.6.32. Зміна DFB-типу phFILL

image-20240102115052831

Рис.6.33. Зміна секції Tank1

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

  1. Опишіть узагальнену ієрархічну модель апаратурних об’єктів (Equipment Entity Model).
  2. За якими принципами виділяються різні об’єкти в моделі апаратурних обєктів?
  3. Де, навіщо і як в лабораторінй роботі використані агрегати EM?
  4. Поясніть чому в даній лабораторній роботі було проведене саме таке виділення апаратурних об’єктів, як показано на рис.6.2?
  5. Навіщо потрібен allocation? Де це використовується вданій лабораторній роботі?
  6. Що таке рецептно-обізнані агрегати?
  7. Що таке вище керування згідно з ISA-88?
  8. Поясніть за якими принципами працює алгоритм рецепту в даній лабораторній роботі.
  9. Розкажіть про паралельне розгалуження та сходження в PFC на прикладі рецепту, щ обув використаний в даній лабораторній роботі.