Podręcznik

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

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.