Fatek bez tajemnic cz. VI – Podprocedury

Opublikowano

3 lipca 2018

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ę:

deklaracja podprocedury

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:

deklaracja podprocedury

Następnie musimy zadeklarować zakończenie naszej podprocedury. W tym celu wykorzystamy funkcję 68 – RTS:

deklaracja podprocedury

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

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:wywoływanie podprocedury

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.

wywoływanie podprocedury

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łek

Absolwent 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.