MODUL 4 · PROGRAMSKI ALATI U INDUSTRIJSKOJ ROBOTICI
Nastavna jedinica 4.13
Osnovne naredbe proceduralnog robotskog programskog jezika
Robotski jezici razlikuju se po nazivima i pravopisu, ali ne po sadržaju. U svakom postoje naredbe gibanja, čekanja, rada s ulazima i izlazima, pridruživanja, uvjeta, petlji, poziva potprograma i obrade pogrešaka. Tko ih razumije u jednom jeziku, u drugom traži samo drugo ime.
- razvrstati naredbe robotskog jezika u skupine prema zadaći
- objasniti parametre naredbe gibanja i njihovo djelovanje
- koristiti naredbe čekanja, rada sa signalima i pridruživanja
- napisati uvjet, petlju i poziv potprograma u proceduralnom robotskom jeziku
- objasniti ulogu obrade pogrešaka u programu ćelije
- prepoznati istovjetne naredbe u RAPID-u, KRL-u i FANUC TP-u
Skupine naredaba
Sve naredbe proceduralnog robotskog jezika mogu se svrstati u sedam skupina. Podjela je korisna jer olakšava snalaženje u nepoznatom jeziku: pita se koja skupina je potrebna, pa se u priručniku traži njezin naziv.
| Skupina | Zadaća | Primjeri uporabe |
|---|---|---|
| Gibanje | vodi alat od točke do točke | prilaz, zahvat, odlaganje, praćenje ruba |
| Čekanje | zaustavlja izvođenje do uvjeta ili isteka vremena | čekanje stroja, čekanje prihvatnice |
| Ulazi i izlazi | čita i postavlja signale | zatvaranje prihvatnice, zahtjev stroju |
| Pridruživanje | upisuje vrijednost u varijablu | brojač pozicija, izračunata točka |
| Uvjeti | odabire granu prema stanju | ima li predmeta, je li paleta puna |
| Petlje | ponavlja dio programa | slaganje sloja, ponovni pokušaj |
| Potprogrami i pogreške | dijeli program i hvata neočekivano | izmjena komada, obrada isteka vremena |
Uz njih idu i naredbe za rad s privjeskom — ispis poruke i upit operateru — koje se rijetko spominju, a bez kojih se ćelija ne može voditi. Poruka koja kaže zašto robot stoji vrijedi više od svakog dijagnostičkog alata.
Gibanje i njegovi parametri
Naredba gibanja u svakom jeziku ima četiri podatka: odredište, brzinu, točnost odnosno zaobljenje i alat. Uz njih se često navodi i korisnički sustav u kojem je odredište izraženo. Razlike među jezicima svode se na redoslijed i na način zapisa, ne na sadržaj.
! RAPID (ABB)
MoveL pUzmi, v200, fine, tPrihvat \WObj := wobjNaprava;
; KRL (KUKA)
LIN pUzmi C_DIS
/ TP (FANUC)
L P[1] 200mm/sec FINEU sva tri slučaja radi se o pravocrtnom gibanju do naučene točke uz zadanu brzinu i zaustavljanje u točki. Isto vrijedi i za gibanje po zglobovima i za kružno gibanje. Tko zna zašto se bira jedno ili drugo, jezik uči u jedno poslijepodne.
Procjena duljine programa iz broja točaka, udjela naredaba koje nisu gibanja i broja potprograma. Pomaže procijeniti hoće li program stati u kontroler i koliko će ga biti lako održavati.
Signali, čekanje i pridruživanje
Rad sa signalima ima tri osnovne radnje: postavljanje izlaza, čitanje ulaza i čekanje na stanje ulaza. Čekanje uvijek dobiva najdulje dopušteno vrijeme i zastavicu koja kaže je li se ono isteklo, jer je to jedini način da program razlikuje ispravan tijek od zastoja.
Pridruživanje upisuje vrijednost u varijablu. U robotskim jezicima ono obuhvaća i složene tipove: cijela se točka može pridružiti drugoj, a zatim joj se promijeniti samo jedno polje. Upravo se na tome temelji izračun pozicija paletizacije iz jedinice 4.9.
Zapamtite
Naredba čekanja bez vremenske granice jedina je naredba koja može zaustaviti ćeliju zauvijek, a da pritom ne prijavi nikakvu pogrešku. U programu koji ide u pogon ne smije je biti.
Usporedna tablica naziva
Sljedeća tablica povezuje iste zadaće u trima najraširenijim jezicima. Nazivi se razlikuju, ali se skupine podudaraju u potpunosti. Tablica je korisna pri prelasku s jednog sustava na drugi i pri čitanju tuđeg programa.
| Zadaća | RAPID (ABB) | KRL (KUKA) | TP (FANUC) |
|---|---|---|---|
| Gibanje po zglobovima | MoveJ | PTP | J P[n] |
| Pravocrtno gibanje | MoveL | LIN | L P[n] |
| Kružno gibanje | MoveC | CIRC | C P[n] P[m] |
| Postavljanje izlaza | SetDO | $OUT[n] = TRUE | DO[n] = ON |
| Čitanje ulaza | DInput | $IN[n] | DI[n] |
| Čekanje na ulaz | WaitDI | WAIT FOR $IN[n] | WAIT DI[n] = ON |
| Čekanje vremena | WaitTime | WAIT SEC | WAIT sek |
| Pridruživanje | := | = | R[n] = ... |
| Uvjet | IF ... THEN ... ENDIF | IF ... THEN ... ENDIF | IF ... , JMP LBL[n] |
| Petlja s brojačem | FOR ... ENDFOR | FOR ... ENDFOR | LBL i JMP s brojačem |
| Petlja s uvjetom | WHILE ... ENDWHILE | WHILE ... ENDWHILE | LBL i uvjetni JMP |
| Poziv potprograma | ime ili ProcCall | ime() | CALL ime |
| Ispis poruke | TPWrite | MsgNotify | MESSAGE |
| Obrada pogreške | ERROR grana u PROC | obrada preko prekida | praćenje preko uvjeta i oznaka |
Obrada pogrešaka i dobra praksa
Obrada pogrešaka je dio programa koji se izvodi kada se dogodi nešto neočekivano: istek čekanja, izgubljen predmet, nedostižna točka. Bez nje program prekida izvođenje na mjestu na kojem se pogreška dogodila, a to je gotovo uvijek loše mjesto — alat u stroju, komad u ruci, vrata otvorena.
Dobro napisana obrada pogreške ima tri koraka: osigurati stanje (zadržati komad ili ga odložiti na sigurno), javiti što se dogodilo porukom koju operater razumije, i vratiti robota u sigurnosni položaj. Tek potom program staje ili se vraća u čekanje.
Primjer
Robot ćelije ZR-1 čeka dozvolu ulaska u stroj. Nakon dvadeset sekundi dozvola ne stiže. Obrada pogreške zadržava komad u prihvatnici, ispisuje poruku o stroju koji ne otvara vrata, vodi robota u sigurnosni položaj i ostaje u čekanju. Ćelija stoji, ali stoji uredno i s poznatim uzrokom.
Na kraju vrijedi i najjednostavnije pravilo cijeloga modula: program se piše tako da ga može pročitati netko drugi, i tako da ćelija u svakom zamislivom trenutku prekida ostane u stanju iz kojega se može nastaviti. Sve ostalo su pojedinosti koje se nauče uz priručnik.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Naredba gibanja | Naredba koja vodi alat do zadane točke uz zadanu brzinu, točnost i alat. |
| Naredba čekanja | Naredba koja zaustavlja izvođenje dok se ne ispuni uvjet ili ne istekne vrijeme. |
| Postavljanje izlaza | Naredba kojom program mijenja stanje digitalnog izlaza. |
| Pridruživanje | Upis vrijednosti u varijablu, uključujući složene tipove poput položaja. |
| Poziv potprograma | Naredba kojom se izvođenje prenosi u imenovani dio programa i vraća natrag. |
| Obrada pogreške | Dio programa koji se izvodi pri neočekivanom događaju i vodi ćeliju u sigurno stanje. |
Provjeri se
Kratka provjera prije prelaska na sljedeću jedinicu. Odgovor se potvrđuje klikom, a obrazloženje se prikazuje odmah.
Pitanje 1 od 3
Koja se naredba u RAPID-u, KRL-u i TP-u redom koristi za pravocrtno gibanje?
Pravocrtnom gibanju odgovaraju MoveL, LIN i L, svaki u svom jeziku.
Pitanje 2 od 3
Što mora sadržavati dobro napisana obrada pogreške?
Bez osiguranja stanja i povratka robot ostaje na lošem mjestu, najčešće u stroju s komadom u ruci.
Pitanje 3 od 3
Koja je naredba jedina sposobna zaustaviti ćeliju zauvijek bez prijave pogreške?
Čekanje bez zadanog najduljeg vremena traje neograničeno i ne javlja nikakvu pogrešku.
Odgovoreno 0 od 3.