Jeżeli jeszcze nie wiesz co to są podprogramy w robotach Wittmann to ten wpis wszystko Ci wyjaśni. A jeżeli już z nich korzystasz to również zachęcam do lektury, być może dowiesz się czegoś więcej, czegoś co pozwoli Ci jeszcze przejrzyściej programować 🙂
Zanim jednak omówimy sobie jak wykorzystać podprogramy pisząc program przebiegu dla robota Wittmann powiem kilka słów na temat programowania strukturalnego.
Dawno temu kiedy powstawały pierwsze programy nikt nie zwracał uwagi na jego czytelność. Dlaczego? Bo programy były bardzo krótkie, mieściły się na jednej kartce A4. Pisano je wtedy przy wykorzystaniu tzw. „spaghetti code”. Aktualnie wraz z rozwojem programowania, kod jest coraz dłuższy, a jego interpretacja coraz trudniejsza. Programowanie strukturalne to była pierwsza próba nadania struktury programom, tak, żeby stały się one czytelne m.in. dzięki zastosowaniu podziału na funkcje, bloki i podprogramy.
Czy warto stosować komentarze w programowaniu?
Wykorzystując podprogramy podczas pisania kodu dla robotów Wittmann czynisz program czytelnym i w przyszłości będziesz go mógł łatwiej rozbudować. Jest jeszcze jedna istotna rzecz, o której musisz pamiętać – komentarze. Tak, są one bardzo istotne w każdym programie przebiegu. Dzięki nim jeszcze lepiej jest zrozumieć sposób działania danego programu. Możesz je pisać jako oddzielne wiersze w swoim programie lub możesz zastosować programowanie samo komentujące się 🙂 Co to oznacza? Już wyjaśniam. Programowanie samo komentujące się to nic innego jak logiczne i łatwe w interpretacji nadawanie nazw wierszom, blokom, podprogramom lub zmiennym, które od razu będą opisywać funkcję jaką pełnią. Tyle i aż tyle 🙂 Może przytoczę przykład, żebyśmy wiedzieli co mam na myśli. Załóżmy, że w naszym programie używamy zmiennej do oznaczenia sztuki wadliwej. Jeżeli użyjesz zmiennej podczas programowania to będzie ona miała domyślną nazwę:
- „variable 001”
Już pewnie się domyślasz, że po napotkaniu takiej zmiennej w programie nie będzie łatwo zrozumieć za co ona odpowiada. A teraz nadajmy tej samej zmiennej nazwę:
- „część wadliwa”
Jeżeli spotkasz tak nazwaną zmienną w programie to jej interpretacja będzie zdecydowanie łatwiejsza. I wcale nie użyliśmy tu dodatkowego komentarza w programie.
Jak widzisz jest to ważny czynnik, który nada Twojemu programowi lekkości i czytelności i na tym nam powinno zależeć.
Podprogramy Wittmann CALL – SUBR – RET
Program przebiegu w robotach austriackiego producenta wykonywany jest zasadniczo wiersz po wierszu począwszy od wiersza 0001, z zachowaniem rosnącej kolejności. Jeżeli jednak chcesz reagować na różne zdarzenia podczas pracy jesteś zmuszony do zmiany tej kolejności.
Przy pomocy poleceń Call – Subr – Ret, które masz dostępne w menu, możesz utworzyć strukturę programu przebiegu opartą na podprogramach i wywoływać te podprogramy warunkowo lub bezwarunkowo.
Wywoływania podprogramów pozwalają rozgałęzić program na szereg różnych instrukcji. Jeżeli robot wykona dany podprogram, wraca ponownie do wiersza, który znajduje się po powyższym wywołaniu. Dzięki temu masz możliwość wielokrotnego wywoływania danej instrukcji, która może być zaprogramowana tylko jeden raz. To stanowi duże uproszczenie i pozwala łatwiej czytać program.
Podczas programowania programu przebiegu mamy dostępne trzy podstawowe polecenia:
- Polecenie CALL – za pomocą polecenia „CALL nazwa” wywołujesz podprogram „nazwa”. Robot po powyższym poleceniu rozpoczyna wykonywanie poleceń w podprogramie.
- Polecenie SUBR (SUBROUTINE) – przez polecenie „SUBR nazwa” definiujesz początek podprogramu.
- Polecenie RETURN – jeżeli chcesz zakończyć podprogram to musisz skorzystać z komendy RET, która przenosi Cię ponownie do programu głównego do wiersza znajdującego się po poleceniu CALL.
Teraz zwróć uwagę na „Rysunek 1”. Tu właśnie widzisz przykład programowania strukturalnego.
Cała logika naszego programu zawiera się w pierwszych pięciu wierszach.
- CALL INIT to podprogram, który będzie wykonany raz, podczas uruchomienia robota.
- START: to tzw. etykieta do której będziemy zawsze wracać po zakończeniu programu.
- CALL REMOVAL to podprogram, który będzie odpowiadał za pobranie wypraski z formy wtryskowej.
- CALL PLACE to instrukcje odłożenia wypraski na taśmociąg.
- JMP START powoduje skok do etykiety START, którą wyżej opisałem.
Podprogramy – wytyczne
Teraz przedstawię ci kilka wytycznych, których powinieneś przestrzegać podczas pisania programu aby zagwarantować możliwość ich realizowania:
- Podprogramy muszą być zakończone poleceniem RET.
- Nie opuszczaj podprogramu przy wykorzystaniu polecenia JUMP, (jeżeli „wyskakiwanie” z podprogramu będzie występowało okazyjnie to nie będzie problemu, ale jeżeli w każdym przebiegu będzie następowało takie wyjście to możesz spodziewać się cyklicznego błędu o zbyt częstej liczbie opuszczenia podprogramu przy pomocy funkcji JUMP).
- Podprogram standardowy (Routine) nigdy nie może być wykonywany bez wywołania poleceniem CALL.
Poniżej możesz zapoznać się z przykładowym programem który napisałem dla formy typu tandem. Programowanie strukturalne pomaga mi przy późniejszej korekcie programu oraz zmniejsza jego wielkość ułatwiając analizę i zrozumienie.
Zdecydowanie zachęcam Cię do pisania programów przebiegu dla robotów w przedstawiony przeze mnie sposób. W przeciwieństwie do „spaghetti code” możemy wielokrotnie wracać do danego podprogramu.
Przy kolejnych formach czy też nowych projektach będzie Ci łatwiej wykorzystać pewne bloki co istotnie przyspieszy uruchomienie produkcji.
Zachęcam Cię także do zapoznania się z wpisami na temat skoków i instrukcji warunkowych oraz EUROMAP 67, gdzie uzyskasz dodatkowe informacje w tematyce programowania robotów.
A jeżeli chcesz przeszkolić siebie, swoich pracowników lub współpracowników to zapoznaj się z moją ofertą dotyczącą programowania robotów Wittmann. Podczas takiego kursu nauczysz się wykorzystywać podprogramy i dużo więcej 🙂
Na zakończenie chciałbym raz jeszcze przypomnieć jak ważne jest wykorzystanie podprogramów w kodzie. Formy wtryskowe, które uruchamiasz na wtryskarce są coraz bardziej złożone. Niewątpliwe wymusza to na Tobie pisanie jeszcze bardziej złożonych programów odbioru.
Pingback: Prędkości i przyspieszenia robotów Wittmann: Kluczowe czynniki efektywności i precyzji - ASCONS