Szkolenie PLC cz. 13: Implementacja sekwencyjnej maszyny stanów w sterowniku TECO TP03


Zastosowanie sterowników PLC w przemyśle, głównie w dziedzinie produkcji przemysłowej, wymaga dostarczenia mechanizmu, który w sposób jednoznaczny i określony z góry będzie w stanie sterować danym procesem wytwórczym. W sytuacjach, w których istnieje możliwość wystąpienia niestabilnej pracy układu sterowania, najlepiej zastosować konstrukcję nazywana potocznie maszyną stanów.

 

SEKWENCYJNA MASZYNA STANÓW

Określenie sekwencyjna maszyna stanów wywodzi się od pojęcia układu sekwencyjnego, czyli takiego rodzaju układu cyfrowego w którym aktualny stan wyjść jest zależny zarówno od sygnałów wejściowych jak i od poprzedniego stanu wewnętrznego całego układu. Jest to cecha odróżniająca ten układ cyfrowy od prostszego automatu kombinacyjnego, w którym na wyjście ma wpływ tylko i wyłącznie aktualna wartość wektora wejść binarnych. Wykorzystując analogię do klasycznych, wspomnianych wyżej automatów cyfrowych: kombinacyjnego i sekwencyjnego, można pokazać różnicę w sposobie tworzenia oprogramowania zgodnie z ideą maszyny stanów i bez niej. W sytuacji gdy implementacja układu sterującego jest stosunkowo prosta, programista może pominąć zalecaną konstrukcję kodu, gdyż ewentualne niestabilności kodu mogą być łatwo wychwycone i skorygowane. W przypadku, w którym kod nabiera rozmiarów, a programowany sterownik domyślnie wykonuje coraz więcej operacji i kontroluje bardziej zaawansowane procesy przemysłowe, warto poświęcić chwilę i zastanowić się nad szkieletem oprogramowania oraz sposobem tworzenia kodu drabinkowego.

W pierwszym przypadku, analogicznie do układu kombinacyjnego, na postać wektora wyjść znaczenie ma tylko aktualna postać wejść, więc niemożliwa jest implementacja układu sterującego, reagującego różnie, zależnie od poprzednio wykonanej czynności – pojawienie się określonych sygnałów wejściowych, zawsze implikuje określone, jednoznaczne działanie. W przypadku układu sekwencyjnego, problem ten nie występuje, gdyż program analizuje nie tylko wektor sygnałów wejściowych, ale także poprzedni stan układu, czyli stan w którym znajdował się system sterujący. Jako przykład można podać prosty problem sterowania załączeniem oraz wyłączeniem światła, wykorzystując do tego tylko jeden przycisk monostabilny. W pierwszej opisanej sytuacji, inicjacja przycisku implikuje to samo działanie, a przecież konieczna jest praca naprzemienna-załączenie oraz wyłączenie żarówki. Układ sekwencyjny analizuje aktualny stan żarówki po inicjacji przycisku, i gasi ją gdy jest załączona oraz zapala w przeciwnym przypadku.

Implementacja maszyn sekwencyjnych na sterownikach ma jeszcze jedną, bardzo istotną zaletę – przypadkowe zakłócenie powodujące chwilową zmianę wektora sygnałów wejściowych, które w przypadku układu kombinacyjnego zmieniłoby na moment postać wektora wyjściowego, w przypadku układu sekwencyjnego może nie wywołać żadnych niepożądanych skutków, gdyż zmiana wyjść może nastąpić tylko w sytuacji gdy dany stan wewnętrzny na to pozwala.

 

PRAKTYCZNA REALIZACJA STEROWANIA SEKWENCYJNEGO

Implementacja systemu sterowania z wykorzystaniem idei automatu sekwencyjnego, mogąca posłużyć jako doskonałe podsumowanie praktyczne omawianych problemów, zrealizowana została przez nasza firmę w poprzednim roku, w Warszawie. Firma, dla której wykonany został system, zajmowała się produkcją urządzeń transportowych, a rola nasza rola polegała na stworzeniu systemu automatyzacji transportu, opartego o przenośniki rolkowe. W niniejszym artykule opisany zostanie jedynie fragment całego układu, gdyż ze względu na stopień zaawansowania systemu, wgłębianie się we wszystkie aspekty mogłoby być zbyt czasochłonne, a zależy nam jedynie na tym aby na podstawie rzeczywistej realizacji praktycznej, przybliżyć działanie sekwencyjnego układu cyfrowego.

Omawianym fragmentem całości jest moduł sterowania windą transportową. Zakładany sposób działania urządzenia był następujący:

1. stan początkowy
2. inicjacja czujnika obecności transportowanego elementu na windzie,
3. zatrzymanie rolek dojazdowych,
4. ruch windy w kierunku górnego pokładu,
5. dojazd na pozycję,
6. sprawdzenie możliwości dokonania transferu,
7. dokonanie transferu,
8. powrót windy na dolny pokład,
9. oczekiwanie na kolejna inicjację czujnika obecności elementu.

W momencie startu systemu układ rozpoczyna realizację pierwszego ze stanów. Gdy osiągnięty zostanie ostatni stan, układ przechodzi automatycznie do stanu bazowego. Powyższe wyszczególnienie konkretnej akcji systemu sterowania jako kolejnego punktu, nie wymusza aby działanie to było obsługiwane w pojedynczym kroku (inaczej ujmując, w stanie układu cyfrowego). Jeżeli działania nie wpływają na siebie wzajemnie i mogą być realizowane jednocześnie, wskazane jest aby wykonywały się równolegle.

W analizowanym przykładzie przyjmujemy następujące sygnały:

  • wektor sygnałów wejściowych:
    – czujnik obecności elementu na windzie,
    – czujnik windy w pozycji dolnej,
    – czujnik windy w pozycji górnej,
    – czujnik obecności elementu za windą,
  • wektor sygnałów wyjściowych:
    – uruchomienie rolek na windzie,
    – ruch windy w górę,
    – ruch windy w dół.

 

PRZEGLĄD PRACY STEROWNIKA

W chwili startu procesora sterownika uruchamiane są rolki wjazdowe na windzie oraz dla bezpieczeństwa wymuszane są sygnały stopu dla ruchu windy w obie strony. Ostatecznie inicjowany jest pierwszy ze stanów wewnętrznych układu sterownia M0, czyli oczekiwanie na sygnał obecności elementu na windzie.

 

Inicjalizacja pracy sterownika

Rysunek 1. Inicjalizacja pracy sterownika

 

W pierwszym cyklicznym stanie układu, system czeka na aktywację sygnału pochodzącego z czujnika optycznego. W momencie pojawienia się kuwety na platformie windy, zatrzymywane są rolki dojazdowe, uruchamiany jest silnik powodujący ruch windy na górny pokład, a następnie układ przechodzi do kolejnego stanu.

 

Oczekiwanie na sygnał obecności elementu na windzie

Rysunek 2. Oczekiwanie na sygnał obecności elementu na windzie

 

W drugim ze stanów winda porusza się w górę. Gdy osiągnie swoją destynację, aktywowany jest czujnik optyczny i zatrzymywany jest silnik włączony w stanie poprzednim. Układ kończy wykonywanie działań w aktualnym kroku i przechodzi do kolejnego.

 

Oczekiwanie na dojazd windy na górną platformę

Rysunek 3. Oczekiwanie na dojazd windy na górną platformę

 

Kolejny stan układu analizuje możliwość dokonania transferu elementu z windy na górną platformę, znajdującą się tuż obok. Jeżeli znajduje się tam poprzedni element, który z jakiegoś powodu nie został przekazany dalej, system sterowania windą oczekuje aż otrzyma pozwolenie na zrzut. Stanie się to w chwili, gdy element blokujący zwolni platformę zrzutową. W tym momencie uruchamiane są rolki zrzutowe, a układ przechodzi do kolejnego stanu.

 

Winda czeka na możliwość transferu (zrzutu)

Rysunek 4. Winda czeka na możliwość transferu (zrzutu)

 

Umiejscowienie czujnika zainstalowanego na windzie zostało wybrane w ten sposób, iż jego aktywacja lub dezaktywacja może sterować przepływem programu. W przypadku startu windy analizowaliśmy zbocze narastające, jednak zbocze opadające jest równie istotne. Sygnalizuje mianowicie, iż element poprawnie przeszedł transfer z windy i nie znajduje się już w obrębie jej platformy. W analizowanym momencie, rolki zrzutowe są zatrzymywane, a winda otrzymuje polecenie powrotu na dolny pokład.

 

Kończenie transferu elementu na platformę za windą

Rysunek 5. Kończenie transferu elementu na platformę za windą

 

W ostatnim ze stanów układ czeka na powrót windy do pozycji bazowej. O fakcie tym informuje zbocze narastające na odpowiednim czujniku indukcyjnym. W momencie jego aktywacji, zatrzymywany jest ruch platformy, uruchamiane są rolki dojazdowe, a układ wraca do stanu początkowego, czyli oczekiwania aż kolejny element znajdzie się na windzie. W ten sposób system sterowania się zapętla i cała sekwencja wykonywana jest od nowa.

 

Powrót windy do pozycji bazowej

Rysunek 6. Powrót windy do pozycji bazowej

 

Należy zwrócić uwagę na to, iż aktywacja odpowiednich sygnałów wpływa na pracę układu tylko i wyłącznie wtedy, gdy system znajduje się w stanie pozwalającym na zmianę. Przykładowo, pojawienie się sygnału lub jego zanik na czujniku sygnalizującym obecność elementu na platformie windy, nie będzie miała najmniejszego wpływu na pracę układu, jeśli układ nie będzie znajdował się w stanie analizującym daną zmianę. Jak zostało podkreślone wcześniej, jest to działanie zwiększające stabilność układu sterowania, gdyż zmniejsza się prawdopodobieństwo wystąpienia błędów spowodowanych zakłóceniami sygnałów pomiarowych.

 

STOSOWANIE UKŁADÓW SEKWENCYJNYCH

O wyborze implementowanej metody sterowania zawsze decyduje programista i to on musi rozstrzygnąć jaki konkretny rodzaj koncepcji sterowania procesem zastosować. W przypadku układów prostych, dozwolone jest wykorzystywanie algorytmu nieopartego o układy sekwencyjne, jednakże nawet w takich rozwiązaniach, zastosowanie sekwencji może ułatwić pracę programiście zarówno na etapie tworzenia kodu, jak i w czasie jego późniejszych modyfikacji.

autor:
Dominik Szewczyk
dszewczyk@introl.pl