Programowanie PLC od podstaw – kurs dla automatyków i elektryków odc.9 – Jak sterować wykonywaniem programu logicznego? Instrukcja skoku warunkowego
Sprawdź, do czego służy instrukcja skoku warunkowego i jakie bloki do sterowania programem występują sterownikach PLC.
W poprzedniej części kursu poznałeś bloki do konwersji danych i do przemieszczania rejestrów. W tym artykule dowiesz się czym jest instrukcja skoku warunkowego i do czego służy.
Sterowanie wykonywaniem programu w sterowniku jest możliwe dzięki instrukcjom, które pozwalają na wykonanie lub pominięcie wybranego fragmentu programu sterującego lub podprogramu. Da Ci to możliwość uruchamiania poszczególnych fragmentów kodu po zaistnieniu określonych warunków.
Jakie bloki sterowania wykonywaniem programu dostępne są w środowisku Cscape?
Element Label – pozwala na przypisanie nazwy do pozycji w drabince logicznej.
Nazwa ta może być następnie podana w instrukcji JUMP lub CALL w celu określenia miejsca, do którego należy przenieść wykonywanie programu.
W programie sterującym nie mogą wystąpić dwie takie same etykiety. Etykiety Label nie muszą posiadać odpowiadających im instrukcji skoku, ale każda instrukcja skoku musi posiadać odpowiadającą jej etykietę.
Blok funkcyjny JUMP – powoduje pominięcie fragmentu części logicznej programu sterującego.
Instrukcja może powodować przejście zarówno do przodu, jak i do tyłu w programie sterującym.
Wykonywanie programu zostanie wznowione od miejsca oznaczonego etykietą LABEL. Program nie powraca do miejsca wywołania instrukcji JUMP.
Uwaga: Po instrukcji JUMP nie można umieszczać żadnych bloków funkcyjnych!
Blok funkcyjny CALL – pozwala na wywołanie podprogramu.
W momencie doprowadzenia sygnału do bloku funkcyjnego CALL, wykonywanie programu zostaje przeniesione do miejsca wskazywanego przez etykietę LABEL przypisaną tej instrukcji.
Program w miejscu przeniesienia wykonywany jest do momentu napotkania instrukcji RETURN. Wtedy następuje powrót do szczebla umieszczonego za instrukcją CALL i wykonywana jest dalsza część umieszczonego tam programu.
Podprogramy można zagnieżdżać (wywoływać podprogram z poziomu innego podprogramu) aż do 8 poziomów.
Uwaga: Za instrukcją CALL nie można umieszczać żadnych bloków funkcyjnych.
Blok funkcyjny RETURN – kończy podprogram.
Po doprowadzeniu sygnału do tego bloku, następuje powrót do wykonywania części programu sterującego, umieszczonej po ostatnio wywoływanej instrukcji CALL.
Wykorzystanie instrukcji RETURN ma sens tylko w momencie wcześniejszego użycia w programie sterującym instrukcji CALL.
Uwaga: Po instrukcji RETURN nie można umieszczać żadnych bloków funkcyjnych.
Blok funkcyjny END_PROGRAM – informuje o końcu programu sterującego.
Po napotkaniu tego bloku funkcyjnego następuje natychmiastowe przerwanie wykonywania programu sterującego, następnie odczytywany jest stan wejść/wyjść, wykonywane są pozostałe czynności realizowane w każdym cyklu pracy jednostki centralnej, po czym następuje ponowne rozpoczęcie wykonywania programu sterującego.
Programowanie w akcji!
Ostatnia modyfikacja części logicznej Twojej aplikacji jest związana z wydzieleniem kodu programu odpowiedzialnego za serwis w osobnym podprogramie, którego uruchamianie uzależnisz od zmiennej serwisowanie.
Pozwoli to na uruchomienie serwisowania w dowolnym momencie wybranym przez operatora. Dzięki wykorzystaniu instrukcji CALL, po wykonaniu podprogramu odpowiedzialnego za tę operację, sterownik wróci do wykonywania programu głównego.
Krok 1: Jak stworzyć nowy podprogram bloku funkcyjnego CALL w środowisku Cscape?
W pierwszej kolejności stwórz nowy podprogram, jednak w sposób inny niż to do tej pory. W oknie Project Navigator, kliknij prawym przyciskiem myszy na Subroutine Modules i wybierz opcję New Enhanced Ladder Logic Subroutine. Nowo utworzony podprogram nazwij Serwisowanie.
Krok 2: Jak uzupełnić podprogram instrukcji CALL?
Kod, który umieścisz w tym miejscu, znajduje się obecnie w podprogramie Mieszanie_Grzanie. Przejdź do tego podprogramu, zaznacz szczeble odpowiadające za zliczanie uruchomień mieszalnika i grzałki, które powinny być oddzielone komentarzem.
Następnie wytnij te linijki i wklej w podprogramie Serwisowanie między wstawione szczeble. Jeśli pojawi się komunikat informujący o niewystarczającej ilości wolnego miejsca między szczeblami, dodaj kolejne wolne linijki, klikając prawym przyciskiem myszy na lewe białe numerowane pole i wybierz opcję Insert Blank Lines -> Insert 10 Lines:
Następnie wklej skopiowaną zawartość.
Krok 3: Jak wywołać instrukcję CALL w programie sterującym?
W podprogramie Mieszanie_Grzanie wywołaj instrukcję sterującą CALL, która pozwoli na wykonywanie podprogramu Serwisowanie w określonym przez operatora momencie.
W tym celu, poniżej stworzonej logiki podprogramu Mieszanie_Grzanie, dodaj w nowym szczeblu styk normalnie otwarty i przypisz do niego nową zmienną o adresie: %M00009 (m9) i nazwie: serwisowanie. Pamiętaj, że dodanie pojedynczej zmiennej możesz zrealizować w oknie konfiguracji styku.
Następnie, korzystając z górnego paska narzędziowego, wstaw blok instrukcji CALL.
Jeśli opcja ta nie jest dostępna z poziomu paska, włącz ją wybierając Menu -> View -> Toolbars -> Special Operations
Krok 4: Jak skonfigurować blok instrukcji CALL?
W celu konfiguracji dodanego bloku CALL, kliknij w niego dwukrotnie, a następnie z rozwijanej listy wybierz stworzony podprogram Serwisowanie.
Krok 5: Wgraj program do sterownika i przetestuj działanie programu
Wgraj program do sterownika, wprowadź sterownik w tryb RUN, uruchom opcję Debug, a następnie włącz opcję Data Watch i dodaj następujące zmienne:
Załączaj proces mieszania, zmieniając wartość zmiennej mieszanie na ON (lub 1). Następnie w zależności od ustawionej wartości zmiennej serwisowanie możesz obserwować zachowanie zmiennych Licznik_zalaczen_mieszadla i Licznik_zalaczen_grzalki.
Ukończyłaś/eś część kursu związaną z podstawowymi blokami funkcyjnymi wykorzystywanymi podczas tworzenia programów sterujących w języku drabinkowym.
Zdobyta wiedza i umiejętności pozwolą Ci na swobodne tworzenie przyszłych aplikacji i pracę z językiem LAD.
Zapraszam na kolejną część kursu – związaną z programowaniem paneli HMI. Dowiesz się, jak efektywnie tworzyć panele operatorskie z wykorzystaniem podstawowych elementów i funkcji. Już w kolejnym odcinku nauczysz się, jak poprawnie implementować przyciski, lampki i pola danych.
Chcesz nauczyć się programować sterowniki PLC?
Wszystkie odcinki kursu, bezpłatne oprogramowanie oraz dodatkowe materiały znajdziesz na stronie: https://www.astor.com.pl/poradnikautomatyka/kursy/programowania-plc-od-podstaw-dla-elektrykow-i-automatykow/
Sprawdź pozostałe bezpłatne kursy i poradniki na: https://www.astor.com.pl/poradnikautomatyka/