Podręcznik
Strona: | SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych |
Kurs: | Sterowanie sekwencyjne procesem przemysłowym |
Książka: | Podręcznik |
Wydrukowane przez użytkownika: | Gość |
Data: | niedziela, 24 listopada 2024, 05:21 |
1. Sekwencyjność procesów przemysłowych
Dla wyjaśnienia Czytelnikowi tego pojęcia wprowadźmy najpierw następującą definicję:.
Analizując tę powyższą definicję zauważamy dwie kluczowe sprawy, które ta definicja wprowadza: pierwszą jest to, że występuje realizacja operacji składowych procesu przemysłowego, które możemy nazwać tzw. etapami procesu (krokami), zaś drugą jest to, że te operacje składowe muszą być realizowane w określonej kolejności, czyli nie wszystkie na raz (czytaj: „na huraa!”), tylko sekwencyjnie na podstawie spełnionych warunków dla takiej realizacji, czyli tzw. warunków przejścia (tranzycji). Aby powyższe lepiej sobie wyobrazić posłużmy się rysunkiem 4 ilustrującym prosty proces przemysłowy.
Rysunek 5: Przykład procesu przemysłowego napełniania wagoników mieszaniną cieczy A i B
Widoczne na rysunku 4 puste wagoniki przemieszczane są pod otwór wylotowy mieszalnika, do którego dopływają dwie różne ciecze A i B. W momencie zajęcia przez pojedynczy wagonik pozycji do jego napełnienia, uruchamiane są zawory nr 1 i nr 2 dla napełnienia wagonika odpowiednią mieszaniną tych dwóch cieczy. Nawet przyjęcie założenia, że widoczne na rysunku 4 pokrętła sterujące otwieraniem i zamykaniem zaworów uruchamiane są przez obsługę, to bezspornym jest, że proces napełniania pustego wagonika powinien być podzielony m.in. na następujące poniższe etapy procesu:
1. Zajęcie przez pusty wagonik położenia do jego napełnienia do założonej tym procesem objętości/wagi;
2. Napełnianie wagonika do określonej objętości/wagi wagonika lub odmierzenie ustalonego czasu postoju wagonika związane z jego napełnianiem;
3. „Odjazd” napełnionego wagonika dla powtórzenia operacji technologicznej.
Proces z rysunku 4 można poddać pewnej automatyzacji, czyli uzupełnić przynajmniej o elementy wykonawcze, przemieszczające wagoniki po platformie załadunkowej (można przyjąć, iż zawory A i B otwiera/zamyka personel obsługujący) oraz uzupełnić o czujniki informujące (układ sterowania) o osiągnięciu poszczególnego etapu tego procesu. Rysunek 5 pokazuje „sensowniejszy” już schemat procesu napełniania z rysunku 4 uzupełniony o „brakujące” elementy sterowania.
Rysunek 6: Proces przemysłowy z rysunku 4 uzupełniony o elementy kontrolno-sterujące
W nawiązaniu do podanych wyżej etapów 1 do 3 proces napełniania pustego wagonika z rysunku 5 powinien teraz przebiegać „mniej więcej” tak, jak poniżej:
1. uruchomienie napędu N i wizualizacja optyczna jego działania za pomocą sygnalizatora Ż3, powodujące „odjazd” napełnionego wagonika, zanik (wtedy) sygnału od czujnika napełnienia Cw i wyłączenie Ż2;
2. pojawienie się pustego wagonika w polu działania czujnika Cp, czyli stwierdzenie przez ten czujnik, czy wagonik jest całkowicie opróżniony, jeżeli nie, to napęd N oraz Ż3 są wyłączane na okres 2 minut poprzez użycie Timera T1 i następuje wtedy ręczne opróżnienie wagonika, po czym po tych 2 minutach oczekiwania napęd N i sygnalizator Ż3 są samoczynnie włączane, powodując dalszy ruch wagonika;
3. zajęcie przez pusty wagonik położenia Cw dla jego napełnienia, czyli wyłączenie napędu N oraz sygnalizatora Ż3 przy jednoczesnym uruchomieniu Timera T2 na okres 10 minut dla operacji napełniania;
4. ręczne otwarcie zaworu nr 1 do pozycji czujnika Cz1 co uruchamia Timer T3 na okres 3 minut dla napełnienia wagonika cieczą A, przy czym upływ tego czasu pokaże sygnalizator Ż1 co powinno wywołać zamykanie zaworu nr 1;
5. ręczne otwarcie zaworu nr 2 do pozycji czujnika Cz2 co uruchamia Timer T4 na okres 4 minut dla dopełnienia wagonika cieczą B, przy czym upływ tego czasu pokaże sygnalizator Ż2 jednocześnie następuje wyłączenie sygnalizatora Ż1; w tym momencie powinno odbyć się zamknięcie zaworu nr 2;
6. ponowne uruchomienie napędu N po upływie czasu od Timera T2 przy wizualizacji optycznej jego działania za pomocą sygnalizatora Ż3 (przyjęto, że czas 10 minut jest wystarczającym dla pracowników czasem dla uruchamiania i zamykania zaworów), co wywoła odjazd napełnionego mieszaniną cieczy wagonika, zanik sygnału od czujnika napełnienia Cw oraz wyłączenie Ż2. Operacje mogą się powtarzać.
Widać z powyższego opisu procesu napełniania wagoników, że te wszystkie operacje umieszczone w punktach 1 do 6 realizowane są sekwencyjnie. Oczywiście należy natychmiast zwrócić uwagę Czytelnika, iż opis tego procesu nie podzielono jawnie na etapy procesu (kroki) i warunki przejścia (tranzycje), tylko wszystko „to” zawarto razem w pojedynczych punktach. Np. punkt 1-szy opisuje zarówno działanie napędu N i sygnalizatorów optycznych Ż2 i Ż3, jak również i działanie czujnika Cw, czyli w jednym punkcie mamy działanie w danym etapie procesu jak i warunek przejścia. Takie podejście jest to dopuszczalne, ponieważ opis słowny procesu przemysłowego nie jest algorytmem procesu jako takim (algorytm procesu wprowadzono dalej). Zamiarem autora było tylko zwrócenie Czytelnikowi uwagi na występującą sekwencyjność procesu przemysłowego, która ze względów na sterowanie sekwencyjne musi zaistnieć lub proces przemysłowy powinien być tak zaprojektowany, aby można było przeprowadzać jego działanie sekwencyjnie zgodnie z podaną wcześniej definicją. Jest to warunkiem utworzenia prawidłowego algorytmu procesu, o czym będzie mowa w następnym punkcie. W tym miejscu podajmy jedynie definicję sterowania sekwencyjnego jako następstwo sekwencyjności procesu przemysłowego:
2. Algorytmy dla opisu działania sekwencyjnych procesów przemysłowych
Można założyć, że opis słowny działania procesu napełniania wagoników w postaci powyższych punktów od 1 do 6 (dla procesu z rysunku 5) może być czytelny dla niektórych Czytelników, ale czy dla wszystkich? Raczej nie. Zauważono to już stosunkowo dawno w czasach, kiedy jeszcze nie funkcjonowało pojęcie sterownika cyfrowego PLC, ale dokonywano już realizacji układów sterowania w oparciu o inne układy cyfrowe, np. układy zawierające funktory logiczne typu bramki czy przerzutniki, czy jeszcze wcześniej, gdy układami sterowania były układy zrealizowane w technice przekaźnikowej.
Należy podkreślić, że opis słowny zawsze stanowił i stanowi pewną trudność dla odbiorcy w zrozumieniu działania urządzeń procesowych i raczej był i jest przewidziany dla opisu wstępnych założeń, które zazwyczaj generowane są przez inwestora, czyli zleceniodawcę projektu dla procesu przemysłowego. Tak było wtedy i tak jest dzisiaj, chociaż pojęcie inwestora w tamtym czasie mogło mieć trochę inne znaczenie.
Ponieważ, jak pokazują punkty 1 do 6 dla procesu z rysunku 4 i 5 w odniesieniu do definicji sterowania sekwencyjnego w opisie tego procesu można jawnie wyróżnić etapy procesu oraz warunki przejścia do tych etapów, nic nie stoi na przeszkodzie, aby opis działania dowolnego procesu naszkicować graficznie w postaci odpowiednich symboli lub znaków. Powyższym „zajął” się już skutecznie w latach 60-tych XX w. niemiecki matematyk Carl Adam Petri opracowując założenia budowy struktury graficznej, wiążącej ze sobą etapy procesu oraz warunki przejścia, określaną często strukturą typu pozycja - tranzycja i nazwaną o jego nazwiska sieciami Petry’ego P-N (ang. Petri Nets).
2.1. Sieć Petriego P-N w opisie sekwencyjności procesów przemysłowych
W koncepcji graficznej sieci Petry’ego „kółka” reprezentują etapy procesu (kroki), których już wiemy, że może być wiele. Kółka te połączone są ze sobą łukowatymi liniami, często zorientowanymi, na których to liniach poprzecznie do nich umieszcza się „kreski”, które z kolei reprezentują warunki przejścia pomiędzy tymi etapami, czyli tranzycje. Zatem utworzona struktura graficzna, złożona z takich kółek, linii zorientowanych i kresek stawała się graficznym zapisem działania procesu przemysłowego, czyli de facto algorytmem. Przykład takiej struktury, utworzonej dla „naszego” przykładu sterowania napełnianiem wagoników ilustruje rysunek 6.
Rysunek 7: Sieć Perti Nets dla opisania działania napełnieniem wagoników z rysunku 5
Struktura sieci P-N widoczna na rysunku 6 powstała po analizie opisu działania procesu z rysunku 5, który został zaprezentowany wyżej w punktach 1 do 6. Dla czytelności tzw. rozwoju tego grafu tranzycje o oznaczeniach T1 do T7 ponumerowano sugestywnie, tzn. numer tranzycji wskazuje na numer kroku po tej tranzycji. Oznacza to, że np. spełnienie T4 (oznaczone słowem „thru”) powoduje przejście do kroku nr 4, itd. Objaśniając dalej podamy, że przejścia z kroku poprzedniego n-1 do następnego n nie następują wyłącznie na skutek zapalenia tranzycji. Warunkiem niezbędnym jest jeszcze i to, że w momencie zapalania tranzycji stan procesu musi być właśnie określony tym stanem poprzednim, czyli aktywnym krokiem n-1. Odnosząc to do grafu z rysunku 6 przejścia do kroku nr 4 nie może wywołać tylko tranzycja T4, ale łącznie tranzycja T4 i krok nr 3 (dwa kółka).
Już wiemy, że z ponumerowanymi stanami od 1 do 7 sieci P-N wiążemy etapy (kroki) procesu, zaś z tranzycjami T1 do T7 warunki przejścia od kroku poprzedniego do następnego. Pozostawienie sieci P-N w tej postaci bez dodatkowych komentarzy raczej nie przyczyniłoby się do zrozumienia przez Czytelnika sposobu działania procesu z rysunku 5. Wszakże można by było przy każdym ponumerowanym stanie na rysunku 6 wpisać właściwe działania, a przy każdej ponumerowanej tranzycji wpisać warunki logiczne, które ją tworzą, jednak czy wtedy ten rysunek byłby czytelniejszy? A co, jeśli w każdym ponumerowanym stanie procesu występować będzie dużo działań oraz każda ponumerowana tranzycja posiadać będzie dużo warunków logicznych, które ją tworzą? Wydaje się, że rozsądnym rozwiązaniem powyższego problemu jest opisanie poszczególnych etapów sieci oraz tranzycji w odpowiedniej tabeli. Przykład takiego opisu dla rysunku 6 pokazuje Tabela 1.
Tabela 1: Opis działań w poszczególnych etapach (krokach) sieci P-N z rysunku 7 oraz tranzycji je wywołujących
STANY |
DZIAŁANIA W DANYM STANIE |
TRANZYCJA |
WARUNKI LOGICZNE |
(*) – Przycisk START uruchamiany tylko jednorazowo po włączeniu układu sterowania. |
T1 |
|
|
1 |
|
|
|
(**) - Przyjęto, że sygnał „ON” oznacza, że wagonik nie jest pusty. |
T2 |
|
|
2 |
|
|
|
Tranzycja T3’ jest zapalana, gdy umieszczony wagonik nie był pusty. Tranzycja T3 jest zapalana, gdy umieszczony wagonik był pusty. |
T3’ |
|
|
T3 |
|
||
3 |
|
|
|
|
T4 |
|
|
4 |
|
|
|
|
T5 |
|
|
5 |
|
|
|
|
T6 |
|
|
6 |
|
|
|
|
T7 |
|
|
7 |
|
|
Należy zaznaczyć, że informatyka „pod strzechą” nigdy nie znosiła próżni i wraz z rozpowszechnianiem się wykorzystywania urządzeń cyfrowych w sterowaniu różnymi procesami przemysłowymi dążono do tego, aby opis graficzny działania układu sterowania, który zapoczątkowały sieci Petry’ego stał się bardziej zrozumiały dla odbiorcy, czyli użytkownika. Jak pokazał rysunek 6 oraz opisy zawarte w Tabeli 1, nie można było tego raczej powiedzieć o sieciach P-N. O ile konstrukcja takich grafów nie była zbyt skomplikowana, to już uzupełnienie tego o dodatkowe opisy, jak w Tabeli 1 mogły stwarzać mętlik w głowie. Poza tym, jak uważny Czytelnik zapewne zauważył analizując układ z rysunku 4 w konfrontacji z dalszą propozycją jego unowocześnienia, że symbioza elementów układu sterowania ze sterowaniem ręcznym, pochodzącym od człowieka nie zawsze może wydać właściwe efekty. Przykładowo uruchomienie Timera T2 na czas 10 minut (stan 3-ci, Tabela 1), narzucone odgórnie i dające pracownikom de facto czas na przeprowadzenie operacji otwierania i zamykania dwóch zaworów może się nie sprawdzić, ponieważ poprawność dalszego przebiegu tego procesu zależeć będzie od sprawności tych pracowników, a różnie z tym przecież bywa. Jakiekolwiek opóźnienie w realizacji otwierania/zamykania tych zaworów i przekroczenie tego czasu 10 minut spowoduje zakłócenie w przebiegu napełniania wagoników. Dlatego wszędzie tam, gdzie zależy użytkownikowi na jakości procesu przemysłowego powinien on dążyć do wykorzystania układów sterowania zamiast pracy rąk ludzkich. Można oczywiście na przykładzie procesu z rysunku 4 pokusić się o dodatkowe modyfikacje algorytmu z rysunku 6, uwzględniające dodatkowe uwarunkowania, jednak zapis tegoż byłby jeszcze mniej zrozumiały dla odbiorcy takiego grafu.
Zatem należało opracować inne sposoby zapisu działania dla procesów przemysłowych realizowanych sekwencyjnie. Na kanwie takich żądań pojawił się algorytm procesu o nazwie GRAFCET, opracowany jak już wcześniej wspomniano przez zespół francuskich uczonych i praktyków z dziedziny automatyki.
2.2. Algorytm procesu GRAFCET w opisie sekwencyjności procesów przemysłowych
Jak widać z powyższej definicji cechą algorytmu GRAFCET w opisie działania procesu przemysłowego realizowanego sekwencyjnie jest przedstawianie tegoż procesu z podziałem na etapy (kroki) i warunki przejścia (tranzycji). (Czytelnik na pewno zauważył analogię do sieci P-N). Ponieważ algorytm GRAFCET jest strukturą graficzną, to powyższe działanie ilustrowane było na planszy (obecnie na ekranie monitora) za pomocą odpowiednich symboli graficznych (jak to miało miejsce w sieciach Petriego). Dla pokazania w grafie etapów (kroków) zarezerwowano kwadraty/prostokąty (nie zaś okręgi), rozmieszczane na planszy pionowo, zaś dla warunków przejścia (tranzycji) zarezerwowano poziome krótkie linie (pogrubione), krzyżujące się z liniami łączącymi te kwadraty (prostokąty). Te podstawowe elementy algorytmu GRAFCET zilustrowano na rysunku 8.
Rysunek 8: Elementy algorytmu GRAFCET: a) krok zerowy; b) tranzycja złożona
Jak widać z rysunku 8 każdy krok algorytmu GRAFCET opisany jest jego numerem porządkowym, który umieszczany jest wewnątrz płaskiej figury, zaś każda tranzycja jest (zazwyczaj) poprzedzona literą „T” i również ponumerowana porządkowo. Dobrą praktyką jest takie numerowanie tranzycji, aby indeks przy literze „T” był taki sam, jak krok, który zostanie zainicjowany po zapaleniu tej tranzycji. (Na rysunku 8 b) zapalenie tranzycji „Tn+1” łącznie z istnieniem kroku „n” przyczyni się do uruchomienia kroku „n+1”). Dodatkowego wyjaśnienia wymaga symbol kroku o numerze „0” na rysunku 8a), dla którego zarezerwowano takie oznaczenie. Otóż jest to tzw. krok zerowy, który musi wystąpić w tym algorytmie i jest zawsze traktowany jako pierwszy krok po inicjacji algorytmu GRAFCET. Krok zerowy w zależności od konstrukcji algorytmu GRAFCET wystąpi tylko raz lub przy innej postaci algorytmu po inicjacji tegoż będzie występował wielokrotnie już jako „normalny” krok algorytmu. Te opisane powyżej „sytuacje”, które będziemy od tej pory nazywali rozwojem algorytmu GRAFCET ilustruje rysunek 9.
Rysunek 9: Znaczenie kroku zerowego w algorytmie GRAFCET: a) i b) krok inicjujący; c) krok zerowy jak krok inicjujący i później normalny
Rysunek 9a) i 9b) pokazują, iż krok zerowy w algorytmie GRFACET wystąpi tylko raz, (przy inicjacji algorytmu), ponieważ w tych dwóch przypadkach rozwój algorytmu z kroku nr 2 do kroku nr 1 „omija” krok nr 0, czyli kroki te wykonywane są w sposób cykliczny bez udziału kroku zerowego. Inaczej sprawa wygląda na rysunku 9c). Tutaj po inicjacji algorytmu krokiem zerowym stanie się on w następnym cyklu normalnym krokiem, realizowanym cyklicznie po kroku nr 2. Algorytm „zapomni”, że krok zerowy kiedykolwiek istniał. Zaznaczmy jako obowiązkowe, że krok zerowy wystąpi we wszystkich przypadkach z rysunku 9 po wyłączeniu procesu (czyli algorytmu GRAFCET z działania) i ponownym jego uruchomieniu.
Uważny Czytelnik na pewno zauważył analizując rysunek 9, iż w budowie grafu algorytmu GRAFCET obowiązują pewne prawidłowości, które warte zapamiętania wymieńmy poniżej:
1. Algorytm może posiadać wyłącznie jeden krok zerowy.
2. Krok zerowy algorytmu może tylko inicjować ten algorytm lub może inicjować i stać się zwykłym krokiem.
3. Pomiędzy wszystkimi krokami algorytmu może istnieć tylko i wyłącznie pojedyncza tranzycja.
4. Algorytm musi być zupełny, tzn. z ostatniego kroku algorytmu musi być wyprowadzony sygnał do zamierzonego kroku przy spełnieniu warunku nr 3.
5. Rozwój algorytmu następuje od kroku poprzedniego do następnego, co pokazywane jest poprzez porządkową numerację kroków.
Należy zaznaczyć, że zaprojektowanie kroków i tranzycji na nic by się zdało, gdyby twórcy algorytmu GRAFCET „zapomnieli” o działaniach, które algorytm powinien realizować w każdym kroku. (Dodajmy szybko, że są takie sytuacje, w których z niektórymi krokami nie są skojarzone żadne działania, ale to i tak naprawdę są działania, tyle tylko, że opisujemy je jako oczekiwanie, co też jest przecież działaniem o określonym czasie trwania). Dla ilustracji powyższego posłużmy się poniższym rysunkiem, ilustrującym dołączanie tzw. bloków działania do kroków programowych algorytmu GRAFCET, który został zaprojektowany dla przykładowego procesu przemysłowego realizowanego sekwencyjnie.
Rysunek 10: Ilustracja bloków działania dołączonych do kroków
W widocznych na rysunku 10 blokach działania, skojarzonych z poszczególnymi krokami umieszcza się działania, które powinny być wykonane w poszczególnym kroku. Dobrą praktyką jest, aby oddzielnych bloków działań było tyle, ile jest działań w poszczególnym kroku, nie zaś w jednym bloku działania było wpisywanych kilka działań. Jak pokazuje rysunek 10 liczba działań może być różna, począwszy od wspomnianego wcześniej przypadku braku działania w kroku, (nieuwidocznionego na rysunku - wtedy z danym krokiem nie kojarzy się żadnego bloku działań), liczba działań może określać tylko jedno działanie w pojedynczym kroku lub więcej działań (jak w kroku zerowym).
Należy zaznaczyć, że o trybie (sposobie) funkcjonowania poszczególnego działania, opisanego w bloku działania pokazuje (decyduje) umieszczony w algorytmie sposób jego sterowania z użyciem odpowiedniej symboliki. I tak, brak znaku przy bloku działania określającego działanie „ZAŁĄCZ SYGNAŁ S2” w kroku zerowym oznacza, że załączenie sygnału S2 wystąpi tylko wtedy, gdy wystąpi ten krok zerowy. Dalej, znak „strzałki” skierowanej do dołu przy działaniu: „ZAŁĄCZ SYGNAŁ S1” oznacza, że załączenie sygnału S1 z tzw. podtrzymaniem nastąpi dopiero wtedy, gdy nastąpi rozwój algorytmu do kroku nr 1. Dalej, znak „strzałki” skierowanej ku górze przy działaniu: „ZAŁĄCZ ZAWÓR Z1” oznacza, że załączenie zaworu Z1 z tzw. podtrzymaniem nastąpi w momencie pojawienia się kroku nr 1. Dodajmy, że załączenie z tzw. podtrzymaniem określonego działania oznacza pamiętanie tego działania aż do momentu pojawienia się działania neutralizującego. W naszym przypadku jest to działanie w kroku nr 2: „WYŁĄCZ ZAWÓR Z1” o sterowaniu analogicznym jak w kroku nr 1. Pozostałe elementy algorytmu GRAFCET z rysunku 10 to tranzycje: pojedyncze, jak tranzycja „T1’: CZCIŚ = OFF” oraz złożone, utworzone przy użyciu instrukcji logicznych, jak tranzycja „T2: POZZ1 = ON & CZCIŚ = ON”. Drugą używaną instrukcją logiczną oprócz iloczynu („&”) w konstrukcji tranzycji złożonych jest instrukcja sumy logicznej, oznaczana najczęściej jako „or”. Zaznaczmy, że konstrukcja tranzycji złożonej nie ogranicza się tylko używania albo instrukcji logicznej iloczynu albo sumy, jak na rysunku 10. W zależności od potrzeb tranzycja złożona może składać się z dużej liczby sygnałów, które połączone są ze sobą odpowiednią liczbą instrukcji logicznych.
Konstrukcja każdego grafu algorytmu GRAFCET pokazuje, że analizując taką strukturę i odnosząc ją do procesu przemysłowego, który przebiega sekwencyjnie możemy w prosty sposób prześledzić jego funkcjonowanie, ponieważ dla każdego pojedynczego etapu tego analizowanego procesu przyporządkowany jest pojedynczy krok algorytmu GRAFCET. Jeżeli teraz program PLC dla tego procesu przemysłowego odpowiada dokładnie zapisom algorytmu GRAFCET, to daje nam to możliwość natychmiastowego wychwycenia ewentualnej przyczyny zatrzymania realizacji procesu, jeżeli takowa wystąpi. Przykładowo po załączeniu zaworu Z1 w kroku nr 1 (naszego przykładowego algorytmu GRAFCET z rysunku 10) oraz braku wystąpienia sygnału S3, który przewidziany został do pokazania rozwoju algorytmu do kroku nr 2 (czyli wyłączenia zaworu Z1) wiadomym będzie, że przyczyną zatrzymania realizacji tego procesu przemysłowego jest brak zapalenia tranzycji T2. Tranzycja ta, jak widać z rysunku 10 zapala się przy spełnieniu łącznie (instrukcja logiczna iloczynu „&”) dwóch warunków: czujnika pozycji POZZ1 = ON oraz czujnika ciśnienia CZCIŚ = ON. Zatem w nieprawidłowym działaniu tychże czujników należy poszukiwać przyczyny zatrzymania procesu na kroku nr 1.
Ogląd postaci algorytmu GRAFCET, którego zasady tworzenia jak już wspomnieliśmy powstały w latach 70-tych XX w. pokazuje, że tak naprawdę wszystkie działania oraz tranzycje dla tych działań opisane są w tym algorytmie w sposób ogólnikowy, umowny, symboliczny, itp.,. np. ZAŁĄCZ ZAWÓR Z1. Zaznaczmy, że na etapie powstawania zasad semantyki tego algorytmu technika PLC jako taka powszechnie jeszcze nie istniała, co przekładało się na brak odpowiednich norm w tym zakresie. (Międzynarodowa norma IEC 1131, która sankcjonowała m.in. budowę logiczną sterowników PLC, metody programowania oraz algorytm SFC, o którym powiemy później opublikowana została w 1993 roku). Algorytm GRAFCET powstał na bazie sieci P-N jako ich lepsze rozwinięcie i był proponowany do opisu działania zazwyczaj procesów sekwencyjnych, nie zaś do opisu działania układu sterowania. Działań algorytmu GRAFCET nie możemy powiązać de facto z konkretnymi sygnałami znajdującymi się w modułach wejść/wyjść sterownika PLC, który przecież, jak już pokazaliśmy wcześniej jest mózgiem układów sterowania procesami przemysłowymi. Zatem w literaturze spotyka się zastrzeżenie, iż algorytm GRAFCET jest tak naprawdę algorytmem procesu, nie zaś algorytmem sterowania. Dla tego ostatniego przewidziano nazwę SFC i znormalizowano w wyżej wzmiankowanej normie, w trzecim jej rozdziale, której „wariant” europejski nosi oznaczenie EN 61131 – 3. Zaznaczmy dla wyjaśnienia, że spotkać można w literaturze sugestię, iż algorytm GRAFCET jest w czystej postaci algorytmem SFC, co według autora jest nieprawidłowe (dowód tego znajdzie Czytelnik w dalszej części tekstu) i bierze się być może stąd, iż wyszukiwarki internetowe przy wpisaniu nazwy GRAFCET „podpowiadają” natychmiast nazwę Sequential Function Chart, czyli algorytm SFC.
2.3. Algorytm sterowania SFC w opisie sekwencyjności procesów przemysłowych
Opublikowana w 1993 roku norma o oznaczeniu EN 61131 w swoim trzecim rozdziale oprócz zdefiniowania semantyki dwóch grup metod (języków) programowania sterowników PLC zawarła również semantykę algorytmu SFC, którego już wiemy, że zasady tworzenia opierają się na wcześniej opracowanym algorytmie GRAFCET, co oznacza, że i ten „nowy” algorytm został opracowany z zmyślą wykorzystania go do opisu procesów realizowanych sekwencyjnie. Być może dlatego, że semantyka SFC znalazła się w tej normie „obok” semantyki klasycznych metod tworzenia programu PLC, to zaczęto ten algorytm zaliczać do jednej z metod programowania sterowników PLC, jednak wtedy było to jeszcze na wyrost. Algorytm SFC stał się po prostu jednym z wielu sposobów ilustrowania opisu procesu przemysłowego w sposób graficzny, a że jak się okazało najbardziej obrazowym, to już inna sprawa. Wtedy na drodze do uznania algorytmu SFC jako metody programowania sterowników PLC stała bariera w postaci braku środowiska programistycznego, które na to by pozwalało.
Było tak, bowiem wtedy „rysowanie” struktury grafu SFC na ekranie monitora przypominało tylko eleganckie rozmieszczanie klocków i linii dla utworzenia algorytmu, nie zaś generację na podstawie takiej struktury kodu maszynowego dla pamięci programu CPU sterownika PLC. W momencie publikacji normy EN 61131 taki kod generowany był tylko w odniesieniu do metody STL, LAD i FBD. Jednak rozwój oprogramowania narzędziowego PLC doprowadził w efekcie do pojawienia się możliwości generacji takiego kodu ze struktury grafu SFC i dopiero wtedy można było zaliczyć tworzenie grafu SFC do metody programowania sterowników PLC. Przykładem takiego środowiska narzędziowego PLC jest oprogramowania ISAGraph dla sterowników amerykańskiego producenta firmy PEP Modular Computers.
Powód zakwalifikowania grafu SFC do metody tworzenia algorytmu sterowania dla procesów sekwencyjnych wynika bezpośrednio ze sposobu jego przedstawiania. Pokazuje to rysunek 11.
Rysunek 11: Algorytm SFC jako odpowiednik rysunku 10
Na rysunku 11 widzimy w odniesieniu do wszystkich tranzycji, że w miejsce nazw symbolicznych, które zawierała algorytm GRAFCET pojawiły się adresy, które wystąpią w programie sterującym PLC jako argumenty tego programu. Przykładowo adres I0.0 to przycisk START, adres I0.1 to przycisk STOP. (Tutaj należy się Czytelnikowi wyjaśnienie. Ponieważ jednym z warunków bezpiecznego sterowania procesem jest jego awaryjne wyłączanie za pomocą odpowiedniego przycisku, np. przycisku STOP, to jego sygnał jest zawsze „1” przy prawidłowo działającym procesie. Dlatego w tranzycji T1 ten warunek w takiej postaci wystąpił).
Jeżeli chodzi o bloki działania to zauważamy dwie różnice. Pierwsza jest taka, że bloki działania „konstruowane” są pionowo nie zaś poziomo, jak w grafie GRAFCET. Po drugie oznaczenie typu instrukcji nie wystąpiło w postaci „strzałek” tylko tzw. identyfikatorów działania. Najczęściej używane identyfikatory zilustrowano na rysunku 11:
• „N” – wystąpienie tego identyfikatora oznacza, że określone tymże działanie wystąpi tylko i wyłącznie wtedy, gdy dany krok zaistnieje – działanie nie zapisane w pamięci programu CPU. Np. wyjście Q0.3 będzie sterowane tylko w czasie trwania kroku nr 3. Po rozwoju algorytmu do kolejnego kroku wyjście Q0.3 = 0.
• „S” - wystąpienie tego identyfikatora oznacza, że określone tymże działanie wystąpi tylko wtedy, gdy dany krok zaistnieje i będzie trwało do czasu jego dezaktywacji innym rozkazem – działanie zapisane do pamięci programu CPU. Np. wyjście Q0.2 będzie równe 1 wtedy, gdy wystąpi krok nr 1 i stan taki będzie się dalej utrzymywał.
• „R” - wystąpienie tego identyfikatora oznacza, że określone tymże działanie wystąpi tylko wtedy, gdy dany krok zaistnieje i dezaktywuje ono działanie rozkazem „S” – działanie zapisane do pamięci programu CPU. Np. wyjście Q0.2 będzie równe 0 wtedy, gdy wystąpi krok nr 2 i stan taki będzie się dalej utrzymywał.
Należy podkreślić, że włączenie metody SFC do jednej z metod programowania sterowników PLC oznaczało, że środowiska narzędziowe sterowników PLC zaczęto wyposażać w możliwości testowania algorytmu SFC analogicznie, jak to odbywało się w innych metodach tworzenia programu PLC (przywołajmy chociażby rysunek 2 tylko „na kolorowo”). Nawiasem mówiąc konieczność testowania algorytmu SFC wprowadzono już w normie EN 61131-3 poprzez sugestię, iż aktywny krok algorytmu SFC powinien być w jakiś sposób pokazany. Zaproponowano wtedy umieszczanie „kropki” w czworokącie zainicjowanego kroku algorytmu. Jednak rozwój informatyki w przemyśle spowodował, że twórcy środowisk programistycznych dla sterowników PLC mogli „pójść” dalej z „propozycją” testowania aktywnego algorytmu SFC, co w efekcie zaowocowało dużym urozmaiceniem w prezentacji działania tego algorytmu w sterowniku PLC, na którym ten algorytm został uruchomiony. (Czytelnik już wie, że nie algorytm został uruchomiony w sterowniku PLC tylko program PLC, który został wygenerowany na podstawie tego algorytmu). Pojawiło się zatem np. wyświetlanie w odmiennym kolorze nie tylko aktywnego kroku, ale również i aktywnych bloków działania w tym kroku. Ilustruje to symbolicznie rysunek 12.
Rysunek 12: Przykładowy sposób testowania algorytmu SFC
Na rysunku 12 widzimy, że kontrolowany proces znajduje się w kroku nr 1 (podświetlenie na niebiesko) oraz występuje działanie w tym kroku, czyli S Q0.2, które musiało zostać poprzedzone zapaleniem tranzycji T1. Ponieważ jednym z warunków w tej tranzycji jest przycisk START, ale pobudzony monostabilnie, to stan jego teraz równa się zero, co pokazuje kolor czerwony. Drugim warunkiem był przycisk STOP, który jak już wyjaśniono powinien być na stałe „podpięty” ze stanem jeden do modułu sterownika PLC, co uwidocznione jest jego aktywnością, czyli kolorem niebieskim. Podświetlenie na czerwono warunków w tranzycji T2 być może jest prawidłowe, ponieważ otworzony zawór Z1 mógł jeszcze nie zając pozycji określonej czujnikiem pozycji POZZ1, co również pokazuje czujnik ciśnienia CZCIŚ. (W rzeczywistym i prawidłowo działającym procesie przemysłowym ten kolor czerwony powinien „po chwili” zmienić się na niebieski, jak również stany czujników na „jedynki”. Dalej, podświetlenie na niebiesko tranzycji T1’ przy danym stanie czujnika ciśnienia CZCIŚ = OFF też jest prawidłowe, ponieważ brak pobudzenia przez ciśnienie tego czujnika daje dla modułu PLC stan wysoki.
Ogląd rysunku 12 pokazuje, w jaki sposób może przebiegać testowanie działającego procesu przemysłowego realizowanego sekwencyjnie „pod kontrolą” algorytmu SFC. Czytelnik sam potrafi rozsądzić i ocenić, czy to wyświetlenie byłoby dla niego bardziej użyteczne w ocenie działania układu sterowania czy np. wyświetlenie na ekranie monitora programu PLC w metodzie LAD. Jest to sprawa indywidualna, jednak należy podkreślić, że zarówno przy testowaniu działającego programu PLC wyświetlonego w jednej z metod programowania sterowników lub w grafie SFC występują pewne ograniczenia. Mianowicie zazwyczaj użyteczność takiej diagnostyki będzie największa przy zatrzymaniu się procesu na danym kroku lub danej sieci programowej. Jest tak, ponieważ nawet gdyby założyć, że częstotliwość wyświetlania takiej diagnostyki na ekranie monitora nadążałaby za krokami algorytmu sterowania, tzn. krok, w którym jest aktualnie rzeczywisty proces przemysłowym jest aktywny na ekranie monitora, to i tak taka szybkość zmian nie byłaby zauważona przez ludzkie oko, obserwujące te zmiany. Natomiast przy zatrzymaniu procesu na danym etapie (czyli kroku) jest on statycznie podświetlony na ekranie monitora, zaś decyzję, co dalej robić mogą być podjęte. Czyli np., odnosząc to do rysunku 12, jeżeli po zaistnieniu kroku nr 1, który uruchamia zawór Z1 (patrz rysunek 10 oraz opis) odpowiednia pozycja zaworu została osiągnięta, zaś ciśnienie czynnika roboczego nie pojawiło się, to zostanie to pokazane w tranzycji T2 jak na rysunku poniżej.
Rysunek 13: „Nieplanowe” zatrzymanie algorytmu SFC
Widać na rysunku 13, że w tranzycji T2 adres I0.3, czyli de facto sygnał z czujnika ciśnienia CZCIŚ podświetlony jest na czerwono co oznacza, że w kontrolowanym procesie przemysłowym po uruchomieniu zaworu Z1, który zajął prawidłową pozycję (I0.2 = 1 w tranzycji T2) nie osiągnięto założonego ciśnienia czynnik, co wskazuje na awarię, której przyczyny należy określić. Jak widać z rysunku 13 algorytm SFC „zatrzymał” się na kroku nr 1, nie zaś rozwinął się do kroku nr 2.
Zilustrowana wyżej sytuacja awaryjna może być jedną z wielu, które mogą wystąpić w kontrolowanym procesie przemysłowym. Tworząc algorytm SFC dla układu sterowania powinno się przewidzieć wystąpienie najważniejszych sytuacji awaryjnych i przewidzieć rozwój algorytmu SFC po ich wystąpieniu. Norma EN 61131 przewiduje, tak jak algorytm GRAFCET odpowiednie modyfikacje algorytmu SFC dla potrzeb algorytmów sterowania. W odniesieniu do sytuacji awaryjnej zilustrowanej na rysunku 13 można np. zaproponować uruchomienie czasomierza typu TON (ON-delay) o odpowiedniej nastawie czasowej w kroku nr 1 (np. dwie sekundy), którego znacznik T40 można by wykorzystać w odpowiednio zmodyfikowanym pod kątem diagnostyki algorytmie SFC. Modyfikację algorytmu pod kątem diagnostyki pracy procesu przemysłowego w trybie jego testowania ilustruje rysunek 14.
Rysunek 14: Modyfikacja struktury algorytmu SFC dla diagnostyki pracy zaworu Z1 (Q0.2)
W uruchomienia się kroku nr 1 (tak jak na rysunkach wcześniejszych) zawór Z1 (Q0.2) uruchamia się i zmienia swoją pozycję na I0.2 = 1. Przy prawidłowo działającym procesie po chwili mniejszej od dwóch sekund czujnik ciśnienia o adresie I0.3 powinien przełączyć się – ze stanu „0” do stanu „1”. Gdyby to nastąpiło tranzycja T2 zapaliłby się i pojawiłby się krok nr 2 ze swoim blokiem działania. Jednak proces działa nieprawidłowo, co właśnie pokazano na rysunku 14. W czasie dwóch sekund wspomniany czujnik ciśnienia o adresie I0.3 nie zmienił swojego stanu (z jakiegoś powodu), zatem znacznik T40=1 pojawił się i zainicjowała krok nr 2’, w którym zawór Z1 jest wyłączany i uruchomiona zostaje sygnalizacja alarmowa na adresie Q0.4 (pulsujący sygnalizator optyczny). Po naprawie zaworu lub usunięciu awarii pobudzenie przycisku START uruchamia ponownie układ.
3. Rozbudowane sterowanie sekwencyjne
Zapewne Czytelnik zauważył, że proces przemysłowy działający zgodnie z algorytmem SFC z rysunku 14 jest również procesem sekwencyjnym. Jest tak, bowiem po inicjacji procesu w kroku zerowym sekwencja kroków tego procesu przy przebiegu bez awarii będzie określała kolejność: 1 – 2 – 1 – 2 – 1 – 2, itd., zaś przy wystąpieniu awarii kolejność: 1 – 2’ – 1 – 2 - 1, itd. W każdym z tych dwóch przypadków proces przemysłowy jest zawsze realizowany sekwencyjnie pomimo wrażenia optycznego, iż kroki nr 2 i nr 2’ będą zainicjowane w tym samym czasie. (Czytelnik pozbędzie się tego wrażenia po zapoznaniu się z treścią modułu drugiego).
Należy zaznaczyć, że gdyby projektant algorytmów SFC miał do czynienia tylko z takim przypadkiem rozbudowanego algorytmu, jak na rysunku 14, z pewnością jego praca byłaby łatwiejsza a niezawodność układów sterowania PLC dużo większa. Jednak tak nie jest z kilku powodów. Po pierwsze mnogość operacji, jakie są realizowane w procesach przemysłowych oraz same rodzaje takich procesów powodują, że algorytmy SFC muszą być rozbudowane dla uwzględnienia powyższego. Wiąże się to np. z koniecznością zaprojektowania różnych trybów pracy procesu przemysłowego takich, jak praca automatyczna, praca cykliczna, praca krokowa czy praca ręczna. Po drugie możliwość umieszczania w algorytmie SFC w zasadzie nieograniczonej liczby kroków algorytmu SFC (ograniczona chyba tylko wyobraźnią projektanta algorytmu) narzuca wręcz obowiązek umieszczenia w algorytmie odpowiednich warunków dla testowania działania elementów wejścia/wyjścia układu sterowania PLC w sposób chociażby taki, jak w algorytmie na rysunku 14. W niektórych rodzajach procesów przemysłowych taka diagnostyka może być tylko informacją dla operatora, która będzie wykorzystana dla celów dokumentacyjnych, zaś w innych rodzajach taka diagnostyka może mieć krytyczne dla procesu znaczenie. Należy to uwzględnić w algorytmie SFC. Podsumowując algorytmy, o których mowa przeznaczone są dla tzw. rozbudowanego sterowania sekwencyjnego, które możemy określić poniższą definicją.
3.1. Struktura logiczna rozbudowanego sterowania sekwencyjnego
Proces przemysłowy, dla którego można zaproponować algorytm SFC z rysunku 14 może tak naprawdę być kontrolowany wyłącznie przez najprostszy sterownik PLC bez dodatkowych urządzeń kontrolno-sterujących. Np. krok zerowy może powstać po włączeniu sterownika PLC do układu zasilania, zaś pozostałe elementy typu czujniki lub przyciski sterujące czy lampki mogą być umieszczone w dowolnym miejscu np. przy zaworze Z1.
Realizacja rozbudowanego sterowania sekwencyjnego wymaga już, jak zaznaczono wcześniej uwzględnienia specyfiki potrzeb kontrolowanego procesu przemysłowego, jego obsługi oraz zaawansowanej diagnostyki elementów wejścia/wyjścia. Dodatkowo takie sterowanie powinno uwzględniać różne tryby pracy procesu przemysłowego. Strukturę logiczną rozbudowanego sterowania sekwencyjnego ilustruje rysunek 15.
Rysunek 15: Struktura logiczna rozbudowanego sterowania sekwencyjnego
Blok wyboru trybu pracy – w bloku tym dokonywana jest analiza warunków wstępnych do uruchomienia procesu przemysłowego. Ja widać z rysunku 15 do bloku wyboru trybów pracy docierają sygnały przede wszystkim z pulpitu sterującego, takie jak np. wybór rodzaju pracy procesu, zaś blok ten generuje sygnały wprowadzane do jądra algorytmu SFC, dalej sygnały przeznaczone dla wyjść procesu przemysłowego oraz sygnały informacyjne dla otoczenia procesu przemysłowego.
Jądro algorytmu – blok ten stanowi rdzeń rozbudowanego sterowania sekwencyjnego, w którym następuje właściwa realizacja algorytmu SFC. Jak widać z rysunku 15 blok ten odbiera sygnały z bloku wyboru trybów pracy procesu przemysłowego oraz generuje sygnały dla uruchamiania wyjść procesu oraz sygnały informacyjne dla otoczenia.
Sterowanie wyjść procesu – blok realizuje generowanie sygnałów przewidzianych dla uruchomienia wyjść procesu przemysłowego na podstawie sygnałów wyjściowych algorytmu SFC oraz na podstawie sygnałów, pochodzących z pulpitu sterowniczego. Blok ten generuje również sygnały informacyjne dla otoczenia procesu oraz może generować sygnały sprzężenia zwrotnego dla algorytmu SFC w celu określania stanu pracy wyjść.
Pulpit sterujący – zespół elementów typu przyciski sterownicze, lampki sygnalizacyjne, itp. będący w interakcji z operatorem procesu przemysłowego, który wydaje mu „rozkazy” oraz przyjmuje odpowiednie „powiadomienia” dźwiękowe, optyczne czy inne. W zależności od stopnia zaawansowania technologii realizacji układu sterowania jako takiego pulpit sterujący może być tzw. pulpitem zdalnym, czyli oddzielnym elementem umiejscowionym w odpowiedniej obudowie w pewnej odległości od procesu przemysłowego i połączonym przewodowo lub może być integralną częścią panelu sterownika PLC, pobudzanego np. przez ekran dotykowy.
Komunikaty procesu – blok, który przeznaczony jest zazwyczaj do realizacji dokumentacji procesu poprzez użycie narządzi gromadzących odpowiednie dane i zwracający je w odpowiedniej formie, np. wydruku.
3.2. Struktura fizyczna rozbudowanego sterowania sekwencyjnego
Struktura logiczna rozbudowanego sterowania sekwencyjnego pokazana na rysunku 15 musi przełożyć się na docelowy układ sterowania procesem przemysłowym ze wszystkimi jego elementami kontrolno-sterującymi. Jak już wiemy, centralnym urządzeniem sterującym, w którym będzie realizowany algorytm SFC stanie się sterownik PLC o odpowiedniej konfiguracji modułów wejścia/wyjścia. (Tematyka konfiguracji PLC poruszona jest w innych opracowaniach autora). Dalej, układ sterowania, który stał się teraz układem sterowania PLC musiał będzie zawierać pulpit sterujący, podłączony na stałe do odpowiednich zacisków sygnałowych w modułach wejść/wyjść naszego sterownika PLC. Jak wiadomo wydzielona część tego pulpitu będzie przeznaczona na umieszczenie w nim przycisków sterujących m.in. dla uruchomienia i zatrzymania pracy programu PLC, dla wyboru trybów pracy procesu przemysłowego, itp., zaś inna część tego pulpitu będzie przeznaczona na zamontowanie w nim odpowiedniej liczby sygnalizatorów optycznych lub/i dźwiękowych dla komunikacji układu sterowania z otoczeniem. W przypadku, gdy parametry modułów wyjść sterownika PLC są nieodpowiednie dla kontrolowanego procesu przemysłowego, np. obciążalność prądowa zestyków łączników elektrycznych lub niewłaściwe parametry sygnałów dla napędów, to niezbędnym się staje użycie urządzeń dodatkowych, pośrednio sterujących wyjściami procesu przemysłowego. Zatem struktura fizyczna rozbudowanego sterowania sekwencyjnego powinna przypominać zespół urządzeń zilustrowany na rysunku 16.
Rysunek 16: Struktura fizyczna rozbudowanego sterowania sekwencyjnego
Widoczne na rysunku 16 elementy dodatkowe podłączone do modułu wyjść sterownika PLC to przekaźnik elektromagnetyczny i układ serwonapędu. Pierwszy uruchamiany jest zawsze sygnałem dwustanowym napięcia (najczęściej) przemiennego, np. o wartości 230V AC, zaś drugi może być uruchamiany sygnałem analogowym napięcia lub prądu, np. z zakresu 4 do 20mA. Zaznaczmy dodatkowo, co już podkreślano, że potrzeba kontroli działania elementów procesu przemysłowego powoduje, że należy „pobrać” od tychże elementów tzw. sygnały sprzężenia zwrotnego i wprowadzić do odpowiednich zacisków modułów wejść sterownika PLC, jako informację dla algorytmu SFC o działaniu/niedziałaniu tego elementu. (Dla czytelności struktury sterowania z rysunku 16 nie uwidoczniono tego na rysunku).
Jak widać z rysunku 16 realizacja fizycznej struktury rozbudowanego sterowania sekwencyjnego nie jest rzeczą prostą. Wymaga od projektanta układu sterowania PLC znajomości specyfiki działania procesu przemysłowego, dla którego projektowane jest takie sterowanie. Wymaga również znajomości sposobu funkcjonowania elementów oraz urządzeń, które będą miały zastosowanie w tym procesie. Wymaga wreszcie umiejętności przewidywania możliwych do wystąpienia awarii w tym procesie przemysłowym, i to zarówno awarii mogących się zdarzyć od pracujących urządzeń, jak i zakłóceń, które mogą być wywołane celowo przez obsługę tego procesu. Jako trywialny przykład takiego celowego zakłócenia, który może nie do końca jest adekwatny do przedstawienia go w tym miejscu (chociaż nie do końca) jest sposób „radzenia” sobie przez tokarza ze zwiększeniem wydajności swojej pracy na tokarce. Otóż aby nie tracić czasu na obowiązkowe zamykanie obracającego się wrzeciona maszyny po każdorazowym zamocowaniu nowego elementu do skrawania (co narzuca układ sterowania tokarki dla bezpieczeństwa tokarza), blokuje on na czas swojej zmiany krańcówkę położenia osłony wrzeciona w taki sposób, aby sygnał o jej zamknięciu jest aktywny przez cały czas, czyli prawidłowy bez względu na to, czy osłona jest otwarta czy zamknięta.
4. Podsumowanie
W module pierwszym niniejszej publikacji autor pokazał sekwencyjność w przebiegu procesów przemysłowych, czyli ich realizację z podziałem na etapy (kroki). Wyjaśniono, że do opisu działania takich sekwencji służyły początkowo struktury graficzne określane mianem sieci Petriego P-N, wyjaśniając przy okazji sposób ich konstrukcji posługując się przykładem procesu realizowanego sekwencyjnie. Jako kolejny przykład opisu takich procesów posłużył w publikacji algorytm GRAFCET, który powiązano ze swoim protoplastą i wyjaśniono, dlaczego stanowi on de facto algorytm procesu. Kolejną omówioną strukturą do opisu procesów realizowanych sekwencyjnie był algorytm SFC, który jest uznawany za algorytm sterowania. Wyjaśniono dlaczego. Podano wreszcie strukturę logiczną rozbudowanego sterowania sekwencyjnego wraz z omówieniem jej składników. Na koniec modułu zaprezentowano schemat struktury fizycznej rozbudowanego sterowania sekwencyjnego, która powinna być zgodna ze strukturą logiczną.