FALSE;:=FALSE;:=FALSE;:=FALSE;:=FALSE; :=FALSE;:=FALSE;:=FALSE;:=FALSE;:=FALSE; Xbenzin THEN step:=1; END_IF;
: Uc:=??TRUE;:=TRUE; X2p THEN step:=3; END_IF; X3p THEN step:=6; END_IF; X6p THEN step:=11; END_IF; X7p THEN step:= 16; END_IF;
: Uc:=??FALSE;:=TRUE;:=FALSE; zo45 THEN step:=4; END_IF;
: Uzo45:=FALSE; Xenraf THEN step:=5; END_IF; Vmax THEN step:=21; END_IF;
: Uc:=??TRUE;:=TRUE; X3p THEN step:=7; END_IF; notX3p THEN step:=10; END_IF; Xenraf AND Xsig_urov THEN step:=21; END_IF;
: Uc:=??FALSE;:=TRUE;:=FALSE; zo53 THEN step:=9; END_IF;
: Uc:=??FALSE;:=TRUE;:=FALSE; zo53 THEN step:=8; END_IF;
: Uzz45:=TRUE;:=FALSE; zz45 THEN step:=9; END_IF;
: Uzo53:=FALSE;:=FALSE; Xenraf THEN step:=10; END_IF; Vmax THEN step:=21; END_IF;
: Uc:=??TRUE;:=TRUE; X6p THEN step:=12; END_IF; notX6p THEN step:=15; END_IF; Xenraf AND Xsig_urov THEN step:=21; END_IF;
: Uc:=??FALSE;:=FALSE;:=TRUE; zo48 THEN step:=14; END_IF;
: Uzapros:=FALSE;:=FALSE;:=TRUE; zo48 THEN step:=13; END_IF;
: Uzo48:=FALSE;:=TRUE; zz53 THEN step:=14; END_IF;
: Uzz53:=FALSE;:=FALSE; Xenraf THEN step:=15; END_IF; Vmax THEN step:=21; END_IF;
: Uzapros:=TRUE;:=TRUE; X7p THEN step:=17; END_IF; notX7p THEN step:=20; END_IF; Xenraf AND Xsig_urov THEN step:=21; END_IF;
: Uc:=??FALSE;:=FALSE;:=TRUE; zo56 THEN step:=19; END_IF;
: Uzo56:=TRUE;:=FALSE;:=FALSE; zo56 THEN step:=18; END_IF;
: Uzz48:=TRUE;:=FALSE; zz48 THEN step:=19; END_IF;
: Uzo56:=FALSE;:=FALSE; Vmax THEN step:=21; END_IF; Xenraf THEN step:=20; END_IF;
: Uc:=??TRUE;:=TRUE; Xenraf AND Xsig_urov THEN step:=21; END_IF; notX8p THEN step:=23; END_IF;
: Uc:=??TRUE;:=TRUE;:=TRUE;:=FALSE; zo21 THEN step:=22; END_IF;
: Uzo21:=FALSE;:=FALSE; Xenraf THEN step:=23; END_IF;
: Uzapros:=FALSE;:=TRUE;:=TRUE;:=TRUE;:=TRUE;:=TRUE;:=TRUE;:=TRUE; zz1 AND zz21 AND zz45 AND zz48 AND zz53 AND zz56 THEN step:=24; END_IF;
: Uosnasos:=FALSE;:=FALSE;:=FALSE;:=FALSE;:=FALSE;:=FALSE;:=FALSE; Ysbros THEN step:=0; END_IF;
END_CASE;
4.7 Перевірка працездатності програми
Для перевірки працездатності програми подивимося вікно емулятора контролера. Візьмемо для прикладу кілька станів графа - переходу. При надходженні сигналу бензин (у першому стані) відправляється повідомлення і починають запитуватися резервуари. Цей стан представлено на малюнку 4.2.
Малюнок 4.2 - Перший стан графа переходів
Далі при надходженні сигналу другий резервуар порожній відкривається його засувка і починається закачування (малюнок 4.3).
Малюнок 4.3 - Третій стан
Якщо швидкість заповнення резервуара перевищила максимальне значення, то включається візуальна і звукова сигналізація і відбувається відкриття засувки №21 8-го резервуара, призначеного для аварійного скидання нафтопродуктів. Одночасно з'являється оперативне повідомлення про спрацьовування захисту в операторної. Даний стан представлено на малюнку 4.4.
Малюнок 4.4 - Двадцять перший стан графа
Якщо ці показники в нормі, то заповнення відбувається до верхнього нормативного рівня. При досягненні цього рівня надходить сигнал оператору, і запитуються обсяги резервуарів. При наявності сигналу третій резервуар порожній відкривається коренева засувка третій резервуара. Потім тільки при повному відкритті цієї засувки починає закриватися приймальня засувка другого резервуара, і цикл повторюється.
Малюнок 4.5 - Сьоме і восьме стану графа
Якщо надійшов сигнал про те, що третій резервуар не порожній, то відкривається засувка шостого резервуара, у разі його незаповненості і цикл повторюється. У тому випадку, коли надходить сигнал про досягнення аварійного рівня від вимірювача рівня і від сигналізатора рівня, то відкривається засувка №21 восьмого резервуара для аварійного скидання, і закриваються корінні засувки резервуарів. Цей стан представлено на малюнку 4.6.
Малюнок 4.6 - Двадцять перший стан графа
При досягненні максимально аварійного рівня нафтопродуктів у резервуарі аварійного скидання надходить сигнал на аварійну зупинку насосів ППС, закриття засувок всіх резервуарів і відключення станції від МНВП. Ста...