MODUL 4 · PROGRAMSKI ALATI U INDUSTRIJSKOJ ROBOTICI
Nastavna jedinica 4.7
Programski elementi i strukture
Niz naredaba gibanja dovoljan je za jedan komad na jednom mjestu. Čim se pojave dvije vrste obratka, prazna paleta ili slučaj u kojem predmeta nema, program treba nešto više: varijable u koje se sprema stanje, uvjete koji odlučuju i petlje koje ponavljaju. To su elementi zajednički svim robotskim jezicima.
- razlikovati tipove podataka u robotskom programu i odabrati prikladan
- koristiti aritmetičke, usporedne i logičke operatore
- napisati grananje i odabrati između uvjeta i višestrukog izbora
- napisati petlju s brojačem i petlju s uvjetom te izbjeći beskonačno ponavljanje
- izdvojiti ponavljajući dio programa u potprogram s parametrima
- primijeniti pravila imenovanja, komentiranja i uređivanja programa
Varijable i tipovi podataka
Varijabla je imenovano mjesto u kojem program čuva podatak. U robotskim jezicima uz opće tipove postoje i tipovi koji opisuju gibanje, i upravo oni razlikuju robotski jezik od općeg programskog jezika. Položaj, brzina, zaobljenje i alat nisu brojevi nego složeni podaci s više polja.
| Tip | Sadrži | Primjer uporabe |
|---|---|---|
| cijeli broj | cjelobrojnu vrijednost | brojač pozicija na paleti |
| realni broj | decimalnu vrijednost | izmjerena masa, izračunati pomak |
| logička vrijednost | istinu ili neistinu | je li paleta puna |
| znakovni niz | tekst | poruka operateru, oznaka serije |
| položaj | koordinate, orijentaciju i status | naučena ili izračunata točka |
| podaci o brzini | brzine gibanja i zakretanja | parametar naredbe gibanja |
| podaci o alatu | radnu točku, masu i težište | parametar naredbe gibanja |
Varijable se razlikuju i po dosegu. Lokalna varijabla vidljiva je samo unutar potprograma u kojem je opisana i nestaje po izlasku. Globalna je vidljiva cijelom programu i zadržava vrijednost. Brojač pozicija na paleti mora biti globalan i, štoviše, mora preživjeti isključenje napajanja — inače se nakon nestanka struje slaganje nastavlja od prve pozicije.
Operatori, grananje i petlje
Operatori se dijele na aritmetičke, koji računaju, usporedne, koji daju istinu ili neistinu, i logičke, koji povezuju uvjete. Uz njih ide i cjelobrojno dijeljenje s ostatkom, koje u paletizaciji ima posebnu ulogu: iz rednog broja pozicije daje redak i stupac.
Grananje odlučuje hoće li se dio programa izvesti. Za dva ishoda koristi se uvjet s granom u suprotnom slučaju, a za više njih višestruki izbor, koji je pregledniji od niza ugniježđenih uvjeta. Petlja ponavlja dio programa: petlja s brojačem kada je broj ponavljanja unaprijed poznat, petlja s uvjetom kada ovisi o stanju u ćeliji.
! Slaganje sloja: 4 polozaja po 3 reda
FOR red FROM 0 TO 3 DO
FOR stupac FROM 0 TO 2 DO
Uzmi;
Odlozi red, stupac, sloj;
broj := broj + 1;
ENDFOR
ENDFOR
IF broj >= 48 THEN
SetDO doPaletaPuna, 1;
TPWrite "Paleta je puna, zamijenite je.";
ENDIFPažnja
Petlja s uvjetom koja čeka signal mora imati nadzor vremena. Ponavljanje koje čeka potvrdu stroja bez vremenske granice zaustavlja ćeliju zauvijek i ne daje nikakvu poruku o tome zašto stoji.
Za zadani broj redaka, stupaca i slojeva računa se ukupan broj prolaza unutarnje petlje te trajanje ciklusa uz zadano vrijeme jednog prolaza.
Potprogrami i parametri
Kada se isti niz naredaba pojavi na dva mjesta, izdvaja se u potprogram. Dobitak je trostruk: program postaje kraći, izmjena se radi na jednom mjestu, a glavni program postaje čitljiv jer se u njemu vide koraci, a ne pojedinosti. U programu rukovanja glavni dio tada izgleda kao popis: uzmi, odloži, provjeri, javi.
Parametri čine potprogram općenitim. Umjesto četiriju gotovo istih potprograma za četiri sloja palete, piše se jedan koji prima broj sloja. Parametar može biti broj, logička vrijednost ili cijeli položaj. Vrijedi pravilo da potprogram s više od četiri ili pet parametara obično treba razložiti na dva manja.
PROC Odlozi(num red, num stupac, num sloj)
VAR robtarget pCilj;
pCilj := pPaletaNul;
pCilj.trans.x := pCilj.trans.x + red * 300;
pCilj.trans.y := pCilj.trans.y + stupac * 260;
pCilj.trans.z := pCilj.trans.z + sloj * 25;
MoveJ Offs(pCilj, 0, 0, 200), v800, z30, tPrihvat \WObj := wobjPaleta;
MoveL pCilj, v200, fine, tPrihvat \WObj := wobjPaleta;
SetDO doPrihvatZatvori, 0;
WaitTime 0.3;
MoveL Offs(pCilj, 0, 0, 200), v400, z30, tPrihvat \WObj := wobjPaleta;
ENDPROCKomentari i uredno pisanje
Program robota čita netko drugi, i to obično u smjeni u kojoj nešto ne radi. Zato uredno pisanje nije stvar ukusa nego vremena otklanjanja kvara. Tri pravila pokrivaju najveći dio koristi: govorna imena, uvlake i komentari koji objašnjavaju razlog, a ne radnju.
| Loše | Dobro | Razlog |
|---|---|---|
| p1, p2, p3 | pUzmiNaprava, pOdloziPaleta, pSigurno | iz imena se vidi svrha točke |
| MoveL p7 ... ! idi u p7 | ! spust je spor zbog zracnosti naprave | komentar objašnjava razlog, a ne ono što se već vidi |
| sve naredbe uz lijevi rub | uvlaka unutar petlje i uvjeta | vidi se dokle seže grana |
| jedan program od 400 redaka | glavni program i potprogrami | kvar se traži u jednom potprogramu |
| brojevi upisani u naredbu | imenovane konstante | izmjena mjere na jednom mjestu |
Uz to ide i zaglavlje programa: naziv, datum, autor, broj inačice i kratak opis onoga što program radi. To zaglavlje postaje dio dokumentacije ćelije i jedini je pouzdan način da se u kontroleru s petnaest programa pronađe onaj koji se doista koristi.
Obrada posebnih slučajeva
Program koji obrađuje samo uredan slučaj radi dok sve ide po redu. Robotska ćelija, međutim, gotovo sve svoje vrijeme provodi u uobičajenim, ali neurednim situacijama: predmeta nema, stroj nije gotov, paleta je puna, netko je otvorio vrata.
Zato svaki program dobiva tri vrste zaštite. Provjera prije radnje pita je li ispunjen uvjet za sljedeći korak. Nadzor vremena ograničava svako čekanje i prijavljuje prekoračenje. Obrada pogreške hvata neočekivan događaj i vodi robota u sigurnosni položaj umjesto da program prekine na pola putanje. Ta se tri elementa pojavljuju u svim primjerima u nastavku modula.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Varijabla | Imenovano mjesto u kojem program čuva podatak tijekom izvođenja. |
| Doseg varijable | Područje programa u kojem je varijabla vidljiva i u kojem zadržava vrijednost. |
| Grananje | Struktura koja prema uvjetu odabire koji će se dio programa izvesti. |
| Petlja s brojačem | Ponavljanje unaprijed poznatog broja puta. |
| Potprogram | Imenovani dio programa koji se poziva s više mjesta, po potrebi s parametrima. |
| Nadzor vremena | Ograničenje trajanja čekanja uz prijavu prekoračenja. |
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
Zašto brojač pozicija na paleti mora biti trajna varijabla?
Bez trajne vrijednosti brojač se nakon ponovnog uključenja vraća na nulu i slaganje kreće ispočetka.
Pitanje 2 od 3
Kada se ponavljajući niz naredaba izdvaja u potprogram?
Izdvajanjem se izmjena radi na jednom mjestu, a glavni program postaje čitljiv.
Pitanje 3 od 3
Petlja koja čeka signal stroja mora imati:
Bez vremenske granice ćelija može stajati neograničeno bez ikakve poruke o uzroku.
Odgovoreno 0 od 3.