Preskoči na sadržaj
FORTRONIQ

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.

Moći ću:
  • 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.

TipSadržiPrimjer uporabe
cijeli brojcjelobrojnu vrijednostbrojač pozicija na paleti
realni brojdecimalnu vrijednostizmjerena masa, izračunati pomak
logička vrijednostistinu ili neistinuje li paleta puna
znakovni niztekstporuka operateru, oznaka serije
položajkoordinate, orijentaciju i statusnaučena ili izračunata točka
podaci o brzinibrzine gibanja i zakretanjaparametar naredbe gibanja
podaci o alaturadnu točku, masu i težišteparametar 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.";
ENDIF

Paž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.

Koliko prolaza ima ugniježđena petlja?Računski prikaz

Za zadani broj redaka, stupaca i slojeva računa se ukupan broj prolaza unutarnje petlje te trajanje ciklusa uz zadano vrijeme jednog prolaza.

Ukupno prolaza—
Po jednom sloju—
Trajanje ukupno—

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;
ENDPROC

Komentari 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šeDobroRazlog
p1, p2, p3pUzmiNaprava, pOdloziPaleta, pSigurnoiz imena se vidi svrha točke
MoveL p7 ... ! idi u p7! spust je spor zbog zracnosti napravekomentar objašnjava razlog, a ne ono što se već vidi
sve naredbe uz lijevi rubuvlaka unutar petlje i uvjetavidi se dokle seže grana
jedan program od 400 redakaglavni program i potprogramikvar se traži u jednom potprogramu
brojevi upisani u naredbuimenovane konstanteizmjena mjere na jednom mjestu
Prije uređivanja PROC main() MoveJ p1,v1000,z50,t1; MoveL p2,v200,fine,t1; SetDO do1,1; MoveL p3,v200,fine,t1; MoveJ p4,v800,z50,t1; SetDO do1,0; MoveJ p1,v1000,z50,t1; ENDPROC sve u jednoj cjelini Poslije uređivanja PROC main() UzmiIzNaprave; OdloziNaPaletu; MoveJ pSigurno, v1000, z50, tPrihvat; ENDPROC PROC UzmiIzNaprave() MoveJ pIznadNaprave; MoveL pUzmi, v200; ENDPROC Govorna imena, uvlake i potprogrami skraćuju traženje kvara.
Slika 4.7 — Isti program prije i poslije uređivanja: govorna imena, uvlake i izdvojeni potprogrami.

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

PojamZnačenje
VarijablaImenovano mjesto u kojem program čuva podatak tijekom izvođenja.
Doseg varijablePodručje programa u kojem je varijabla vidljiva i u kojem zadržava vrijednost.
GrananjeStruktura koja prema uvjetu odabire koji će se dio programa izvesti.
Petlja s brojačemPonavljanje unaprijed poznatog broja puta.
PotprogramImenovani dio programa koji se poziva s više mjesta, po potrebi s parametrima.
Nadzor vremenaOgranič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.