Podczas programowania robotów napotkamy się na instrukcje warunkowe IF oraz skoki warunkowe. W tym tekście przedstawię gdzie i jak należy ich używać.
Na początek przypomnę wcześniej prezentowany algorytm naszego przyszłego programu z wcześniejszego wpisu o algorytmach.
Aby stworzyć działający program nasze bloki i linie musimy zamienić na zestaw instrukcji zrozumiałych dla robota.
Instrukcje warunkowe
- IF – jeżeli
- ELSE – inaczej, w przeciwnym razie
- ELSEIF – stosujemy jeżeli warunek posiada więcej niż dwa rozwiązania (odpowiednik CASE)
- ENDIF – koniec instrukcji warunkowej
Instrukcja warunkowa IF to nic innego jak pytanie jeżeli. W naszym przypadku pytamy o to czy detal jest wybrakowany czy dobry. Informacje tą otrzymujemy ze złącza euromap 67 opisywanego wcześniej. Należy zwrócić uwagę że wtryskarka na styku ZA5 za pomocą sygnału wysokiego informuje nas o detalu wybrakowanym, nas interesuje detal dobry, czyli sytuacja w której na styku nie ma sygnału . Nasze pytanie brzmi zatem: czy detal nie jest wybrakowany? W programie zapiszemy to jako: IF DETAL WYBRAKOWANY=0
W przypadku spełnienia warunku zostaną wykonane instrukcje znajdujące się pod zapytaniem IF
Jeżeli warunek nie został spełniony program przechodzi do instrukcji umieszczonych pod poleceniem ELSE.
Wprowadzenie do programu instrukcji warunkowych zawsze powoduje jego rozgałęzienie tak jak to widać na powyższym algorytmie. Aby zakończyć instrukcje warunkową IF i połączyć rozgałęzienie musimy użyć polecenia ENDIF.
IF DETAL WYBRAKOWANY=0 * tutaj wprowadzamy instrukcje * odpowiedzialne za odłożenie * dobrego detalu * i uruchomienie taśmociągu ELSE * tutaj wprowadzamy instrukcje * odpowiedzialne za odłożenie * złego detalu ENDIF
Jeśli zachodzi sytuacja w której program ma nic nie robić jeżeli warunek jest nie spełniony wtedy za poleceniem ELSE nie ma żadnych instrukcji. Na schemacie blokowym była by strzałka bezpośrednio do polecenia ENDIF. W takim przypadku stosujemy zapis bez polecenia ELSE. Poniżej przykład zastosowania dla programu paletyzacji.
IF PALETA PELNA=1 * przewiń taśmociąg * zresetuj licznik paletowania ENDIF
Skoki
Skoki służą do przemieszczania się wewnątrz programu, najczęściej stosuje się je do zapętlenia programu i stworzenia w ten sposób pętli głównej która powtarzana jest co cykl maszyny. Aby można użyć polecenia JMP wcześniej trzeba zdefiniować miejsce w programie do jakiego chcemy się przenieść, miejsce to nazwane jest etykietą. Etykiete umieszczamy w programie nad linią do której chcemy się przemieścić i nadajemy jej nazwę sugerującą funkcje jaką dany skok pełni. I tak dla skoku zapętlającego program sugeruję etykietę CYKL: lub START:
- ETYKIETA – znacznik miejsca w programie
- JMP – skok do etykiety
- JMP z warunkiem -skok warunkowy
Jak widać stosowanie instrukcji warunkowych oraz skoków jest niezbędne do stworzenia programu który będzie elastyczny i zoptymalizowany pod kątem potrzeb produkcyjnych oraz przyjazny dla osoby obsługującej robota. Z łatwością możemy dodać takie funkcje jak odkładnie detalu do kontroli jakości, wprowadzanie cykli rozruchowych czy też ręcznego sortowania detali.
Pingback: Podprogramy Wittmann - Ascons . Programowanie robotów
Pingback: Podprogramy Wittmann – ASCONS