Czym są podprocedury?
Podprocedury możemy najprościej porównać do podprogramów. Cytując Wikipedię: “Podprogram (inaczej funkcja lub procedura) – termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu”. Zatem podprocedury są to wydzielone części programu wykonujące daną funkcję/zadanie i mają na celu ułatwienie programiście stworzenia przejrzystego projektu.
Deklaracja podprocedury w programie
Na wstępie należy stwierdzić, gdzie się znajdujemy, czy w programie głównym, czy w podprocedurze. Oprócz wskazania na program główny, na drzewku projektu, dodatkową informacją dla nas, że znajdujemy się w programie głównym, jest pojedyncza gruba linia:
W odróżnieniu od programu głównego, podprogram – oprócz osobnej zakładki na drzewku programu – charakteryzuje się podwójną cienką linią pokazaną na poniższym obrazie:
Oczywiście możemy dodać więcej podprocedur niż 1. Wystarczy prawym przyciskiem myszy nacisnąć na pod-procedury na drzewku projektu i dodać nową zakładkę:
Przechodząc do zakładki podprocedury możemy zadeklarować jej rozpoczęcie korzystając z funkcji 65 – LBL i określając nazwę podprocedury, np. suma. Nazwa może zawierać od 1 do 6 znaków alfanumerycznych i nie może być zdublowana w programie:
Następnie musimy zadeklarować zakończenie naszej podprocedury. W tym celu wykorzystamy funkcję 68 – RTS:
Teraz pomiędzy funkcją LBL i RTS możemy zawrzeć nasz fragment kodu. W przykładzie zdefiniujemy podprocedurę, która będzie realizowała za pomocą funkcji 11 (+) dodawanie wartości z rejestru R0 do rejestru R1 i zapisywała w w rejestrze R2:
Deklaracja podprocedury jest gotowa, pozostaje pytanie, jak ją wywołać z programu głównego?
Wywoływanie podprocedury
Aby w programie głównym wywołać wykonanie podprocedury należy skorzystać w funkcji 67 – CALL:
Jeżeli wejście funkcji „EN” = 1 lub zmieni się z 0 na 1 (instrukcja P), PLC wywoła (wykona) podprocedurę o nazwie wskazanej w polu LBL. Po wywołaniu podprocedury, program zawarty w niej będzie wykonywany standardowo (linia po linii), jednakże w przypadku napotkania instrukcji RTS sterownik wróci do programu głównego do linii znajdującej się poniżej funkcji CALL.
Uwaga. Wszystkie podporcedury muszą kończyć się instrukcją „powrót z podprocedury – RTS”. W przeciwnym wypadku, może to skutkować błędem wykonania programu lub nastąpi zatrzymanie CPU.
Jeżeli program główny wywoła podprocedurę, to podporcedura ta również może wywołać inne podprocedury (tak zwane zagnieżdżone podprocedury) – aż do 5 poziomów (łącznie z procedurą obsługi przerwania). Przypominamy, że darmowy program WinProLadder można ściągnąć tutaj.
Zapraszamy do kolejnej części kursu.
Autor: Jarosław PawełekAbsolwent Akademii Górniczo – Hutniczej im. Stanisława Staszica w Krakowie na kierunku Automatyka i Robotyka ze specjalnością Automatyka i Metrologia. Przygodę z automatyką rozpoczynał w firmie od stanowiska praktykanta. Przechodząc kolejno na stanowisko Doradcy ds. technicznych oraz obecnie zajmując stanowisko Kierownika Działu Wsparcia Technicznego stara się zapewniać najlepsze wsparcie merytoryczne dla naszych klientów. Prywatnie miłośnik fotografii. |