Podręcznik
6. Synteza algorytmu dla systemu mechatronicznego
6.3. Algorytm GRAFCET
Zaprezentowany wyżej formalizm dla tworzenia algorytmu blokowego jest nadal używany przy syntezie algorytmów dla systemów mechatronicznych. Jednak wprowadzanie sterowania cyfrowego do sterowania procesów produkcyjnych, co jak pamiętamy zaczęło się już odbywać w drugiej połowie XX wieku, wymusiło odrębne podejście do konstrukcji algorytmów dla procesów produkcyjnych. Takim formalizmem był formalizm GRAFCET, opracowany przez inżynierów praktyków z branży automatyki oraz naukowców francuskich w końcu lat 70-tych ub. wieku. Formalizm GRAFCET, tak jak algorytm blokowy opierał się również na poznanych już zasadach, które obowiązywały w sieciach Petri’ego.
Istotną cechą metody GRAFCET jest przedstawianie etapu procesu (tzw. kroku) i warunków przejścia (tzw. tranzycji) za pomocą odpowiednich symboli graficznych, zarezerwowanych dla tego formalizmu. Ten krok algorytmu definiuje się jako sytuację, w której jednostka organizacyjna programu sterującego (np. funkcja) zachowuje się względem swoich wejść i wyjść według reguł zdefiniowanych przez tzw. akcje, czyli zmienne boolowskie związane z tym krokiem. Tranzycję natomiast definiuje się jako warunek przechodzenia sterowania od jednego lub więcej kroków, poprzedzających tę tranzycie, do jednego lub więcej kroków następnych wzdłuż ścieżki programowej. Symbol graficzny kroku, czyli danego etapu procesu symbolizuje czworokąt z podaniem wewnątrz jego pola nazwy kroku, zaś tranzycja, czyli warunek przejścia reprezentowana jest przez pogrubiony odcinek linii poziomej, krzyżującej się ze ścieżką programową wraz z podaniem przy tej linii numeru tranzycji oraz warunku przejścia. Warunek przejścia może być pojedynczy lub być zespołem warunków, połączonych ze sobą operatorami logicznymi. Rysunek 13 ilustruje te dwa podstawowe elementy formalizmu GRAFCET.
Rysunek 13: Podstawowe elementy formalizmu GRAFCET: a) sieć algorytmu, która zawiera krok zerowy „0”; b) sieć algorytmu ze złożoną tranzycją Tn+1
Na rysunku 13a) symbol kroku o oznaczeniu „0” skonstruowany jest w ten sposób, że w czworokąt o większym wymiarze wpisany jest drugi o mniejszym wymiarze. Jest to tak zwany krok zerowy (początkowy), który w danym algorytmie GRAFCET może wystąpić tylko raz. Ważną informacją jest to, że formalizm GRAFCET przewiduje również tzw. zapętlenie algorytmu poprzez taki krok początkowy. Wtedy krok o oznaczeniu „0” jest początkowym tylko przy pierwszym rozwoju algorytmu. Później, przy kolejnych zapętleniach jest krokiem, jak każde inne kroki algorytmu. Dogodne jest również numerowanie tranzycji tak, aby kolejno następujące warunki przejścia odnosiły się do kroków, które te tranzycie wywołują. Oba powyższe zagadnienia wyjaśnia rysunek 14.
Rysunek 14: Krok zerowy jako kolejny krok algorytmu
Narzucono, aby przy tworzeniu algorytmu GRAFCET przestrzegać następujących uwarunkowań:
- algorytm może zawierać tylko jeden krok początkowy (zerowy), odpowiednio oznaczony;
- pomiędzy kolejnymi etapami (krokami) może znajdować się tylko jedna tranzycja, czyli warunek przejścia;
- algorytm powinien być zupełny (skończony), czyli z ostatniego kroku analizowanego wzdłuż ścieżki programowej powinno być zrealizowane zapętlenie do innego kroku algorytmu uzupełnione o tranzycję.
Rysunek 15 ilustruje inne przykłady prawidłowo skonstruowanych algorytmów GRAFCET, zaś rysunek 16 przedstawia typowe błędy, które są popełniane przy tworzeniu algorytmu
Rysunek 15: Prawidłowe grafy algorytmu GRAFCET: a) realizacja zapętlenia algorytmu z pominięciem kroku zerowego: b) realizacja możliwości ominięcia kroku „n+1”
Rysunek 16: Nieprawidłowe grafy algorytmu GRAFCET: a) niezupełność algorytmu; b) pomiędzy krokiem „n” i „n+2” dwie tranzycie: T’n+2 oraz Tn+2
Analizując rysunek 15, który pokazuje prawidłowe postacie algorytmu GRAFCET, (nazywane często rozwojami algorytmu), można zwrócić uwagę, że w obu algorytmach spełniono warunki prawidłowości konstrukcji algorytmu GRAFCET. W pierwszym algorytmie – rysunek 15a) zastosowano zupełność algorytmu oraz spełniono obowiązek wprowadzenia pomiędzy poszczególnymi krokami tylko jednej tranzycji. W drugim algorytmie – rysunek 15b) widać, że jest on fragmentem większej całości. Należy więc tylko podkreślić, że zastosowano prawidłowy rozwój algorytmu z kroku „n” do: albo kroku „n+1” po spełnieniu tranzycji „Tn+1”, albo do kroku „n+2” poprzez ominięcie kroku „n+1” i spełnienie tranzycji „T’n+2”. Przy obu tych alternatywnych ścieżkach programowych, wybieranych przez tranzycję „Tn+1” (i dalej) lub tranzycję „T’n+2” zachowany jest warunek, iż pomiędzy krokiem poprzednim a następnym jest tylko jedna tranzycja.
W algorytmie z rysunku 16, pokazującym przypadki nieprawidłowych rozwojów grafu GRAFCET zauważamy, że w algorytmie z rysunku 16a) tranzycja „T2: S2=ON” nie „przyczyni się” do realizacji kolejnego etapu procesu, gdyż algorytm ten nie jest zupełny (skończony). Nie występuje zapętlenie algorytmu. W algorytmie z rysunku 16b) zauważamy, że przy sekwencji kroków o numerach: „n” – „n+1” – „n+2” algorytm jest prawidłowy jak na rysunku 15b). Błąd wystąpił przy umieszczaniu tranzycji „Tn+2”, która powinna być umieszczona „nad” punktem połączenia linii, oznaczających rozwój algorytmu, nie zaś „pod” tym punktem, jak to uczyniono na rysunku 16b).
Elementami, o których musi być jeszcze mowa przy opisie GRAFECT są bloki działania, w których umieszcza się działania algorytmu, wykonywane w skojarzonych z blokami działania krokach. Ilustruje to rysunek 17.
Rysunek 17: Bloki działania w GRAFCET
Z rysunku 17 widać, że blokami działania są „ramki” graficzne z wpisanym tekstem, które są połączone (skojarzone) z danymi krokami algorytmu GRAFCET za pomocą poziomych linii. Należy zaznaczyć, że może wystąpić taka postać algorytmu GRAFCET, w którym nie wszystkie kroki będą posiadały „swoje” bloki działania. Często taka sytuacja występuje na samym początku algorytmu, przy kroku zerowym, z którym żaden blok działania może nie być skojarzony, gdyż zadaniem kroku zerowego jest inicjacja ścieżki programowej algorytmu, co musi być w żaden sposób zasygnalizowane.
Według rysunku 17 w korku zerowym „0” wystąpi działanie, określone opisem: „STERUJ SYG_STOP” (steruj sygnalizacją stopu procesu), zaś w kroku oznaczonym jako „1”, wystąpi działanie, określone opisem: „STERUJ EZ1 & Ż1”, (steruj urządzeniami wykonawczymi EZ1 oraz Ż1). Oczywiście należy zaznaczyć, że nie istnieje sformalizowany standard opisu działań w blokach działania algorytmu GRAFCET. Wystarczy, że użyte będą opisy, które są zrozumiałe dla zespołu tworzącego dokumentację procesu.