FANUC ROBOTIT Yleisohje www.fanucrobotics.com 1
Järjestelmän osat YLÄKÄSIVARSI KÄSIOHJAIN ALAKÄSIVARSI TYÖKALULAIPPA OHJAUSKAAPPI JALUSTA 2
Pääakselit Akselit (JOINT) J1, J2 ja J3 ovat robotin pääakselit. J1 on robotin jalustassa ja muut akselit perätysten. Akseleista ja varsista rakentuu nivelvarsirobotin kinemaattinen ketju. 3. akseli 2. akseli 1. akseli 3
Yläkäsivarsi ja ranne Akselit J4, J5 ja J6 muodostavat robotin ranteen. Viimeisenä rakenteellisena osana on robotin työkalulaippa, johon työkalut kiinnitetään. 5. akseli 4. akseli 6. akseli 4
Koordinaatistot Kaikki robotin paikoitukset on tallennettu suorakulmaisin koordinaatein (esim. xyz paikoitusarvot) ja orientaatio kulma-arvoina (esim. w,p ja r kulmat). Tai vaihtoehtoisesti jokaisen nivelen kulma-arvoina. Robotin tehtävä on siirtää TKP haluttuun paikkaan (x,y,z) ja orientaatioon (w,p,r). Robotti laskee jatkuvasti TKP:n paikkaa työavaruudessaan ja vertaa sitä tavoitepisteen koordinaatteihin. Robotti käyttää apuna koordinaattijärjestelmiä nivelien ohjauksessa. Maailmankoordinaatisto (Worldframe) on kiinteä peruskoordinaatisto, jonka kautta laskeminen tapahtuu. Toinen kiinteä koordinaatisto on työkalulaipan koordinaatisto (ToolFrame 0) Esimerkiksi ohjelmoimme Tool0:n origolle (TKP) jonkin paikan työalueella (maailmankoordinaatistossa). Tämän jälkeen robotin ohjain laskee ja toteuttaa sellaiset nivelkulma-arvot eri akseleille, jotta robotin oikea asento saavutetaan. Tai toisinpäin, voimme ajaa robottia käsiajolla haluttuun paikkaan ja orientaatioon. Sitten paikoituspisteen arvot tallennetaan. Tämän jälkeen robotti voi palata samaan pisteeseen tarpeen vaatiessa. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 5
Koordinaatistot Jotkut näistä koordinaattijärjestelmistä ovat osana robotin konfiguraatiota eivätkä muutettavissa (Tool0 ja Worldframe), kun taas toiset ovat käyttäjän määriteltävissä (UserFrame, ToolFrame). Kun vaihdamme robotin työkalua fyysisesti, niin paikoitus menee väärin. Tätä varten määrittelemme robotille uuden työkalun koordinaatiston (TFrame 1-10). Aina kun tämä uusi työkalukoordinaatisto on aktiivisena laskee robotti sellaisen asennon mikä toteuttaa TKP:n oikein. Samoin voidaan opettaa työalueelle käyttäjän koordinaatistoja, jotka helpottavat paikotuksien numeerista käsittelyä. Sekä esim. pöydän siirryttyä ei tarvitse opettaa kuin Uframe uudestaan. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 6
Robottiturvallisuus Robotit ovat joustavia ja monipuolisia koneita, joiden käyttöympäristöt ovat hyvinkin erilaisia. Tästä syystä jokaiselle robottisolulle on olemassa omat turvallisuusohjeet, joita täytyy noudattaa. 1. Tutustu robotin käyttöohjekirjaan (Operator s Manual) 2. Tutustu robottisolun ohjeisiin ja dokumentointiin Aina ollessasi robotin työalueella : Varmista että ympärilläsi on tilaa mahdollisille väistöliikkeille Älä oleskele turhaan robotin alapuolella Vältä useamman henkilön samanaikaista oleskelua alueella Rauhallisuus ja maltti!!! http://www.engadget.com/2009/05/12/video-robotscrash-into-dummies-test-our-weaknesses/ 7
Robottiturvallisuus TEHTÄVIÄ JA TILANTEITA ASENNUS, KÄYNTIINAJO, TESTAUS OHJELMOINTI TUOTANTOAJO HÄIRIÖNPOISTO JA HUOLTO MAHDOLLISIA RISKEJÄ ROBOTIT OVAT VOIMAKKAITA ROBOTIT OVAT NOPEITA ROBOTEILLA ON SUURI TYÖALUE ROBOTIT SAATTAAVAT LIIKKUA MELKO PITKÄN MATKAN HÄTÄPYSÄYTYKSEN JÄLKEEN ROBOTIT SAATTAVAT LIIKKUA ERI RATAA KUIN ON OHJELMOITU ROBOTIT SAATTAVAT LIIKKUA ÄKKINÄISESTI ODOTETTUAAN VIESTIÄ YMPÄRISTÖ-LAITTEILTA LENTÄVÄT TAI KAATUVAT ESINEET VAARALLISET MATERIAALIT YMPÄRISTÖLAITTEET SAATTAVAT LIIKKUA ÄKILLISESTI VAIHTOEHTOISIA TAPOJA PYSÄYTTÄÄ ROBOTTI TYÖKIERRON JÄLKEEN OHJELMALLISESTI TUOTANTOPYSÄYTYS: ROBOTTI PYSÄYTETÄÄN TYÖKIERRON SISÄLLÄ SITEN ETTEI PROSESSI HÄIRIINNY SUOJAPYSÄYTYS: ROBOTTI PYSÄYTETÄÄN JONKUN MENNESSÄ TYÖSKENTELYALUEELLE HÄTÄPYSÄYTYS: ROBOTTI PYSÄYTETÄÄN VAARAN UHATESSA HENKILÖÄ TAI LAITTEITA SUOJAUSMAHDOLLISUUKSIA AITAUKSET VARUSTETTUNA PORTEILLA TURVARAJOINEEN VALOVERHOT TURVAMATOT JA -RAJAT SALLINTALAITE (ERILLINEN TAI OHJAIMESSA) HÄTÄPYSÄYTYKSET RAJOITETTU NOPEUS 8
Sallintalaite 5.8.3 Sallintalaite SFS-EN ISO 10218-1 Kannettavassa ohjaus- tai ohjelmointilaitteessa on oltava standardin IEC 60204-1:2005 kohdan 10.9 mukainen kolmiasentoinen sallintalaite, joka jatkuvasti keskiasennossa pidettäessä sallii robotin liikkeen tai muut vaaraa aiheuttavat robotin ohjaamat toiminnot. 5.8.4 Kannettavan ohjausyksikön hätäpysäytystoiminto Kannettavassa ohjausyksikössä tai ohjelmointilaitteessa on oltava kohdan 5.5.2 mukainen pysäytystoiminto. Laitteen ulkonäön on oltava hätäpysäytyslaite standardin ISO 13850 mukaisesti. 5.8.5 Automaattisen toiminnan käynnistäminen Robotin automaattisen toiminnan käynnistäminen ei saa olla mahdollista käyttämällä vain kannettavaa ohjausyksikköä tai ohjelmointilaitetta. Suojuksilla ja turvalaitteilla erotetun tilan ulkopuolelta tehtävän erillisen vahvistuksen on oltava tarpeen ennen automaattisen toimintatavan käynnistämistä. 9
Ohjauskaapin hallintalaitteet Käyntiaikalaskuri Avainkytkin Fault reset - virheen kuittaus Fault robottivirhe Cycle Start työkierron käynnistys painike HÄTÄSEIS Power merkkivalo/(painonappi) Robotti ohjausvirta USB- liityntäpistoke PCMCIA- korttipaikka Päävirtakytkin 10
Käsiohjain Robotin liikkuttaminen (hidastettu nopeus < 250mm/s) Ohjelman teko (TP-programs) Ohjelman testaus (<250mm/s) Käyttäjän valinnat robotille (määritykset ja ohjelmien valinta) Robotin tilan tarkastus (I/O, asento, suoritettava ohjelma) NÄYTTÖ ON/OFF- kytkin HÄTÄSEIS- painike KALVOPAINIKKEET SALLINTALAITE 11
Käynnistys ROBOTIN KÄYNNISTYS 1. Mahdollinen paineilma päälle 2. Turvaveräjät ja turvalaitteet perustilaan 3. Päävirtakytkin 1-asentoon 4. Power-on painonapilla ohjausvirta päälle 5. Turvareleen kuittaus 6. Ohjelmointilaitteen kytkin ON-asentoon 7. a) AUTOMAATTIAJO b) OHJELMOINTI / LIIKUTTELU 7. a) SELECT > valitse ohjelma > ENTER Ohjelmointilaite OFF Avainkytkin AUTOM asentoon Cycle start painike ohjauspaneelissa 7. b) SELECT CREATE Nimi OHJELMOI s. 34 Testaa ohjelma: Sallintalaite/SHIFT > FWD 12
Sallintalaite kuolleen miehen kytkin Sallintalaite on ohjaimen takana oleva kolmiasentoinen kytkin, joka painettuna keskiasentoonsa mahdollistaa robotin liikkeen. Se vapauttaa jarrut ja kytkee ohjausvirran akselien moottoreille. Kytkimiä on kaksi, käyttäjä voi valita kumpaa käyttää. Kytkimen lisäksi täytyy samanaikaisesti painaa myös SHIFT painiketta. Mahdollinen häiriöilmoitus voidaan kuitata aktivoimalla sallintalaite ja painamalla samanaikaisesti RESET- painiketta. Sallintalaite Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 13
Robotin liikuttaminen Robotin ohjelmoinnin kulku käsiohjaimella ohjelmoitaessa: 1. Robotti liikutetaan haluttuun paikkaan ja asentoon. 2. Paikotuspisteen tallennus ja liikekäskyn valinta (JNT, L,C). 3. Robotti liikutetaan seuraavaan paikotuspisteeseen. 4. Pisteen tallennus ja liikekäskyn valinta. Jne..jne Ohjelmoijan on siis saatava robotti liikkumaan haluamallaan tavalla. Tätä varten on järjestelmässä useita tapoja robotin liikuttamiseen. WORLD, TKP liikkuu maailmankoordinaatiston akseleiden suuntaisesti. TOOL, TKP liikkuu valitun työkalun koordinaattiakselien suuntaisesti (UTool). USER, TKP liikku käyttäjän koordinaatiston akselien suuntaisesti (UFrame). JOINT, Robottia voi liikutella akseli kerrallaan. JGFRM, Robotille voi opettaa käsiajoa varten uusia koordinaatistoja. 14
Robotin nykyinen asento ja paikka Pos- painikkeella saadaan näyttöön nivelien kulmat tai valitussa koordinaatistossa aktiivisen työkalun paikka 15
Ohjelmointi Ohjelma kostuu liikekäskyistä, I/O- komennoista,rekisterien käsittelystä ja ohjelman kulkuun liittyvistä komennoista. Jokainen käsky on ohjelmassa omalla rivillään ja rivit ovat numeroitu. Järjestelmän tarkoituksena on suorittaa näitä komentorivejä rivi kerrallaan, kunnes ohjelman lopetusmerkki saavutetaan. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 16
Ohjelmointi /PROG MIKA1 /ATTR OWNER = MNEDITOR; COMMENT = "TESTI"; PROG_SIZE = 685; CREATE = DATE 10-09-01 TIME 20:24:22; MODIFIED = DATE 10-09-01 TIME 21:01:01; FILE_NAME = ; VERSION = 0; LINE_COUNT = 7; MEMORY_SIZE = 997; PROTECT = READ_WRITE; TCD: STACK_SIZE = 0, TASK_PRIORITY = 50, TIME_SLICE = 0, BUSY_LAMP_OFF = 0, ABORT_REQUEST = 0, PAUSE_REQUEST = 0; DEFAULT_GROUP = 1,*,*,*,*; CONTROL_CODE = 00000000 00000000; /MN 1:J P[1] 100% CNT100 ; 2:J P[2] 100% FINE ; 3:L P[3] 100mm/sec FINE ; 4:L P[4] 100mm/sec FINE ; 5:L P[3] 100mm/sec FINE ; 6:L P[4] 100mm/sec FINE ; 7:L P[5] 100mm/sec FINE ; /POS P[1]{ GP1: UF : 0, UT : 1, CONFIG : 'N U T, 0, 0, 0', X = 487.65 mm, Y = 1.76 mm, Z = 503.92 mm, W = -180.00 deg, P =.00 deg, R =.00 deg }; P[2]{ ---------- ---------- P[5]{ GP1: UF : 0, UT : 1, CONFIG : 'F U T, 0, 0, 0', X = 563.29 mm, Y = -48.58 mm, Z = -335.92 mm, W = 177.94 deg, P = 48.33 deg, R = 177.79 deg }; /END Ohjelma voidaan tulostaa tekstitiedostoksi. Alussa yleistä tietoa ja ohjelman määrittelyjä. Numeroidut rivit ovat varsinainen ohjelmakoodi. Tässä esimerkissä on vain liikekäskyjä Ohjelman lopussa on paikotuspisteiden määrittelyt. Käytettävät koordinaatistot Uframe ja Utool Robotin konfiguraatio x, y ja z-koordinaatit Pisteen orientaatio, w, p ja r kulmat 17
Ohjelmointi Liikekäskyt: Valittu TKP siirtyy määrätyllä nopeudella ja tavalla kohdepisteeseen. Laajennettu liikekäsky Jonkin lisätehtävän suoritus liikkeen aikana, esim. liike pysähtyy tulosignaalista. Rekisterikäskyt Muuttujan numeerisen arvon muuttaminen rekistereissä. Input/output käskyt: Asettaa lähdön tai lukee tulosignaalin. Kommunikointi muiden laitteiden kanssa. Ohjelmointikäskyt Muuttaa ohjelman kulkua. Hypyt ohjelman riveillä, ehtolausekkeet. Odotuskäskyt Ohjelman suoritus keskeytetään tietyn ajan tai kunnes jokin ehto toteutuu. Aliohjelman kutsu Aliohjelman kutsu ja suoritus. Ohjelman lopetus Ohjelman suorituksen lopetuskäsky Kommentointikäskyt Ohjelman kommentointi, helpottaa ohjelmalistauksen lukemista ja ymmärtämistä. 18
Ohjelmointi LIIKEKÄSKYT Liikekäskyt koostuvat Liiketavan määrittelystä, Joint, Linear, Circular Paikotuspisteestä, [P1], xyz,w,p,r, CONF Liikenopeudesta, %, mm/sec, jne Paikotustarkkuudesta, FINE, CNT. FINE valittuna robotti ajaa tarkasti pisteeseen ja sitten vasta seuraavalle riville. CNT- valittuna robotti oikaisee paikotuspisteen arvosta riippuen. 1=pieni ja 100=suuri oikaisu. (kts. Seuraava sivu) Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 19
Ohjelmointi LIIKEKÄSKYT CNT- arvon kasvaessa robotti oikaisee enemmän ja lähtee aikaisemmin kohti seuraavaa paikotuspistettä. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 20
Ohjelmointi LIIKEKÄSKYT Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM Nivelliikkeen suorittaminen on robotille helpoin tapa toteuttaa paikotus. Robotti kulkee määräämätöntä reittiä päätepisteeseen. Jokainen nivel vain toteuttaa tavoitekulmansa. Tätä kannattaa käyttää kun ei ole väliä mitä paikotuspisteiden välillä tapahtuu. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM Lineaariliikkeessä robotin TKP kulkee täysin lineaarista suoraa pitkin. Robotti laskee tuhansia pisteitä paikotuksien välille ja toteuttaa ne perätysten. Liikerata on tarkkaan määrätty. TKP asento muuttuu tasaisesti matkan aikana. 21
Ohjelmointi LIIKEKÄSKYT Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM Ympyränkaariliikkessä robotti laskee ympyränkaaren annettujen paikotuksien välille ja toteuttaa lasketun radan. Käskyssä annetaan kaksi paikotusta 1. piste on kauttakulkupiste ja 2. tavoitepiste. 22
Ohjelmointi Rekisterit FANUC- roboteissa on yleiskäyttöinen rekisteri R[i], sekä Paikkarekisteri PR[i]. Yleiskäyttöiseen rekisteriin voidaan tallentaa kokonais- ja desimaalilukuja, joita voidaan käyttää esimerkiksi muuttujina ohjelmassa. Paikkarekisteriin taas voidaan tallentaa paikotuksen koordinaatteja, joita voidaan sitten käyttää esimerkiksi suoraan paikotustietoina. Molemmilla rekistereillä voidaan myös tehdä erilaisia lasku- ja vertailutoimenpiteitä. Rekisterit ovat aina kaikkien ohjelmien käytettävissä. Rekisterin arvoja ei pidä koskaan muuttaa, jollei ole täyttä varmuutta sen käytöstä muissa ohjelmissa. 1. LASKURI rekisteriin R[1] asetetaan arvoksi 0. 2. Asetetaan LBL[10], Riviosoitin, jonne voidaan hypätä mistä tahansa riviltä. 3. Kutsutaan ohjelma SUBNEIQ, jonka suoritettuaan kursori siirtyy takaisin 4. Rekisteriin arvoon lisätään 1. 5. Verrataan laskurin arvoa lukuun 5, jos yhtä suuri, hyppy LBL[20], muuten seuraavalle riville. 6. Hyppy riviosoitin LBL[10]:iin 8. LBL[20] Rekistereitä voidaan tarkastella ja editoida Data- painikkeen takaa. F1 TYPEpainikkeella voi valita rekisterien ja paikkarekisterien väliltä. 23
Ohjelmointi Tulot ja Lähdöt I/O- komentoja (Input/Output) käytetään muuttamaan lähtösignaalien, sekä lukemaan tulosignaalien tilaa. Näitä tulo ja lähtösignaaleja käytetään kommunikointiin muiden laitteiden kanssa. Esimerkiksi työkalun ohjaukseen tai käsiteltävän kappaleen paikotuksen tarkastus antureilla. I/O Tulojen ja lähtöjen tila Tulojen tarkastus Lähtöjen tarkastus ja asetus I/O- komennot löytyvät [INST]- valikon takaa. Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 24
Ohjelmointi Testiajo Ohjelmat täytyy testata pienellä nopeudella ja STEP- ajo päällä. Näin voidaan varmistua ettei tule yllättäviä törmäyksiä. Sallintalaite tulee olla aktiivinen ja SHIFT- pohjassa Testauksen painikkeet, Eteen, Taakse ja pysäytys Nopeuden asetus, käsiajolle, sekä ohjelman testaukselle. VFINE, FINE, 1-100% Näkyy näytön oikeassa yläreunassa. P2 P1 Askelittain ajossa täytyy huomioida että robotti kulkee kaikki paikotukset FINE:llä, koska joka rivin jälkeen tulee tauko. (CNT- ei toteudu) 25
Ohjelman tallennus ja tulostus Ohjelmat voidaan tallentaa, joko konekielisenä.tp tai tekstitiedostona.ls. Konekielisen ohjelman voi ladata takaisin robotille, mutta sitä ei pysty tarkastelemaan, koska se on koodattu koneelle sopivaksi. Tekstitiedosto voidaan avata normaaleilla tekstinkäsittelyn ohjelmilla. Tekstitiedostoa ei vain voi ladata suoraan takaisin robotille, van se on käännettävä eri ohjelmalla konekielelle. Ohjelman tallennus alkaa SELECT painikkeesta, jolloin lista ohjelmista aukeaa. Kursori halutun ohjelman päälle ja valitaan, joko PRINT, tallentaaksesi.ls-tiedoston tai SAVE AS tallentaaksesi konekielisen version. FANUC- roboteissa on käytössä USB-muistitikku (alle 1GB) tai muistikortti. 26
Esimerkkiohjelma 1: LBL[1:Begining]; Nimetty LBL, riviosoitin, johon voidaan hypätä mistä vain. 2: UFRAME_NUM= 1; Käyttäjän koordinaatisto nro 1 aktiiviseksi 3: UTOOL_NUM= 1; Työkalu nro 1 aktiiviseksi 4: J P[1:Perch] 50% CNT100 ; Nivelliike pisteeseen P1, nopeus 50%, CNT=oikaisu ennen pistettä 5: RO[1]= ON; Lähtö RO[1] päälle 6: RO[2]= OFF; Lähtö RO[2] pois 10: LBL[2:Pick Part]; Nimetty LBL, riviosoitin, johon voidaan hypätä mistä vain. 11: $WAITTMOUT= 2000; Odotusajan määritys 12:! Keep out of robot tool Komenttirivi 13: L P[2:Approch] 500mm/sec CNT100 ; Lineaariliike pisteeseen P[2], 500mm/sec, nurkan oikaisu. 14: WAIT DI[2] = ON; Odotus kunnes tulo 2 on päällä 15: ; 16:! R[15] sisältää työkappaleen valinnan; kommentti 17: IF R[15] = 1, JMP LBL[3]; Jos rekisteri 15 arvo on 1, hyppy LBL 3:een 18: IF R[15] = 2, JMP LBL[4]; Jos rekisteri 15 arvo on 2, hyppy LBL 4:een 19: PAUSE; 20: ABORT; Jos R[15] ei kumpikaan, ohjelma keskeytys 21: ; 22: LBL[3:Pick Part#1]; Poimi tuote 1 23: L P[11] 100mm/sec FINE ; Lineaariliike tarkasti pisteeseen P[11] 24: ; 25: JMP LBL[5]; Hyppy riviosoitin 5:een 26: LBL[4:Pick Part#2]; Poimi tuote 2 27: L P[12] 100mm/sec FINE ; Lineaariliike tarkasti pisteeseen P[12] 28: ; 29: LBL[5:Continue]; label 5 30: CALL CLSGRP1; Kutsu aliohjelma CLSGRP1 31: L P[8:Depart Out] 100mm/sec CNT100 ; Lineaariliike 32: IF DI[2] = ON, JMP LBL[98]; Jos tulo 2 on päällä hyppy LBL[98] 33: ; 34: LBL[6:Continue]; label 6 35: J P[1:Perch] 50% CNT100 ; Nivelliike pisteeseen P1 36: JMP LBL[99]; Hyppy LBL 99:ään 39: LBL[98:Conveyor problem present]; Kuljettimella ongelma LBL 41: DO[14]= OFF; Lähtö 14 pois 42: DO[16]= ON; Lähtö 16 päälle 43: MESSAGE[Alarm indicating]; Viesti näytölle 44: MESSAGE[Dropped part]; Viesti näytölle 45: MESSAGE[Remedy- check sensor]; Viesti näytölle 46: PAUSE; 47: JMP LBL[6]; Hyppy LBL 6:een 48: ; 49: LBL[99:End] Lopetus LBL 50: J P[2:"Approch"] Nivelliike P2:een 51: J P[1:"Perch"] Nivelliike P1:een /END Ohjelman lopetus 27