Podręcznik

Strona: SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych
Kurs: Współbieżne sterowanie procesami przemysłowymi
Książka: Podręcznik
Wydrukowane przez użytkownika: Gość
Data: czwartek, 21 listopada 2024, 17:42

1. Współbieżność procesów przemysłowych

Dla wyjaśnienia pojęcia współbieżności procesu przemysłowego wprowadźmy najpierw następującą definicję:

[Współbieżność procesu przemysłowego - wykonywanie w różnych horyzontach czasowych zainicjowanych w tym samym momencie ciągów operacji procesu przemysłowego].
 

Aby znany Czytelnikowi proces przemysłowy z rysunku 5 przypominał współbieżność, to w tym samym momencie dwóch operatorów powinno rozpocząć otwieranie zaworów nr 1 i 2, po czym jeden z nich sterowałby „swoim” pokrętłem nie „oglądając” się na drugiego i vice versa. Jednak to, co by się wydarzyło później, czyli odjazd napełnionego wagonika musiały się wydarzyć dopiero po stwierdzeniu, że oba zawory są zamknięte. 
W zaprezentowanym wyżej opisie współbieżności procesu przemysłowego wszystko zostało definicyjnie opisane, chociaż może niezbyt czytelnie. Po pierwsze zazwyczaj w sterowaniu procesami przemysłowymi współbieżność procesu dotyczy jego fragmentu, większego albo mniejszego, co oznacza, ze w pewnym momencie taka współbieżność jest zainicjowana w procesie realizowanym z zasady sekwencyjnie. W naszym przykładzie wystąpiło to przy jednoczesnym rozpoczęciu otwierania zaworów, jednak nie od razu po rozpoczęciu realizacji procesu. Po drugie rozpoczęta współbieżność procesu przemysłowego powinna być w odpowiedni sposób zakończona po to, aby pozostała część procesu była realizowana sekwencyjnie. W naszym przypadku ten moment musiał nastąpić przed odjechaniem napełnionego wagonika. Dla lepszego zauważenia cech współbieżności procesów posłużmy się zasadą działania plotera, którego schemat zilustrowano na rysunku 17. 

[Ploter (ang. plotter) -  komputerowe urządzenie peryferyjne, służące do pracy z dużymi płaskimi powierzchniami, mogące nanosić obrazy, wycinać wzory, grawerować itp. [Źródło: Wikipedia]].

Przy pomocy naszego plotera umieszczenie punktu na białej planszy w miejscu oznaczonym jako „C” z punktu początkowego oznaczonego jako „A” można zrealizować na dwa sposoby:

  • Najpierw poprzez uruchomienie Napędu B, który napędzając swoją śrubę pociągową SP1 w czasie określonym jako tp przemieści w prawo (patrząc na rysunek od przodu) z punktu A(x1,y1) suport z Uchwytem, co spowoduje jednoczesne przemieszczenie Punktaka do nowej pozycji w poziomie, czyli do punktu B(x2,y1). Następnie po zatrzymaniu Napędu B w tym nowym punkcie następuje uruchomienie Napędu A, który poprzez swoją śrubę pociągową SP2 spowoduje z kolei przemieszczenie w czasie tg Uchwytu z Punktakiem do miejsca docelowego C(x2,y2) i wyłączenie Napędu A celem odbicia punktu. Opisane operacje mogą się powtarzać. Czytelnik na pewno zauważył, że mieliśmy do czynienia z procesem realizowanym sekwencyjnie.

Rysunek 17: Ilustracja sekwencyjności i współbieżności na przykładzie plotera

  • Poprzez jednoczesne uruchomienie Napędów A i B, które napędzając swoje śruby pociągowe odpowiednio SP2 i SP1 przemieszczą punktak z punktu A(x1,y1) w czasie tA-B do punktu C(x2,y2) i po wyłączeniu tych napędów odbicie punktu w tym miejscu. Czytelnik zauważył, że mieliśmy tutaj do czynienia z procesem realizowanym odmiennie od tego z punktu 1), tzn. jednoczesnym uruchomieniem najpierw dwóch napędów, dalej obrotem ich śrub pociągowych z różną prędkością, ponieważ czas tp był różny od czasu tg, oraz na końcu tego procesu wyłączenie napędów po dotarciu punktaka do miejsca przeznaczenia. Opisany proces był realizowany współbieżnie od momentu startu obu napędów do momentu ich wyłączenia. Na podstawie drogi przebytej przez punktak widać, że proces realizowany współbieżnie jest szybszy w działaniu. 

Uważny Czytelnik na pewno zauważy, że po rozpoczęciu współbieżności mieliśmy do czynienia tylko z dwoma ciągami operacji procesu, którymi było napędzanie śrub pociągowych z różną prędkością, w których to ciągach była realizowana pojedyncza operacja – sterowanie wartością prędkości obrotowej tych śrub. (Prędkość śrub pociągowych była utrzymywana przez układy napędowe silników i tych czynności raczej nie zaliczymy do innych operacji procesu w każdym z tych dwóch ciągów). Dalej, ten Czytelnik również powinien zauważyć, że po naniesieniu założonego punktu przez punktak operacja może się powtórzyć, czyli może przyjść nowy rozkaz do wykonania przez ploter. (Wszak do takich działań jest on przewidziany). Zatem otrzymamy ponownie rozpoczęcie oraz zakończenie nowego procesu realizowanego współbieżnie. Itd. Z tego widać, że procesy przemysłowe realizowane w praktyce mogą mieć nieskończenie wiele podprocesów współbieżnych. 
Analizując hipotetyczne rozwiązanie plotera z rysunku 17, które tylko dlatego jest hipotetyczne, gdyż służy nam do wyjaśnień widać, że przemieszczanie się punktaka po planszy musi być kontrolowane. (Tego nie ma na rysunku). Inaczej nie byłoby możliwe nie tylko rozpoczynanie i kończenie procedur współbieżnych, ale również i sekwencyjnych. Zatem docelowa realizacji procesu przemysłowego z procedurami współbieżnymi nie odbiega od struktury procesu przemysłowego, która była przedstawiana w module pierwszym niniejszej publikacji.

2. Algorytmy dla opisu działania procesów przemysłowych realizowanych współbieżnie

Podobnie jak to miało miejsce dla założeń w punkcie 1.2 opis słowny działania naszego plotera, gdyby został wygenerowany nie byłby czytelny dla wszystkich. Dla niektórych oczywiście tak, ale nie dla wszystkich, chociaż akurat przy tym urządzeniu mogło być inaczej, ponieważ już sama jego nazwa wskazuje na sposób jego funkcjonowania. 
W niniejszym punkcie autor zaprezentował trzy znane już Czytelnikowi postacie struktur graficznych do opisu działania procesów przemysłowych, tj. sieć Pietriego P-N, algorytm GRFACET i algorytm SFC, ale ze zobrazowaniem tej części ich struktury, która „zajmuje” się współbieżnością. Proces przemysłowy, który posłużył jako przykład zawierający podproces realizowany współbieżnie zilustrowano na rysunku 18.

Rysunek 18: Proces przemysłowy z realizacją współbieżności w działaniu siłowników S1¸S3

Proces na rysunku 18 zawiera podproces jednoczesnego uruchomienia siłowników jednostronnego działania S1¸S3, których tłoczyska wyposażone są w obracające się wrzeciona z wiertłami o różnej średnicy i nawiercają w obrabianym przedmiocie trzy otwory na głębokość określoną długością suwu roboczego każdego tłoczyska. 

2.1. Sieć Petriego P-N w opisie współbieżności procesów przemysłowych

Rysunek 19 ilustruje zaprojektowaną sieć działań P-N dla procesu przemysłowego z rysunku 18. Autor „pokolorował” część sieci P-N, która zawiera współbieżność w rozwoju tego opisu pokazując, że tak naprawdę prawie zawsze działania współbieżne są podsiecią każdej sieci P-N. Jest tak, ponieważ odnosząc to do funkcjonowania większości procesów przemysłowych z reguły pierwszymi jego etapami (krokami) są te, które stanowią o włączeniu urządzeń, sygnalizacji, itp., by dopiero później rozwinąć się w etapy bardziej złożone, jak na rysunku 19.

Rysunek 19: Sieć Petriego dla procesu przemysłowego z rysunku 18 zawierająca współbieżność 

Dla lepszej zrozumiałości sieci P-N z rysunku 19 wprowadźmy analogicznie jak to było zrobione w punkcie 1.2.3 tabelę, która opisuje działania w poszczególnych etapach (krokach) sieci oraz tranzycje je wywołujące. 
Tabela 2: Opis działań w poszczególnych etapach sieci P-N z rysunku 18 i tranzycji je wywołujących

STANY

DZIAŁANIA W DANYM STANIE

TRANZYCJA

WARUNKI LOGICZNE

0

  • Załączenie sygnalizacji STOP(1)
  • Wyłączenie sygnalizacji START

(1) – Po załączeniu procesu jak i obrobieniu elementu załączona zostaje sygnalizacja STOP a wyłączona START

(2) – Przycisk START uruchamiany jest każdorazowo po obróbce pojedynczego obrabianego przedmiotu, aby wywołać kolejny cykl.

T1

  • Przycisk START = ON(2)

1

  • Załączenie napędu NAPĘD
  • Załączenie sygnalizacji Ż2
  • Wyłączenie sygnalizacji Ż1

 

(3) -  Przyjęto, że sygnał „ON” oznacza, że wykryto obecność.

T2

  • Czujnik CZ4 = ON(3)

2

  • Wyłączenie napędu NAPĘD
  • Załączenie sygnalizacji PULSE Ż2(4)
  • Uruchomienie TIMER T0 = 1 sekunda(4) 

(4)Przełączenie sygnalizatora Ż2 na pulsowanie 1Hz oraz wprowadzenie oczekiwania o wartości 1 sekundy na uruchomienie współbieżności

Spełniony warunek do rozpoczęcia współbieżności w działaniu.

T33,4,5

  • Upłynął czas 1 sekunda

3

  • Załączenie zaworu Z1
  • Załączenie wrzeciona W1

4

  • Załączenie zaworu Z2
  • Załączenie wrzeciona W2

5

  • Załączenie zaworu Z3
  • Załączenie wrzeciona W3

T6

  • Czujnik CZ1 = ON

T7

  • Czujnik CZ2 = ON

6

  • Uruchom. TIMER T1 = 3s

7

  • Uruchom. TIMER T2 = 4s

Wszystkie trzy otwory zostały nawiercone i upłynął odpowiedni czas

T8

  • T1=ON & T2 = ON & CZ3 = ON

8

  • Wyłączenie zaworów Z1¸Z3
  • Uruchomienie TIMER T3 = 2 sekundy

 

 

T9

  • Upłynął czas 2 sekundy

9

  • Wyłączenie wrzecion W1¸W3
  • Wyłączenie sygnalizacji PULSE Ż2(5)
  • Uruchomienie TIMER T4 = 5 sekund

(5) – Od tego momentu zapalona stabilnie sygnalizacja Ż2 oznacza wykonanie obróbki elementu (zakończenie nawiercania trzech otworów) 

 

T0

  • Upłynął czas 5 sekund

Na rysunku 19 autor pokolorował procedurę rozpoczynania i kończenia współbieżności w działaniu procesu przemysłowego z rysunku 18. Według przyjętej koncepcji działania tego procesu po pojawieniu się etapu oznaczonego na rysunku 19 numerem 2 (tzn. m.in. zatrzymanie napędu i pulsacyjna sygnalizacja tegoż kroku) po „odczekaniu” okresu 1 sekundy następuje jednoczesne uruchomieniu trzech siłowników pneumatycznych jednostronnego działania, które charakteryzują się różną długością swoich tłoczysk roboczych, na których końcach zamocowano obracające się wrzeciona. (Każde wrzeciono posiada zamocowane na stałe wiertło do metalu o różnej średnicy, np. \phi 10, \phi 14 oraz \phi 18). Na rysunku 19 ten moment startu współbieżności wyznacza tranzycja T33,4,5 (na różowo), zaś uruchomione trzy ciągi oznaczone są wrysowanymi czerwonymi okręgami. Ponieważ ciąg sieci P-N oznaczony etapem o numerze 5 zawiera tylko jeden krok (właśnie ten), to jest „natychmiast” i jednym z warunków wyjścia z procedury współbieżnej, dlatego posiada wewnątrz numeru kroku okrąg w kolorze zielonym tak, jak etapy nr 6 i nr 7. (Pokazana kolorystyka jest inwencją autora niniejszej publikacji jak i większość różnych prezentacji dla wyjaśnienia prezentowanego Czytelnikowi materiału). Wspomniana procedura wyjścia z realizacji współbieżnej procesu z rysunku 8 rozpoczyna się oprócz zaistnienia wszystkich ostatnich etapów sieci P-N również i tranzycją T8, która pochodzi od dwóch różnych czasów oraz zajęcia przez najdłuższe tłoczysko pozycji czujnika CZ3. Gdy to nastąpi sieć P-N przechodzi od realizacji współbieżnej do realizacji sekwencyjnej, co Czytelnik zapewne zauważył od kroku o numerze 8.
Analizując wielkość długości tłoczysk siłowników pneumatycznych z rysunku 8 oraz wartości czasów czasomierzy (Timerów) T1 i T2 zapewne Czytelnik domyślił się, że tzw. horyzont czasowy dla realizacji poszczególnych trzech ciągów działania współbieżnego procesu przemysłowego jest różny, czyli czasy ciągów oznaczone na rysunku 9 jako t3-6, t4-7 i t5 są różne. Był to celowy zabieg autora aby pokazać, że w większości podprocesów realizowanych współbieżnie ilość etapów (kroków) w poszczególnych ciągach jest różna. Maksymalna liczba kroków z rysunku 9 wynosząca dwa jest rzadko spotykana jak również liczba ciągu równa trzy. Semantyka sieci typu P-N ani nie minimalizuje ani nie maksymalizuje liczby etapów (kroków) w rozwojach sieci współbieżnych. Wszystko zależy od przyjętego sposobu działania modelowanego procesu przemysłowego. To, co warte podkreślenia oraz zapamiętania to fakt, iż procedury realizowane współbieżnie rozpoczynają się zapaleniem tranzycji „po” kroku ją poprzedzającym, zaś te uruchomione współbieżnie procedury zakończają swoją działalność po osiągnięciu przez każdy uruchomiony ciąg ostatniego swojego etapu (kroku) oraz zapaleniem tranzycji przed pojedynczym krokiem już działania sekwencyjnego sieci P-N. Uważny Czytelnik na pewno wszystko to już zauważył dokładnie analizując rysunek 9. 

2.2. Algorytm procesu GRAFCET w opisie współbieżności procesów przemysłowych

Rysunek 20 ilustruje z kolei algorytm procesu przemysłowego z rysunku 18, ale w postaci struktury GRAFCET. Struktura ta od etapu drugiego zawiera procedury realizowane współbieżnie, róznież „pokolorowane”.

Rysunek 20: Algorytm GRAFCET dla procesu przemysłowego z rysunku 18 zawierający struktury współbieżne

Modelowanie działań współbieżnych w algorytmie GRAFCET następuje poprzez użycie podwójnych linii przerywanych (górnej - pokazuje uruchomienie i dolnej – pokazuje zakończenie tych procedur). Celem uwypuklenia działań współbieżnych w procesie z rysunku 18, autor pokolorował odpowiednie kroki algorytmu, podobnie jak to miało miejsce w sieci P-N. Pokolorowana na czerwono górna podwójna linia oznacza, że wcześniej zapaliła się tranzycja T33,4,5 wywołując jednocześnie trzy ciągi. Z rysunku 20 wyraźnie widać, że w tym momencie analizy algorytmu „wyjście” z procedur uruchomionych współbieżnie będzie możliwe dopiero wtedy, gdy TIMER T1 „dokończy” odmierzanie swojego czasu i tłoczysko drugiego siłownika pobudzając czujnik CZ2 spowoduje odmierzenie czasu przez TIMER T2. Dopiero wtedy wszystkie ciągi współbieżne znajdą się w swoich ostatnich krokach. Zapalona potem tranzycja T8 dopełni „dzieła” i nastąpi zakończenie współbieżności.

2.3. Algorytm procesu SFC w opisie współbieżności procesów przemysłowych

Rysunek 21 ilustruje algorytm sterowania procesu przemysłowego z rysunku 18 w postaci struktury SFC. Struktura ta dla odmiany od 8-go zawiera już procedury realizowane sekwencyjnie po wyjściu ze współbieżności.

Rysunek 21: Algorytm SFC dla procesu przemysłowego z rysunku 18 zawierający struktury współbieżne 

Pokolorowana na czerwono dolna przerywana linia oraz zapalona tranzycja T8 sugerują, że wcześniej zostały spełnione warunki do wyjścia z procedur realizowanych współbieżnie celem uruchomienia kroku nr 8, który jest już wśród sterowania sekwencyjnego. W rzeczywistym środowisku narzędziowym dla sterownika PLC, na ekranie którego wyświetlany był by algorytm SFC w trybie diagnostyki („coś” zbliżonego do rysunku 21) w tym stanie rzeczy pokazany by był na czerwono tylko krok nr 8. Byłoby tak, ponieważ wysterowanie następnego kroku struktury SFC po kroku poprzednim dezaktywuje ten ostatni. Jednak dla lepszego pokazania Czytelnikowi sposobu sterowania w algorytmie SFC autor postanowił zostawić „na ekranie” więcej, niż to byłoby w praktyce.

3. Rodzaje błędów spotykanych w algorytmach sterowania SFC

Należy wyraźnie zaznaczyć, że właściwe zaprojektowanie struktur realizowanych zarówno jako tylko sekwencyjne, jak i struktur, które posiadają włączone tamże procedury współbieżnie, posiada bardzo duże znaczenie dla późniejszej prawidłowej pracy układu sterowania, zaprojektowanego przecież dla konkretnego procesu przemysłowego. Co więcej, jak zobaczymy w niniejszym podrozdziale niektóre błędy (niezamierzone) w algorytmie SFC, a później i w programie PLC mogą nie być od razu „zauważone”. Błędny program PLC może zatem funkcjonować prawidłowo na początku jego uruchomienia a potem zareagować nieprawidłowym swoim działaniem wywołując tym samym poważne straty. 
Reasumując błędy, które możemy napotkać w utworzonych już algorytmach sterowania SFC wynikają najczęściej z następujących przyczyn:

  • W rozwoju algorytmu sterowania SFC, który powinien być dostosowany do konkretnego procesu przemysłowego przyjęto mylną koncepcję typowego działania elementów wejścia/wyjścia tego procesu, np. nie uwzględniono bezwładności elementów wykonawczych procesu czy nie uwzględniono opóźnień wnoszonych przez czujniki procesu, które to informacje powinny być uwzględnione przy tworzeniu algorytmu sterowania SFC. Efektem tego jest więc to, że zaprojektowany algorytm sterowania SFC posiada prawidłową strukturę, tzn. został utworzony przy uwzględnieniu wszystkich zasad tworzenia algorytmów zgodnie z normą EN 61131-3, lecz nie zapewni prawidłowości funkcjonowania tego procesu.
  • W projekcie algorytmu sterowania SFC dla konkretnego procesu przemysłowego zastosowano nieprawidłową jego strukturę co powoduje, że może wystąpić niebezpieczny dla procesu sterowania jego rozwój bez zgłoszenia takiej nieprawidłowości, np. poprzez wymuszone tym błędem zatrzymanie procesu na wybranym kroku. Należy nadmienić, że ten rodzaj błędu „niebezpiecznego” występuje najczęściej w tej części algorytmu sterowania SFC, która zawiera procedury realizacji współbieżności i w konsekwencji powoduje, że po prawidłowym rozpoczęciu procedury współbieżnej może „nigdy” nie wystąpić właściwe jej zakończenie, (co przecież jest warunkiem prawidłowości algorytmu SFC), zaś układ sterowania tym procesem może „stwarzać wrażenie” prawidłowego funkcjonowania do momentu zauważenia tego błędu.
  • W projekcie algorytmu SFC dla konkretnego procesu przemysłowego zastosowano nieprawidłową jego strukturę co powoduje z kolei, że może wystąpić niedostępny dla procesu jego rozwój, czego nie zaplanowano. Należy nadmienić, że ten rodzaj błędu objawi się zgłoszeniem takiej nieprawidłowości np. poprzez zatrzymanie procesu sterowania na tym etapie (kroku), gdzie ten błąd ma miejsce. Ten rodzaj błędu występuje najczęściej również w tej części algorytmu sterowania SFC, która przewidziała realizację kilku współbieżności, (przynajmniej dwóch) i powoduje, że po prawidłowym uruchomieniu pierwszej współbieżności „nigdy” nie wystąpi po pierwsze, właściwe jej zakończenie, zaś po drugie, także „nigdy” nie wystąpi zakończenie i tej drugiej współbieżności, ponieważ nie zaprojektowano w algorytmie SFC jej uruchomienia (brak pierwszej podwójnej linii przerywanej). Jest rzeczą zrozumiałą, że gdy algorytm sterowania SFC zawiera więcej niż dwie współbieżności, to powyższy błąd objawi się w tej „jednej” parze.

3.1. Błędy algorytmu SFC wynikające z typowego działania elementów procesu przemysłowego

Aby uniknąć błędów tego typu w algorytmie sterowania SFC należy wziąć pod uwagę sposób działania elementów procesu przemysłowego oraz wpływ tegoż na warunki pracy układu sterowania, czego nie widać przecież z samego algorytmu SFC, gdyż jest sam w sobie strukturą teoretyczną, która dopiero ma być zamieniona na program PLC. Przypomnijmy, że jedne z tych elementów nazywamy aktorami i są one uruchamiane sygnałami z tego algorytmu, zaś drugie nazywamy czujnikami i dostarczają one sygnałów obiektowych dla tego algorytmu. Przykładowe elementy procesu przemysłowego zilustrowano na rysunku 22.

Rysunek 22: Przykłady elementów fizycznych procesu przemysłowego: a) krańcówka 
firmy EATON; b) siłownik pneumatyczny dwustronnego działania firmy Martech

Aktory to de facto układy wykonawcze, które cechują się zawsze pewną bezwładnością w działaniu w stosunku do szybkości działania układu sterowania PLC, czyli między pojawieniem się sygnału sterującego dla uruchomienia aktora (zgodnie z algorytmem SFC) a jego zadziałaniem upływa zwykle okres czasu, który jest wielokrotnie większy niż czas realizacji pojedynczego cyklu programu PLC (ang. Scan cycle).  Dalej czujniki, to de facto elementy kontrolne aktorów, których działanie oparte jest często o wykorzystanie elementów mechanicznych w konstrukcji czujnika co z kolei powoduje, że sygnał pomiarowy od tego czujnika przekazywany jest do układu sterowania PLC (czyli do algorytmu SFC) z pewnym opóźnieniem w stosunku do pobudzenia czujnika samym aktorem. Podsumowując między wystawieniem w module wyjść sterownika PLC sygnału sterującego uruchomieniem aktora a otrzymaniem potwierdzenia jego pracy poprzez sygnał od czujnika upływa „kosmicznie” długi czas w stosunku do realizacji pojedynczego cyklu programu. Gdy takiego stanu rzeczy twórca algorytmu SFC nie weźmie po uwagę, to pomimo zachowania obowiązujących zasad przy tworzeniu tegoż układ sterowania PLC może funkcjonować nieprawidłowo, a my powiemy o błędzie samego algorytmu SFC. Wyjaśnijmy powyższe na odpowiednim przykładzie fragmentu procesu przemysłowego oraz algorytmu SFC, co zilustrowano na rysunkach 23 i 24 posługując się odpowiednimi schematami.
Na rysunku 23 zilustrowano podsystem procesu przemysłowego, który zawiera wykorzystanie aktora pneumatycznego w przykładowej aplikacji jego wykorzystania. Jak widać z tego rysunku aktor pneumatyczny złożony jest z siłownika pneumatycznego dwustronnego działania oraz elektrozaworu rozdzielającego 5/2, który zawiera w sobie dwie cewki sterujące: EZ1 i EZ2, z których pierwsza odpowiada za ruch tłoczyska w prawo, zaś druga w lewo, czyli do pozycji spoczynkowej. Kontrola pracy tłoczyska siłownika realizowana jest za pośrednictwem czujnika krańcowego CCZPT, zaś kontrola prawidłowości ciśnienia powietrza poprzez czujnik CCIŚ.

Rysunek 23: Podsystem procesu przemysłowego z aktorem pneumatycznym

Podsystem z rysunku 23 sterowany jest za pośrednictwem sterownika PLC, w którym zaimplementowano program PLC na podstawie algorytmu SFC, którego interesujący nas fragment pokazano na rysunku 24.

Rysunek 24: Fragment algorytmu SFC odpowiedzialny z diagnostykę pracy aktora z rysunku 23 – wariant nr 1

Zaproponowana diagnostyka pracy siłownika pneumatycznego z rysunku 23 nie jest trudna do odgadnięcia. Po uruchomieniu kroku „n-1” następuje równoczesne wysterowanie cewki EZ1 oraz Timera typu TON o numerze T40 z nastawą 5 sekund. (Czas ten określił projektant algorytmu SFC, którego wartość jest błędna – ale o tym później). Tłoczysko wykonuje ruch w kierunku PRAWO i po krótkim czasie pobudza czujnik krańcowy CczpT, co zapala tranzycję T’n’ i wysterowuje krok „n’”. W kroku tym cewka EZ1 jest wyłączana z jednoczesnym załączeniem cewki EZ2 i Timera typu TON T41 z nastawą 2 sekundy. Po tym czasie następuje przejście do kroku „n-1” i sytuacja się powtarza. Czytelnik teraz ma prawo zadać następujące i zasadne pytanie: gdzie jest diagnostyka pracy siłownika pneumatycznego z rysunku 23? Wyjaśnijmy to teraz. 
Widać z fragmentu algorytmu SFC, pokazanego na rysunku 24, że zamysł projektanta dla diagnostyki pracy siłownika pneumatycznego był taki, iż łącznie z uruchomieniem cewki EZ1 elektrozaworu 5/2 następuje start Timera typu TON o numerze T40 z nastawą czasu 5 sekund. Na podstawie rozwoju algorytmu (czytaj: rozgałęzienie) możemy się domyślać, że wartość tego czasu powinna gwarantować to, że jeżeli tłoczysko siłownika nie wykona swojej pracy w czasie mniejszym niż 5 sekund, (czytaj: nie pobudzi czujnika CczpT na skutek spowolnienia swojego ruchu np. poprzez spadek ciśnienia sprężonego powietrza), to nastąpi rozgałęzienie algorytmu do kroku „n'”, czyli wyłączenie cewki EZ1 i start sygnalizacji awarii poprzez pulsowanie Ż1. Dalsze przypuszczenie odnośnie pracy układu jest takie, że wyjście z tej awarii nastąpi po przywróceniu odpowiedniej wartości ciśnienia sprężonego powietrza, co pokaże czujnik TCIŚ. Jak wynika z algorytmu SFC pobudzenie przez tłoczysko czujnika CCZPT w czasie krótszym niż 5 sekund powoduje to, że układ „podąża” lewą stroną rozgałęzienia algorytmu, co oznacza pracę prawidłową.
Czytelnik zapewne dalej zapyta: gdzie jest „pies” pogrzebany i dlaczego ten algorytm SFC zawiera błąd? Błąd wydaje się być w tym, że projektant dobrał za duży czas dla Timera T40 (5 sekund) co oznacza, że nawet przy dużym spadku ciśnienia sprężonego powietrza (np. w wyniku wielokrotnej pracy aktora pneumatycznego) czy zbyt dużego obciążenia tłoczyska siłownika (powodującego wolniejszy jego ruch) czujnik CCZPT będzie i tak pobudzany w czasie do 5 sekund i układ będzie sprawiał wrażenie działającego prawidłowo, pomimo tego, że tak nie będzie. (Na przykład tłoczysko siłownika nie będzie „trafiało” w produkty poruszające się po taśmie produkcyjnej z dużą szybkością). Tego błędu z algorytmu SFC nie widać. Będzie to stwierdzone dopiero przy testowaniu układu sterowania PLC. Nawet przy braku znajomości działania siłowników pneumatycznych można przyjąć, że czas 5 sekund związany z ruchem roboczym jego tłoczyska jest zbyt duży i powinien oscylować maksymalnie do 2 sekund. Zatem modyfikacja wartości czasu w Timerze T40 przynosząca zamiast 5 sekund tylko 2 sekundy przywróci układ do prawidłowego działania oraz diagnostyki. Pokazuje to rysunek 25.    

Rysunek 25: Fragment algorytmu SFC odpowiedzialny z diagnostykę pracy aktora z rysunku 23 – wariant nr 2

Przy modyfikacji czasu Timera T40 na 2 sekundy, przyjętym teraz za właściwy ze względu na jakość pracy wykonywanej przez tłoczysko, tylko nieznaczne „spóźnienie” się tegoż w pobudzeniu czujnika CCZPT spowoduje awaryjne zatrzymanie pracy siłownika i jego sygnalizację. To spóźnienie się tłoczyska wynikające z obniżenia ciśnienia sprężonego powietrza, które jest jak się Czytelnik domyśla medium roboczym dla siłownika, należy natychmiast wyeliminować, co pokaże czujnik CCIŚ zapalając tranzycję T’’. To, jak wynika z rysunku 25 przywróci normalność w pracy tego podsystemu procesu przemysłowego z rysunku 23.
Konstrukcja diagnostyki pracy procesów przemysłowych zawarta w algorytmach SFC według zasady pokazanej na rysunku 23 nie jest rzeczą skomplikowaną. Wymaga tylko umiejętnego wkomponowania rozgałęzień algorytmu oraz znajomości zasad pracy elementów procesu przemysłowego. Rozgałęzień, ponieważ struktura docelowego algorytmu SFC nie ogranicza liczby elementów diagnostyki, które włączymy do tegoż algorytmu. Podobnie jest z samą diagnostyką. Pokazana w algorytmie z rysunku 23 diagnostyka włączała tylko jeden czujnik kontrolny (CCZPT) do określania jakości pracy aktora pneumatycznego, jedną sygnalizację takiej awarii (PULSEŻ1) oraz jeden warunek wyjścia z tej awarii (CCIŚ). Taką diagnostykę procesu można rozwinąć o dodatkowe elementy kontrolno-sygnalizacyjne takie, jak czujnik siły, określający wartość tejże osiąganej na tłoczysku, czujnik przyśpieszenia tłoczyska czy dodatkowy sygnalizator dźwiękowy awarii lub inne. Wszystko zależy o potrzeb diagnostyki pracy procesu przemysłowego.
Analizując samą postać algorytmu SFC (wariant nr 2) z rysunku 25 pod kątem poszukiwania dalszych błędów okazuje się, że w dalszym ciągu ten algorytm jest błędny w jednym aspekcie. Aby odpowiedzieć Czytelnikowi dlaczego, autor postawi pytanie pomocnicze: co się powinno „wydarzyć” w układzie sterowania procesem, jeżeli w tym samym czasie wystąpią dwie tranzycje: tj. T’n’ i T’’n’? Jest to możliwe w praktyce i wydarzyć się może wtedy, gdy pobudzenie czujnika CCZPT nastąpi „równo” po 2 sekundach od uruchomienia tłoczyska, czyli również i startu odmierzania czasu przez TIMER T40. Ale i na taki przypadek losowy norma EN61131-3 przewidziała „aż” dwa rozwiązania, z których jedno pokazano na rysunku 26.

Rysunek 26: Fragment algorytmu SFC odpowiedzialny z diagnostykę pracy aktora z rysunku 23 – wariant nr 3

Pierwszym rozwiązaniem jest to, że norma zaleca, aby rozgałęzienia krytyczne, czyli takie, które mogą mieć wpływ na bezpieczeństwo pracy procesów przemysłowych były projektowane począwszy od lewej strony rozgałęzień algorytmu, które za to bezpieczeństwo odpowiadają. Na rysunku 26 „przeniesiono” zgodnie z normą krok „n’’” na lewą stronę struktury rozgałęzienia czyniąc ten algorytm dopiero teraz prawidłowym. Norma EN61131-3 ustaliła także tzw. priorytet ważności mówiący, że w przypadku większej liczby takich krytycznych rozgałęzień, w których może wystąpić w tym samym momencie kilka tranzycji dla „swoich” kroków najbardziej „ważna” znajduje się po lewej stronie struktury algorytmu, „średnio” ważna jest następna, itd.
Drugim rozwiązaniem umieszczenia poprawnej diagnostyki w algorytmie SFC (tylko podanym, nie zaś umieszczonym na rysunku) jest określenie wspomnianej hierarchicznej ważności rozgałęzień poprzez ponumerowanie tranzycji o narastającej numeracji. Odnosząc to do algorytmu SFC z rysunku 25 przy tranzycji T’’n’ powinna widnieć cyfra „1”, zaś przy tranzycji T’n’ powinna widnieć cyfra „2”. Kończąc ten podpunkt autor wyraża nadzieję, że teraz Czytelnik poprawnie już zaprojektuje algorytm SFC zawierający procedury diagnostyki.

3.2. Błędy algorytmu SFC tzw. niebezpieczne dla jego rozwoju

Podkreślmy, że tzw. błędy niebezpieczne dla rozwoju algorytmu SFC powstają wtedy, gdy projektant takiego algorytmu zachowa właściwe zasady zależności kroków od tranzycji przy tworzeniu struktury algorytmu, zaś uczyni to tak, że rozwój algorytmu w określonym kierunku wykluczy dokończenie rozpoczętej wcześniej procedury, wykluczy definitywnie (tzn. procedura ta nigdy nie zostanie już ukończona) lub wykluczy niebezpiecznie ze względu na pracę procesu przemysłowego. Użyte słowo „procedura” poprawnie kieruje Czytelnika na fakt, iż błędy niebezpieczne występują zazwyczaj w częściach współbieżnych algorytmów sterowania SFC. Wyjaśnijmy to przykładzie zmodyfikowanego w działaniu procesu przemysłowego z rysunku 18, który posłużył nam do wyjaśnienia współbieżności oraz interesującego nas fragmentu algorytmu SFC, który zilustrowano na rysunku 28. 
Rysunek 27 ilustruje lekko zmodyfikowany proces przemysłowy, a w zasadzie należałoby powiedzieć, że ilustruje zmodyfikowany układ sterowania tym procesem uzupełniony do dodatkową pulsującą sygnalizację optyczną Ż3, którą umieszczono na pulpicie sterującym. W zamiarze projektanta (skąd inąd słusznym) sygnalizacja ta powinna pokazywać awarię w działaniu siłownika Z3 na skutek obniżenia wartości ciśnienia sprężonego powietrza. Awaria ta powinna zaistnieć wtedy, gdy praca tłoczyska tego siłownika będzie spowolniona, co ma się uwidocznić poprzez opóźnienie w załączeniu czujnika bezkontaktowego CZ3. Wykryte opóźnienie większe lub równe 6 sekund (tak przyjęto w sterowaniu tym procesem) powinno wywołać awarię w postaci załączenia sygnalizacji pulsowania sygnalizacji optycznej Ż3. Ponieważ opóźnienie w działaniu tłoczyska siłownika Z3 pojawiło się na skutek obniżenia wartości ciśnienia medium roboczego, to projektant założył (chyba zasadnie), że gdy to ciśnienie będzie prawidłowe, to układ wróci do normalnej pracy tak, jak to było przed awarią. Takie założenie potwierdza użycie czujnika ciśnienia medium roboczego CZCIŚ, który zamontowano w przewodzie zasilającym w to medium siłownik Z3 oraz obwarowano działaniem w algorytmie SFC z rysunku 28.  

Rysunek 27: Proces przemysłowy z rysunku 18 uzupełniony o sygnalizację awarii Ż3 i czujnik CZCIŚ

 

Rysunek 28: Fragment algorytmu SFC dla procesu z rysunku 27 zawierający tzw. błąd niebezpieczny

Analizując dokładnie algorytm SFC z rysunku 28 można stwierdzić, że przy zachowaniu normalnych warunków pracy procesu przemysłowego, czyli zachowaniu zawsze odpowiedniej wartości ciśnienia medium roboczego, którym jest zazwyczaj sprężone powietrze wspomniana wcześniej awaria nie ma prawa się wydarzyć. Uruchomione jednocześnie siłowniki Z1 do Z3 poprzez swoje tłoczyska wykonają zawsze swoją założoną pracę, co wtedy zostanie potwierdzone poprzez prawidłowe zakończenie procedury współbieżnej (niższa linia przerywana) i dalszy przebieg procesu przemysłowego. Przy wystąpieniu zaś awarii sytuacja się diametralnie zmieni i jak widać z rysunku 28 algorytm SFC „sam się” nie naprawi. (Na rysunku 28 zaznaczono to w kolorze czerwonym). Opóźniony ruch tłoczyska siłownika Z3 (na skutek mniejszej wartości ciśnienia medium) spowoduje przejście do kroku numer 11 (zapalona tranzycja od TIMERA T6 po czasie 6 sekund), uniemożliwiając wyłączenie tego zaworu i wrzeciona W3 w kroku nr 8 i w efekcie niemożliwość zakończenia procedury współbieżnej. (Jak pamiętamy zakończenie procedury współbieżnej następuje m.in. wtedy, gdy ostatnie kroki we wszystkich ciągach zaistnieją). Mało tego, wiertło tego wrzeciona W3 będzie dalej zanurzone w materiale i się będzie obracało. Sygnalizacja PULSE Ż3 zadziała, ale to będzie tylko informacja dla operatora i „nic więcej” dla układu sterowania PLC tym procesem przemysłowym. Owszem, wzrost wartości ciśnienia medium roboczego zostanie zauważone poprzez czujnik CZCIŚ, ale to tylko doprowadzi do dalszego rozwoju algorytmu (linia pomarańczowa), jednak nie uzdrowi „sytuacji”. Próba odbioru obrabianego przedmiotu z linii transportowej może być niemożliwa lub „gwarantować” złamanie wiertła we wrzecionie W3 (ponieważ jest ono dalej zanurzone) lub nawet wywołać skrzywienie tłoczyska siłownika Z3, ponieważ jest ono znacznej długości. Wydaje się zatem, że jedyną możliwością naprawy tej sytuacji jest zupełne wyłączenie układu sterowania PLC, ręczne sprowadzenie tłoczyska Z3 do pozycji górnej, usunięcie (już) obrobionego materiału z linii produkcyjnej i ponowne uruchomienie układu sterowania. To wszystko może wywołać znaczny przestój w realizacji procesu przemysłowego. Zatem czy o to tak naprawdę projektantowi algorytmu SFC chodziło projektując sygnalizację awarii w taki sposób? Dylemat ten do samodzielnego rozstrzygnięcia autor pozostawi Czytelnikowi, jednak bezspornym jest, że twórca tego algorytmu zrobił tzw. błąd niebezpieczny, który nie powinien był się wydarzyć.
Należy zaznaczyć, że dopuszczone normą EN 61131-3 rozwoje algorytmów SFC dopuszczają różne modyfikacje tych algorytmów przy zachowaniu właściwych zasad. Zatem nawet gdy przewidujemy konieczność włączenia elementów diagnostyki procesów przemysłowych realizowanych współbieżnie, albo może bardziej poprawnie, tam, gdzie część tych procesów realizowana jest współbieżnie, możemy to zrobić ale tak, aby obowiązkowo nie popełniać błędów niebezpiecznych jak ten z rysunku 28.
Odnosząc się do powyższego rysunek 29 ilustruje poprawnie wkomponowaną w algorytm SFC diagnostykę pracy siłownika Z3 według zasady, którą chciał osiągnąć twórca algorytmu dla procesu z rysunku 27. Przypomnijmy, chodziło o diagnostykę wewnątrz procedury uruchomionej współbieżnie. W prawidłowo zrealizowanym algorytmie na rysunku 29 „wyciągnięto” tę diagnostykę poza procedurę współbieżną, zaś wewnątrz tej procedury pozostawiono jednoczesne uruchomienie TIMERA T6 razem z trzema siłownikami Z1 do Z3. To spowodowało, że T6 o nastawie 6 sekund monitoruje pracę siłownika Z3 według zasad wcześniej omówionych.

Rysunek 29: Algorytm SFC z diagnostyką pracy siłownika Z3 uruchomioną w kroku nr 3 z TIMEREM T6 o nastawie 6 sekund
 

3.3. Błędy algorytmu SFC tzw. niedostępne dla jego rozwoju

Jak pokazuje analiza algorytmu SFC z rysunku 28, który zawiera błąd niebezpieczny dla procesu przemysłowego, może być i tak, że błąd taki może nigdy się nie objawić w praktyce pomimo tego, że wystąpi w algorytmie. Odnosząc to do rysunku 28 błąd niebezpieczny nie objawi się nigdy, gdy tłoczysko siłownika Z3 będzie przez cały swój okres „eksploatacji” pobudzać czujnik CZ3 przed upływem okresu czasu 6 sekund a to będzie zachowane wtedy, gdy układ przygotowania sprężonego powietrza „zadba” zawsze o jego odpowiednią wartość lub zachowana będzie zawsze szczelność podłączenia siłownika Z3 do przewodu pneumatycznego zasilającego. 
Należy nadmienić, że inaczej wygląda sprawa z tzw. błędem niedostępnym, który może wystąpić w algorytmie SFC na skutek najprawdopodobniej nieuwagi projektanta, ponieważ nikt raczej świadomie nie projektuje algorytmu, który nie będzie wykonywalny w praktyce. Jak dalej zobaczymy na przykładzie tego samego procesu przemysłowego z rysunku 27 błąd niedostępny zatrzyma proces przemysłowy na kroku (etapie) skojarzonym z tą częścią algorytmu SFC, w którym ten błąd „wyprodukowano”. Rysunek 30 ilustruje algorytm SFC dla tego procesu z tzw. błędem niedostępnym.

Rysunek 30: Algorytm SFC z błędem niedostępnym uniemożliwiającym m.in. rozwój algorytmu po zapaleniu tranzycji T0

W algorytmie SFC z rysunku 30 poprzez ten błąd niedostępny, w zależności od rozwoju algorytmu nie mają prawa się wydarzyć alternatywnie dwie rzeczy. Pierwszą rzeczą może być to, że gdy tłoczysko siłownika Z3 „zdąży” pobudzić czujnik CZ3 w czasie mniejszym niż 6 sekund, to po wykonaniu kompletnej pojedynczej (czytaj: pierwszej po uruchomieniu procesu i jedynej) obróbki materiału, czyli nawierceniu trzech otworów i wycofaniu tłoczysk proces i tak nie zakończy się. Gdzie to widzimy? Widzimy to w tym, że po pierwsze algorytm nie zawiera poprawnie uruchomionej drugiej procedury współbieżnej oraz po drugie, nawet gdyby tak było, warunkiem wyjścia z tej drugiej procedury współbieżnej (oprócz zapalenia tranzycji T0) byłoby zaistnienie kroku nr 11, który nigdy nie zaistnieje. (Autor jest przekonany, że Czytelnik wie dlaczego). Drugą rzeczą będzie to, że gdy pojawi się omawiana wcześniej awaria w działaniu siłownika Z3 i pojawi się dzięki temu krok nr 11, to i tak nie nastąpi wyjście z tej drugiej procedury współbieżnej, ponieważ pierwsza procedura współbieżna się nie zakończyła (Czytelnik zapewne wie dlaczego), czyli i nie zaistnieje nigdy krok nr 10. Zatem błąd niedostępny spowodował zatrzymanie realizacji procesu przemysłowego na nawierceniu otworu numer trzy.
Należy nadmienić, że tworząc algorytmy SFC projektant powinien zawsze zadbać o poprawną ich semantykę zgodnie z normą EN 61131-3. Szczególnie jest to istotne w przypadku tworzenia algorytmu „na papierze”, nie zaś odpowiednim środowisku narzędziowym do tego celu, gdzie ewentualne błędy struktury algorytmu mogą być „zauważone” i z „podpowiedzią” wyeliminowane.   

4. Podsumowanie

W module drugim autor przedstawił zagadnienia współbieżności w realizacji procesów przemysłowych. Udowodnił, że tak naprawdę współbieżność jest pewnego rodzaju podzbiorem realizacji sekwencyjnej procesów przemysłowych, bowiem zawsze muszą wystąpić po pierwsze, „czynności” przygotowawcze w algorytmie sekwencyjnym do uruchomienia w ten sposób procesu przemysłowego nie zaś „od razu” współbieżnie, i po drugie, definiujące współbieżność rozpoczęcie oraz zakończenie tejże wyraźnie wskazują, że musi się to rozpocząć oraz zakończy w trakcie realizacji sterowania sekwencyjnego tym procesem. Autor wskazał Czytelnikowi na protoplastę w opisie współbieżności procesów, czyli sieci Petriego oraz zaprezentował sposób rozbudowy algorytmów sekwencyjnych (z zasady) GRAFCET i SFC o procedury współbieżne. Moduł kończy omówienie na przykładach rodzaju błędów, które mogą wystąpić w algorytmach SFC (raczej w sposób niezamierzony) oraz ich wpływ na realizację tych algorytmów.