Programiranje FANUC robota Education cell 6 rotacionih zglobova
Programiranje FANUC robota
Education cell • 6 rotacionih zglobova
Controller Three-Mode Switch • Upravlja robotom • U njemu se nalazi hardver i softver • Ovo se može zvaki kao „mozak“ robota USB Port Cycle start button Emergency stop Button Power switch
Teach Pendant • Koristi se za upravljanje i programiranje robota • Ovo je interfejs između robota i korisnika
Teach Pendant 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Teach Pendant Enable Menu key – meni ekrana Select key – lista programa Data key – lista registara Function key – function meni Cursor keys – pomeranje kursora Step key – uključenje/isključenje step moda Hold key Enter key – ulaz u izabranu tačku Forward key – prosleđivanje programa u sledeći red 11. Coordinate key – promena koordinatnog sistema 12. Override key – promena override-a 13. Jog keys - pomeranje robota u teach modu
Robot • Mehanička jedinica • Sastoji se od više segmenata • Ovi su povezani preko zglobova • Servo motori • Mogu se pomerati nezavisno jedan od drugog • Pomeranje vrši kontroler • U našem slučaju imamo 6 rotacionih zglobova
Jogging (pomeranje robota) • Three-Mode Switch mora da bude u T 1 ili T 2 stanju (T 1 je bezbednije) • Teach Pendant Enable • Deadman switch • Shift + jogging button • Koordinatski sistem može se menjati • Joint coordinate system – pomeranje po zglobovima • Ostali koordinatski sistemi – pomeranje po x, y i z osama / rotacija oko osa
Jogging • U slučaju joint pomeranja možemo menjati položaj pojedinih zglobova (broj zglobova je naveden na dugmadima) • Kod ostalih koordinatskih sistema pomeramo se po x, y i z osama (prva 3 dugmeta), ili oko ovih osa pomoćom sledećih 3 dugmeta
Izabranje programa • Select dugme • Izabranje programa iz liste • Enter dugme • Izabrani program će se prikazati na ekranu Teach. Pendant-a
Pokretanje programa • Eliminisanje prepreka u prostoru kretanja robota • Zatvaranje vrata • Three-Mode Switch - auto mod • Teach. Pendant - disable • Cycle start dugme • AAA_Demo… • Program će pitati da li su komadi na mestu • Posle provere F 2
Podešavanje TCP-a • Tool Center Point • Važno je podesiti zbog lakšeg jogging-a • Utiče i na pokretanje tokom rada programa (brzina ne bi bila linearna, drugačija je brzina na kraju robota)
Podešavanje TCP-a • Linearno pokretanje u slučaju podešenog i ne podešenog TCPa
Podešavanje TCP-a • TCP je jedna relativna pozicija u odnosu na kraj poslednjeg zgloba • Ovo je "radna tačka" end-effektora robota • Posebno je važno precizno podesiti • Snimanje tačaka (jogging tasteri se mogu koristiti za rotaciju oko TCP-a) • Program (softver kontoliše položaj i kretanje TCP-a)
Podešavanje TCP-a
Podešavanje TCP-a • Metoda sa 3 tačaka (dodir tačke iz 3 različita pravca i ugla)
Podešavanje TCP-a • Metoda sa 6 tačaka • Metoda sa 3 tačaka se onda može koristiti kada je tool ravan i u istoj liniji je sa poklopcem J 6
Podešavanje TCP-a • Metoda sa 6 tačaka • Prve 3 tačke – metoda sa 3 tačaka • Zatim treba pomerati u pravcima u kojima želimo ose
Podešavanje TCP-a • Direct List Method • Svaku poziciju i orijentaciju treba uneti manualno • Onda se može koristiti kada znamo svaki parametar alata
Podešavanje TCP-a
Jednostavno programiranje • Pod industrijskim okolnostima želimo da naš robot radi neki posao neprestano • Pravimo jedan program i robot uvek radi to • Ovo čini rad jako efektivnim
Jednostavno programiranje • Three-Mode Switch - T 1 • Teach Pendant – Enable • Select button • Create (F 2) • Ime programa • Enter
Jednostavno programiranje • Pomerimo robot u neku poziciju • Za snimanje tačke imamo dve opcije: • shift+Point (joint pokretanje) • Point (pita će kakvo pokretanje želimo)
Jednostavno programiranje • Pomerimo robot u sledeću tačku • Shift+Point • Ovo će rezultirati jedan jednostavan program koji se već može i testirati u ovom obliku
Jednostavno programiranje • Override stavimo na 10% (ako se desi nešto šta ne očekujemo)
Jednostavno programiranje • Podesimo na Step mod koristeći taster Step (ovo je naročito važno kod većih programa) • Program će raditi korak po korak, i samo onda kad kažemo da nastavi
Jednostavno programiranje • Deadman Switch + Shift + FWD (Forward) • Realizovaće trenutnu liniju • Posle testiranja možemo povećati brzinu • Sa Step tasterom možemo podesiti da pokrene ceo program
Jednostavno programiranje • Promena pokreta • Default: joint pokretanje • Kurzor kod tipa pokretanja - Type taster • Možemo birati od 4 različitih pokreta • Podesimo sledeće: L (linear) • Speed – Type taster • Podesimo brzinu (npr. na 100 mm/s)
Jednostavno programiranje • Komentari: • • • Nova linija F 6 (next) F 5 (EDCMD) Insert Dodajmo 1 red F 1 (INST) Miscellaneous -> Remark Enter Zatvaranje sa Enter tasterom
User Frame • Pravougaoni koordinatni system (Cartesian coordinate system) • Može se dati u odnosu na koordinatni sistem robota • Koristimo ga zbog lakšeg programiranja • U našem slučaju nije tako važan, jer ravna table za cilindre je isti kao ravna koordinatnog sistema robota • Ali rupe nisu na jednoj pravi, pa pomeranje između rupa nije tako jednostavno u koordinatnom sistema robota. Možemo definisati User Frame koji je različiti od koordinatnog sistema robota i prilagođen je rupama • Najkorisniji je u slučajevima kad je radni prostor u nagnutoj ravni ili je robot postavljen nagnuto
User Frame • Potrebno je dati 3 tačke: • Koordinatni početak • 1 tačka na X osi • tačka na XY ravni • Prva tačka neka bude koordinatni početak • Druga tačka neka bude jedna rupa po X osi • Treća tačka negde na tabli • Što je veća daljina, to če biti tačnije • Visinu kod svake podesiti tako da bi jedan list papira stao između valjka i lista
User Frame
User Frame
User Frame • Pravimo program definisanim User Frame-om koji će staviti jedan valjak iz jedne rupe u drugu • Valjak moramo podići u visinu od par cm da ne bi udarili nešto
User Frame • U programu User Frame mora da se namesti • F 1 (INST) • Offset/Frames • “UFRAME_NUM
User Frame • Možemo praviti User Frame i za drugu stranu
User Frame • Program možemo koristiti i na drugoj strani • U programu moramo podesiti User Frame • Program neće se pokrenuti, dobićemo grešku na Teach Pendant-u • Ponovo prebacimo program na drugi User Frame • Sa ovom metodom lako možemo postojeći program preneti na drugu stranu (moramo samo User Frame podesiti)
User Frame • Ovako smo izgubili User Frame na drugoj strani, ali možda hoćemo ga ponovo korisiti • Pravimo program koji se može koristiti na obe strane bez toga da uvek podešavamo User Frame • Koristimo User Frame 4 i 5
Offset i Position Register • Sa Position Register (PR) imamo mogućnost da dodamo offset poziciji alata bez direktnog snimanja tačke • Ovo može pojednostavniti i ubrzati proces programiranja
Offset i Position Register • • • Sa Tool Offset-om možemo dodati alatu neku veličinu offseta Naročito je onda koristan kad npr. su nam potrebne više visine u istoj poziciji Position Register se može koristiti za snimanje pozicije ili offset-a kao varijabla Position Register se može podesiti pre ili tokom rada programa Jednu poziciju možemo dati direktnom metodom (sa Postion key) ili sa snimanjem pozicije robota (Record key)
Offset i Position Register • Da snimimo poziciju u PR prvo treba da stisnemo taster Data • Podesimo Position Reg u [Type] i izaberemo PR u koji želimo snimiti poziciju
Offset i Position Register • Za snimanje druge tačke podesimo manualno Z vrednost prve tačke za visinu (ovako koristimo istu visinu) • Offset ćemo u ovom slučaju koristiti samo na Z osi • Offset se može podesiti u PR • Preporučljivo je da se offset poveća polako (dobro je kod puštanja biti malo višlje nego kod hvatanja)
Offset i Position Register • Unos Offset-a u PR se radi na isti način kao u slučaju pozicije, ali umesto snimanja koristimo "Position" i unosimo vrednost manualno (u našem slučaju osim za Z dajemo vrednost 0, a za Z neku malu vrednost)
Offset i Position Register • Tokom programiranja ne snimamo pozicije nego koistimo pozicije i offsete koji se nalaze u PR • Da bi koristili poziciju iz PR prvo stisnemo record key, sa kurzorom pređemo na poziciju pa promenimo "Type" na PR (Choice taster)
Offset i Position Register • Posle toga podesimo vrednost u PR koji želimo koristiti • Tokom programiranja moramo paziti na to da ova metoda zavisi od toga koji UFrame i Tool. Frame koristimo • Korišćenje lošeg frame-a dovodi do neočekivanog kretanja, koji može da prouzrokovati povrede i/ili oštećenja
Offset i Position Register • Primer
Primer naprednog programiranja • Situacije odlučivanja, podprogrami
Primer naprednog programiranja • Podešavanje UFRAME-a • F 1 Inst • Page 2 number 4 Offset/Frames • UFRAME_NUM=1 (World User Frame)
Primer naprednog programiranja • 4 različite tačke u linearnom modu, brzina 100 mm/s (na istoj visini, pravougaoni oblik)
Primer naprednog programiranja • Dodamo prazan red između 2. i 3. pozicije • Ako ne sadrži komandu onda neće uticati na program • Za brisanje reda EDCMD (F 5), pa delete • Pita da li želimo brisati, F 4 ako jeste
Primer naprednog programiranja • Da bi program radio isti pokret više puta, imamo mogućnost da koristimo „For to” funkciju • Novi red, Inst, pa izaberemo For to
Primer naprednog programiranja • Izaberemo jedan registar (koji se ne koristi u nekom drugom programu), npr. R[32] se ne koristi u default slučaju • Koristimo Constant tip dva puta, i podesimo 1 i 10
Primer naprednog programiranja • Procedura će se ovako ponoviti, vrednost registra će se povećati sa 1, tako da će se menjati od 1 do 10 • U register overview (data taster i Register kod "type"-a) možemo dati ime registru, koji će se pojaviti i u programu
Primer naprednog programiranja • Potreban je nam i Endfor • Ubacivanje se radi na isti naćin kao kod For to-a • Imamo mogućnost da pratimo dešavanje u registrima. Dodamo drugi displej (shift+disp i izaberemo double, a sa disp taterom (bez shift-a) možemo da pređemo na drugi ekran), pa na drugom stisnemo data taster i menjamo type na registar
Primer naprednog programiranja • Pozicije ubacimo u PR da bi ih koristili u sekundarnim programima • Napravimo 2 nova programa kojima damo ime Advanced_Program_part 1 i Advanced_Program_part 2
Primer naprednog programiranja • Želimo da se jednom kreće u jedan smer a jednom u suprotan • Za ovo koristimo "if" sa kojim možemo ispitati neki dati uslov. Ako je True, onda će uraditi date operacije, ako je False, onda će preći na sledeću komandu u programu • Ubacimo jedan register instruction (F 1 Inst pa 1 Register) da bi izračunali R[32] mod 2 (svaki drugi put će dati 0) • Rezultat stavimo u R[33] (ili u neki drugi slobodan registar)
Primer naprednog programiranja • Trebaju nam dve komande. Prvi će pozvati Advanced_Program_part 1 ako je vrednost registra 0, a drugi Advanced_Program_part 2 ako je 1
Primer naprednog programiranja • Sekundarni programi • Programi će raditi pokrete u dva pravca
Primer naprednog programiranja • Jump Label • Imamo mogućnost da koristimo jump komande • Sa korišćenjem Jump LBL možemo skočiti na specijalni label koji je definisan u program • F 1 (Inst) -> 5 (JMP/LBL) • Prethodni primer sa korišćenjem jump komanda
Primer naprednog programiranja • CNT • Možemo učiniti naš program efikasnijim ako on radi brže • Možemo koristiti CNT umesto FINE. U ovom slučaju neće otići do date tačke, nego samo blizu tačke pa će nastaviti dalje bez stajanja
Primer naprednog programiranja • Ako naš program radi ispravno, podesimo brzinu na 1000 mm/s i override na 10% (instmiscellaneous-override) • Tokom rada programa možemo primetiti da će program raditi brže nego sa fine podešavanjem, a putanja neće biti ravna jer neće otići do određene tačke • Što je veća brzina, CNT će imati to veći uticaj na kretanje
Primer naprednog programiranja • Wait • Možemo dodati čekanje u program (registar ili konstanta) • Po isteku vremena program nastavlja sa sledećom komandom
Input/Output • Za komunikaciju sa drugim uređajima preko signala • Jako je važno ako robot ne radi sam nego sa periferijama (senzori, kamere, drugi roboti)
Input/Output • • • Menu – 5 I/O Za promenu input/output F 3(IN/OUT) Možemo promeniti tip na digitalni Kod listanja izlaza vidimo da izlazi počinju od 101 Pomoćom Item tastera i Enter-a možemo dodati izlaz 101 (DO[101]) • Stanje izlaza možemo menjati, a stanja ulaza pratiti • Za simulaciju ulaza - kurzor na Sim pa F 4 Simulate
Input/Output • Primer za korišćenje digitalnih ulaza
Input/Output • Primer za korišćenje digitalnih izlaza
Input/Output • Moguće je paralelno pokretanje više programa • Ovo je naročito onda korisno kad pored pokretanja robota želimo i upravljati spoljašne uređaje • Za ovo u drugi program pre Override-a ubacimo novi red, pa jednu Run komandu (Instr druga strana 5 Multiple Control) i Run I_O_Timer • Ako ovako probamo pokrenuti program, on neće krenuti i daće sledeći izlaz na TP “PROG-040 Already locked by other task”
Input/Output • Da ovo rešimo moramo nešto promeniti u Group Mask-u koji korišćen u Run komandi. I_O_Timer, DO_Set_OFF, Register_To_Binary sa 1 na * (F 2 Detail)
Input/Output • Možemo promeniti da wait ne čeka konstantno vreme, nego dok se jedan registar ne promeni npr. u drugom programu • Za ovo sličnu promenu treba raditi:
Razni tipovi STOP-a • Za FANUC robote različiti STOP-ovi su dostupni, koje treba koristiti na osnovu različitih principa
Razni tipovi STOP-a • Stop-ovi imaju 3 kategorije (po IEC 60204 -1) • 2. kategorija • kontrolisani stop, posle kojeg na aktuatorima (u našem slučaju motori) i dalje imamo napajanje • 1. kategorija • kontrolisani stop, posle kojeg na aktuatorima nemamo napajanje • 0. kategorija • instantni stop koji će uzeti napajanje sa aktuatora • Kod 1. i 0. kategorije za nastavak moramo ukloniti uzrok zaustavljanja (otpustiti E-Stop dugme, zatvoriti kapiju, itd. ) i stisnuti reset dugme
Razni tipovi STOP-a • Hitno isključenje (E-Stop) • Koristi se u hitnim slučajevima. Ako je čovek u opasnosti ili će se robot sudariti sa nekim predmetom. Ovo je 0. kategorija. • Otpuštanje Deadman Switch-a • 0. kategorija • Otvorena kapija • Robot mora da stane, ali imamo neko vreme da stanemo (1 s prema principima). Ovo je 1. kategorija. • Hold • Ovo možemo koristiti da zaustavimo robot da bi npr. zamenili nešto. Ovo je 2. kategorija.
Robo. Guide Tutorial Pick&Place https: //www. youtube. com/watch? v=M 1 YKVr. Le. YFw&t=210 s https: //www. youtube. com/watch? v=hj. AV 2 Mtxon 4&t=781 s https: //www. youtube. com/watch? v=Upgjf. YGAeu. M https: //www. youtube. com/watch? v=0 xn. Z 5 l 7 y. A 2 g https: //www. youtube. com/watch? v=B 1 Hy 3 kx. BCM 4 Rail Unit https: //www. youtube. com/watch? v=6 TYN 8 w. Nn 1 BY Vision/Sensor https: //www. youtube. com/watch? v=FFbc. Ns. OZk 1 A&t=187 s https: //www. youtube. com/watch? v=H 2 zce 5 ct. WQc https: //www. youtube. com/watch? v=MDJQOE 9 Ha 3 Q https: //www. youtube. com/watch? v=s. KYr. ADB 37 n. A https: //www. youtube. com/watch? v=e. XQS 7 Tm. TYDI Motion of Robot Tool https: //www. youtube. com/watch? v=i. X 2 tgi. HHHv. I Basics (HUN) https: //www. youtube. com/watch? v=Mnrpo 5 on. WBk&t=255 s https: //www. youtube. com/watch? v=Xxlfp. Kv. CJ 4 s&t=2 s
- Slides: 72