3. Języki (metody) programowania (arkusz IEC 1131-3)

3.7. Graf SFC

Według normy IEC 1131-3 metoda SFC stanowi sposób tworzenia struktury programu w postaci schematu funkcji sekwencyjnej. Taki sposób tworzenia struktury programu pozwala na opisywanie zadań sterowania sekwencyjnego za pomocą grafów, które zawierają kroki (utożsamiane z etapami procesu sterowania) oraz warunki przejścia (tzw. tranzycje), czyli warunki logiczne, niezbędne do przemieszczania się sterowania od kroku poprzedniego do następnego.

Należy zaznaczyć, że w momencie powstania normy IEC 1131 graf SFC zaliczany był do struktur graficznych, za pomocą których można było jedynie modelować graficznie algorytmy sterowania procesem. Obecnie, na skutek rozwoju w zakresie oprogramowania narzędziowego do tworzenia programów dla sterowników PLC, graf SFC możemy zaliczyć do grupy języków graficznych programowania tych urządzeń.

Elementy grafu SFC

Elementami, które są niezbędne do utworzenia grafu SFC są:

  1. Krok sieci;
  2. Tranzycja sieci (tzw. warunek przejścia);
  3. Akcja;
  4. Blok akcji z kwalifikatorami akcji.

Ad 1: Krok sieci algorytmu SFC określa etap procesu lub zestaw działań sterownika PLC skojarzonych z tym krokiem. Krok sieci oznaczany jest symbolem prostokąta narysowanego linią kreskową. Sposób przedstawiania kroków zgodnie z normą IEC 1131-3 ilustruje Tabela 26.

 

Tabela 26: Sposób przedstawiania kroków zgodnie z normą IEC 1131-3

 

Krok sieci grafu SFC może być aktywny lub nieaktywny. Określane jest to jego wskaźnikiem, który przybiera wartość zmiennej logicznej ***.X struktury boolowskiej, gdzie *** jest nazwą kroku. Gdy ta zmienna ma wartość logiczną „1”, to krok sieci jest aktywny, w przeciwnym przypadku krok jest nieaktywny.

Zgodnie z normą IEC 1131-3 stan początkowy (wyjściowy) procesu oraz sterownika PLC określa krok początkowy (inicjujący). W grafie SFC jest to wyróżnione graficznie jak w Tabeli 26, poz. 1b, czyli podwójnymi liniami jako krawędziami. Norma narzuca, aby dowolna sieć SFC miała tylko jeden krok początkowy.

Przy inicjowaniu systemu domyślnym początkowym czasem upływającym dla kroków sieci jest t#0s, domyślnym stanem początkowym dla zwykłych kroków jest boolowskie „0”, a dla kroków początkowych boolowskie „1”. (To ostanie wynika z faktu, iż musi istnieć warunek rozwoju algorytmu SFC, zatem po uruchomieniu programu (sterownika PLC) musi zaistnieć krok początkowy). Może jednak zaistnieć przypadek stanu początkowego grafu SFC inny od wyżej wymienionego. Taka sytuacja ma miejsce przy deklaracji tzw. podtrzymywania stanów bloków funkcji lub programu.

  Ad 2: Tranzycja sieci(warunek przejścia) reprezentuje pojedynczy warunek lub warunki logiczne dla realizacji poszczególnych kroków programu, czyli etapów procesu. Spełnienie tego warunku przejścia jest podstawą do kontroli przechodzenia od jednego lub więcej kroków następujących po tej tranzycji, zgodnie z odpowiadającymi kierunkami łączenia w grafie SFC. Tabela 27 ilustruje modelowanie warunków przejścia w grafie SFC.

Tabela 27.1: modelowanie przejść oraz warunków przejścia

 

Tabela 27.2: modelowanie przejść oraz warunków przejścia

   

 

 

Tabela 27 pokazuje, że symbolem graficznym tranzycji jest poziomy odcinek prostopadły do pionowych kierunków łączenia. Każdą tranzycję opisuje określona zależność logiczna, która jest rezultatem modelowania logicznych zależności przyczynowo-skutkowych, określających warunki realizacji poszczególnych etapów procesu. Norma IEC 1131-3 dopuszcza, aby tranzycie mogły być modelowane w pozostałych językach programowania sterowników PLC, które obejmu te norma.

Norma IEC 1131-3 wskazuje, aby zakres nazwy tranzycji (warunku przejścia), użytej w grafie SFC powinien być lokalny w obrębie programowej jednostki organizacyjnej, w której dana tranzycja w grafie SFC została umieszczona. Jeżeli w czasie obliczania warunku przejścia pojawi się efekt uboczny, np. przypisanie wartości zmiennej nie będącej nazwą przejścia, to sytuacja taka powinna być uznana jako błąd.

Ad 3: Norma IEC 1131-3 stanowi, że z każdym krokiem sieci grafu SFC może być skojarzonych wiele akcji lub żadna. Norma przyjmuje, że krok, który nie posiada skojarzonych z nim akcji ma funkcję WAIT, tzn. oczekuje, aż warunek przejścia do kroku następnego będzie prawdziwy (ta tranzycja zostanie „zapalona”). Tabela 28 ilustruje przykłady deklaracji akcji w grafie SFC.

Tabela 28: Przykłady deklaracji akcji w grafie SFC

 

 

 

Norma stanowi, że akcją może być zmienna boolowska, zestaw rozkazów w języku IL (STL), zestaw instrukcji języka ST, zestaw drabinek w języku LD (LAD), zestaw sieci w języku FBD lub graf SFC.

Akcje powinny towarzyszyć krokom za pomocą tekstowych ciał kroków lub graficznych bloków akcji (opisanych dalej). To kojarzenie akcji z krokami powinna zapewniać implementacja sterownika PLC, który realizuje graf SFC. Przykłady kojarzenia akcji z krokami pokazuje Tabela 29.

 

Tabela 29: Przykłady kojarzenia akcji z krokami zgodnie z normą IEC 1131-3

 

 

Ad 4: Norma IEC 1131-3 stanowi, że blok akcji jest elementem graficznym grafu SFC, który łączy zmienną boolowską z jednym z kwalifikatorów akcji. (Kwalifikatory akcji podano w dalszej części tekstu). Połączenie to ma na celu stworzenie warunku zezwalającego dla akcji skojarzonej. Formalizm ten pokazano w Tabeli 30.

Tabela 30: Właściwości bloku akcji zgodnie z normą IEC 1131-3

 

Blok akcji daje możliwość opcjonalnego określenia boolowskich zmiennych wskaźnikowych, zaznaczonych za pomocą pola „c” w Tabeli 30, które mogą być ustawiane przez określoną akcję, by wskazywać jej zakończenie, przekroczenie czasu, powstanie błędu, itp. Jeżeli pole „c” nie istnieje, a pole „b” określa, że akcja powinna być zmienna boolowską, to zmienna ta, w razie potrzeby powinna być interpretowana jako zmienna „c”.

Norma IEC 1131-3 stanowi, że z każdym skojarzeniem kroku z akcja lub z każdym wystąpieniem bloku akcji powinien być skojarzony tzw. kwalifikator akcji. Wartością tego kwalifikatora powinna być jedna z wartości wymienionych poniżej w Tabeli 31.

Tabela 31: Kwalifikatory akcji zgodnie z normą IEC 1131-3

 

Kwalifikator

Opis

brak

Kwalifikator zerowy ( nie pamiętany)

N

Zapis - nie pamiętany

R

Kasowanie

S

Ustawianie

L

Ograniczenie czasowe

D

Opóźnienie czasowe

P

Pulsacja

SD

Zapis i opóźnienie czasowe

DS

Opóźnienie czasowe i zapis

SL

Zapis i ograniczenie czasowe