ABB ROBOTS IRC-5 Yleisohje www.abb.com 2015 - M.Billing - Copyright 1
SISÄLLYSLUETTELO Järjestelmän osat ja koordinaatistot.... 3 Robottiturvallisuus..10 Ohjauskaappi ja Käsiohjain........ 16 Robotin käynnistys, liikuttaminen, koordinaatistot 21 Työkalun ja käyttäjäkoordinaatiston määritys... 34 Ohjelmointi, testaus ja tallennus.... 41 Esimerkkiohjelma... 59 2015 - M.Billing - Copyright 2
Järjestelmän osat KÄSIOHJAIN, FLEX-PENDANT YLÄKÄSIVARSI ALAKÄSIVARSI TYÖKALULAIPPA OHJAUSKAAPPI JALUSTA 2015 - M.Billing - Copyright 3
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 2015 - M.Billing - Copyright 4
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 2015 - M.Billing - Copyright 5
Koordinaatistot Robotin perustehtävä on liikutella työkalulaippaan kiinnitettyä työkalua määrättyihin paikoituksiin. Tehtävän suorittamiseksi työkalupisteen (TKP) paikka ja orientaatio l. asema on pystyttävä kuvaamaan matemaattisesti, jotta robotin ohjaus voidaan toteuttaa numeerisesti. Ohjauksessa käytetään apuna koordinaattijärjestelmiä ja siirtomatriiseja. Nivelkulmien ja kinematiikan avulla muodostetaan siirtomatriisien ketju, jonka avulla laipan koordinaatisto voidaan kuvata peruskoordinaatistossa. Robotti laskee jatkuvasti TKP:n (Tool0) asemaa työavaruudessaan, eli järjestelmällä on tieto työkalulaipan asemasta robotin peruskoordinaatistossa (Base). Tool0 Base 2015 - M.Billing - Copyright 6
Koordinaatistot Toisaalta kaikki paikotuksetkin esitetään koordinaatistoina, ja robotin tehtävä on siirtää valitun työkalun TKP paikotusta vastaavaan asemaan. Tässä tehtävässä ohjaus laskee kinematiikan avulla jokaiselle nivelelle sellaisen asennon, että TKP:n paikotus toteutuu. Ts. sellaiset nivelkulmien ohjausarvot jotka toteuttavat valitun työkalun paikan ja asennon vastaamaan ohjelmoitua paikotusta. Tool0 Target_10 Base 2015 - M.Billing - Copyright 7
Koordinaatistot Robotti siirtää työkalun keskipisteen (TKP) ohjelmoituihin paikkoihin suorittaessaan ohjelmia. Kun robotille vaihdetaan työkalu, täytyy myös ko. työkalun TKP määrittää. Se määritetään Tool0:n suhteen paikka ja asentotietona. Tämän jälkeen robotin liikkeet muuttuvat siten, että uusi TKP saavuttaa kohteen. Työkaluja voidaan määrittää useita, mutta vain yksi voi olla kerrallaan aktiivisena. Kuvassa on sama paikotuspiste toteutettu eri työkalumäärityksillä. (t_mytool ja Tool0) t_mytool Tool0 Target_10 2015 - M.Billing - Copyright 8
Koordinaatistot Yleisesti paikotukset määritetään käyttäen globaalia koordinaatistoa (World, Base), mikä on sijoitettu robotin jalustaan. Robotin työalueelle voidaan määrittää myös käyttäjän koordinaatistoja, mitkä helpottavat robotin ohjelmointia. Paikotuspisteiden numeerinen käsittely helpottuu, kun koordinaattiarvot ovat annettu tietyn kohteen suhteen. Esim. pöytä, lava, jigi, tms. Toisaalta myös työkohteen siirtyessä ei tarvitse opettaa kaikkia paikotuksia uudestaan, käyttäjäkoordinaatiston uudelleen määritys riittää. Tool0 Base 2015 - M.Billing - Copyright 9
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/ 2015 - M.Billing - Copyright 10
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 2015 - M.Billing - Copyright 11
Turvatoimintojen määritys Robotin pysäytystoiminnot SFS-EN ISO 10218-1 Yleistä Jokaisella robotilla on oltava suojauspysäytystoiminto ja itsenäinen hätäpysäytystoiminto. Nämä toiminnot on oltava mahdollista yhdistää ulkopuolisiin turvalaitteisiin. 5.5.2 Hätäpysäytystoiminto Jokaisessa ohjauspaikassa, josta voidaan käynnistää robotin liike tai muu vaarallinen tila, on oltava käsin käynnistettävissä oleva hätäpysäytystoiminto, joka a) täyttää tämän standardin kohdan 5.4 ja standardin IEC 60204-1:2005 kohdan 9.2.5.4.2 vaatimukset b) on ensisijainen kaikkiin muihin robotin ohjauksiin nähden c) saa aikaan kaikkien vaarojen lakkaamisen d) poistaa käyttövoiman robotin toimilaitteilta e) poistaa mahdolliset muut robotin ohjaamat vaarat f) pysyy voimassa kunnes se kuitataan, ja g) voidaan kuitata vain käsin tehtävällä toiminnolla, joka ei aiheuta uudelleen käynnistymistä kuittauksen seurauksena, vaan ainoastaan sallii uudelleen käynnistämisen. HÄTÄSEIS kytkimet löytyvät ohjauskaapista, käsiohjaimesta, sekä yleensä robottisolun eri alueilta. Ulkoiset turvalaitteet ovat kytkettynä robotin ohjausjärjestelmään. 2015 - M.Billing - Copyright 12
Turvatoimintojen määritys 5.5.3 Suojauspysäytys Robotilla on oltava vähintään yksi suojauspysäytyspiiri (standardin IEC 60204-1:2005 kohdan 9.2.2 mukainen pysäytysluokka 0 tai 1), joka on suunniteltu niin, että siihen voidaan liittää ulkoisia turvalaitteita. Suojauspysäytys toimii kuten hätäpysäytyskin, mutta sallii käsiohjaimen käytön. Yleensä suojauspysäytyspiiri on kytketty turva-aitoihin (FENCE), jolloin robotin ohjelmointi ja liikuttaminen on mahdollista ovien ollessa auki. 2015 - M.Billing - Copyright 13
Alennettu nopeus 5.6 Ohjaus alennetulla nopeudella SFS-EN ISO 10218-1 Kun robottia ohjataan alennetulla nopeudella, robotin työkalun kiinnityslaipan ja työkalun keskipisteen nopeus ei saa ylittää arvoa 250 mm/s. Alempien nopeuksien kuin 250 mm/s valitsemisen olisi oltava mahdollista. Alennetun nopeuden ohjaus on suunniteltava ja rakennettava niin, että minkä tahansa kohtuudella ennakoitavissa olevan virhetoiminnon sattuessa robotin työkalun kiinnityslaipan ja työkalun keskipisteen nopeus ei saa ylittää alennetun nopeuden raja-arvoa. 5.7.3 Käsin ohjaus alennetulla nopeudella SFS-EN ISO 10218-1 Alennetulla nopeudella tehtävän käsin ohjauksen toimintatavan on täytettävä kohtien 5.3.4 ja 5.6 vaatimukset ja sallittava ihmisen tekemä robotin ohjaus. Tässä toimintatavassa automaattinen toiminta on estetty. Tätä toimintatapaa käytetään ryömintänopeuskäyttöön, opettamalla ohjelmointiin, ohjelmointiin ja robotin ohjelman todentamiseen; tämä toimintatapa saatetaan valita myös joitakin kunnossapitotehtäviä suoritettaessa. 2015 - M.Billing - Copyright 14
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ä. 2015 - M.Billing - Copyright 15
Ohjauskaapin hallintalaitteet HÄTÄSEIS Jarrun vapautus Ohjauksen kuittauspainike Pääkytkin Avainkytkin Laiteliitännät Robotti Suojalaitteet Käsiohjain Oheislaite I/O 2015 - M.Billing - Copyright 16
Ohjauskaapin hallintalaitteet Avainkytkimellä valitaan robotin toimintatila. Manuaalisessa tilassa robotti liikkuu pienemmällä ja turvallisemmalla nopeudella (< 250mm/s). Sallintalaite tulee olla aktivoituna liikutettaessa robottia manuaalitilassa. Manuaalista tilaa käytetään silloin, kun luodaan ohjelmia tai kun robottijärjestelmää otetaan käyttöön. Joissakin robottijärjestelmissä on kaksi manuaalista tilaa, normaali manuaalinen tila ja manuaalinen täyden nopeuden tila. Lähde: Käyttäjän opas IRC5 ja FlexPendant 3HAC16590-13 2015 - M.Billing - Copyright 17
Ohjauskaapin hallintalaitteet Automaattitilassa robotti suorittaa sille ohjelmoituja ohjelmia ja liikenopeudet ovat rajoittamattomia. Kun robotti on automaattisessa tilassa, se voi liikkua ilman varoitusta ajastimien tai ulkoisen laitteen signaalista. Varmista ennen käyttötilan muuttamista, että suojatulla alueella ei ole henkilöitä. Automaattitilaan kytkemisen jälkeen tulee käyttötila varmistaa vielä käsiohjaimesta ja Motors ON painikkeella (Ohjauskaapissa). Lähde: Käyttäjän opas IRC5 ja FlexPendant 3HAC16590-13 2015 - M.Billing - Copyright 18
Käsiohjain Robotin liikkuttaminen (hidastettu nopeus < 250mm/s) Ohjelman teko Ohjelman testaus (<250mm/s) Käyttäjän valinnat robotille (määritykset ja ohjelmien valinta) Robotin tilan tarkastus ja korjaus (I/O, asento, suoritettava ohjelma) NÄYTTÖ HÄTÄSEIS- painike KOSKETUSNÄYTTÖ KALVOPAINIKKEET SALLINTALAITE Lähde: Käyttäjän opas IRC5 ja FlexPendant 3HAC16590-13 2015 - M.Billing - Copyright 19
Käsiohjain Lähde: Käyttäjän opas IRC5 ja FlexPendant 3HAC16590-13 2015 - M.Billing - Copyright 20
Käynnistys ROBOTIN KÄYNNISTYS 1. Mahdollinen paineilma päälle 2. Turvaveräjät ja turvalaitteet perustilaan 3. Päävirtakytkin 1-asentoon 4. Turvareleen kuittaus 5. a) AUTOMAATTIAJO b) OHJELMOINTI / LIIKUTTELU 5. a) Avainkytkin AUTO- asentoon Ohjelmointilaitteen viestin kuittaus Motors ON- painike start painike käsiohjaimessa tai Load Program - valinta näytöltä. 5. b) Avainkytkin KÄSI- asentoon ABB-valikko > Program Editor tai Jogging Tasks and PRograms>New Program OHJELMOI s. XX Testaa ohjelma: Debug> Move PP> Sallintalaite/start 2015 - M.Billing - Copyright 21
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. Sallintalaite Sallintalaitetta ei saa koskaan millään tavoin estää toimimasta. Ohjelmoinnin ja testauksen aikana sallintalaite on vapautettava heti, kun käsittelijän liikkumiselle ei ole enää tarvetta. Ohjelmoijalla on aina oltava FlexPendant-laite mukanaan, kun hän menee käsittelijän työskentelytilaan. Näin kukaan muu ei voi ohjata käsittelijää ohjelmoijan tietämättä. 2015 - M.Billing - Copyright 22
Käsiohjaimen painikkeet Käsiohjaimessa on kosketusnäytön lisäksi kalvopainikkeita ja analoginen ohjaussauva, joiden avulla robotin liikuttaminen toteutetaan. Ohjelmoitavat painikkeet Yksikön valinta Robo/lisäakseli Sallintalaite Liikuttelutavan valinta: Orientointi / Lineaariliike Akselittain ajon valinta, 1-3 / 4-6 Inkrementaalinen liike Ohjaussauva Ohjelman suorituksen valinta: Käynnistys, Askelittain eteen/taakse, Pysäytys 2015 - M.Billing - Copyright 23
Käsiohjaimen näyttö Käsiohjain käynnistyy tervetuloikkunaan, jonka yläreunassa olevassa palkissa on ABB-valikon valintapainike, sekä robotin tilatietoikkuna. ABB-valikon alta löytyy kaikki ohjaimen kautta valittavat toiminnot. Alarivillä näkyy avoimet sovellukset (vrt.windows) ja eri tilojen välillä voidaan helposti liikkua. Käyttötila Ohjausvirran tila Paikotuspisteiden pikaeditointitila Tulo- ja lähtösignaalit Käsiajo Tuotantoajo Editointi Varmuuskopiointi ja palautus Kalibrointi Järjestelmä asetukset Loki Tiedostonhallinta INFO Ohjelmadata: paikotukset, työkalut, muuttujat, yms.. 2015 - M.Billing - Copyright 24
Robotin liikuttaminen Robotin ohjelmoinnin kulku käsiohjaimella ohjelmoitaessa: 1. Robotti liikutetaan haluttuun paikkaan ja asentoon. 2. Paikotuspisteen tallennus ja liikekäskyn valinta (MoveJ, MoveL,MoveC). 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/BASE, TKP liikkuu peruskoordinaatiston akseleiden suuntaisesti. TOOL, TKP liikkuu valitun työkalun koordinaattiakselien suuntaisesti (Tool). USER, TKP liikku käyttäjän koordinaatiston akselien suuntaisesti (Wobj). JOINT, Robottia voi liikutella akseli kerrallaan. 2015 - M.Billing - Copyright 25
Robotin liikuttaminen Käsiajon liiketapa voidaan valita myös käsiohjaimen pikavalikon kautta. Show details näyttää kaikki vaihtoehdot. Valikosta voidaan valita nopeus, aktiivinen koordinaatisto, sekä työkalu, sekä myös liiketapa käsiohjaukseen. 2015 - M.Billing - Copyright 26
Robotin liikuttaminen Robotin manuaalinen liikkeenohjaus toteutetaan ohjaussauvalla. Siinä on kolme ohjaussuuntaa joita voidaan ohjata yhtäaikaisesti. Eteen/Taakse, Oikea/Vasen, Kierto mp/vp. Sauva on ns. analoginen, eli liikenopeus säädetään sauvan asennolla. Pieni liike > pieni nopeus ja ääriasennossa täysi nopeus. Analogisen sauvan käyttö kannattaa harjoitella hyvin. Inkrementaali- painikkeen avulla voidaan valita askeltava liike. Liike tapahtuu valitun askeleen (large, medium,small) verran riippumatta sauvan asennosta. Tämä helpottaa liikuttelua tarkoissa paikotuksissa. 2015 - M.Billing - Copyright 27
Käsiajon koordinaatistot -akseli kerrallaan (ohjainsauvalla liikutetaan robotin niveliä) Koska sauva liikkuu kolmeen suuntaan (ylös/alas oikea/vasen kierto mp / vp), voidaan sillä ohjata kerrallaan kolmea akselia. Painettaessa uudestaan akseleittain ajo- painiketta, voidaan valita akseliryhmät 1-3 tai 4-6. Lähde: Käyttäjänopas IRC5 ja FlexPendant 3HAC16590-13 Nivelien kulma-arvot Liiketavan valintapainikkeet Valittu liiketapa Ohjaussauvan liike ja suunta ABB menu>jogging>liiketavan valinta>ohjainsauva 2015 - M.Billing - Copyright 28
Käsiajon koordinaatistot Työkalun ohjaaminen tarkasti haluttuun paikkaan ja asentoon ei ole nivel kerrallaan ohjattaessa helppo tehtävä. Tästä syystä robottia voi liikuttaa käsiohjauksella myös suoraviivaista rataa pitkin. Käyttäjä valitsee käytettävän työkalun ja liikekoordinaatiston. WORLD/BASE, Peruskoordinaatisto Valittu TKP siirtyy maailmankoordinaatiston akselien suuntaisesti. Wobj, Käyttäjän koordinaatisto TKP voidaan siirtää käyttäjän määrittelemässä koordinaatistossa. 2015 - M.Billing - Copyright 29
Käsiajon koordinaatistot Lineaariliikkeessä työkalun keskipiste (TKP) liikkuu suoraviivaisesti valitun akselin suuntaisesti. Työkalun asento ei muutu liikkeen aikana. +Z TKP,t_pencil +Y BASE, World +X Esim. Ohjaussauvan liike alaspäin ohjaa työkalua peruskoordinaatiston x-akselin positiiviseen suuntaan 2015 - M.Billing - Copyright 30
Käsiajon koordinaatistot TOOL, Työkalukoordinaatisto TKP siirtyy Työkalukoordinaatiston suuntaisesti Liike työkalun suuntaisesti, riippumatta työkalun asennosta suhteessa peruskoordinaatistoon Z- Z+ Esim. Ohjaussauvan kierto vastapäivään ohjaa työkalua z- akselin positiiviseen suuntaan. Eli työkalu liikkuu itsensä suuntaisesti alaspäin. 2015 - M.Billing - Copyright 31
Käsiajon koordinaatistot Työkalun kierto, orientointi Orientaatioliikkeessä robotti kääntää valitun työkalun asentoa paikotuksen pysyessä paikallaan. Lineaariliikkeellä työkalu saadaan haluttuun paikkaan ja orientaatiolla saadaan säädettyä työkalun asento. Z- Z+ Esim. Ohjaussauvan kääntö oikealle kääntää työkalua Y-akselin ympäri. Eli työkalu kääntyy vihreän nuolen suuntaan. 2015 - M.Billing - Copyright 32
Aktiivisen työkalun ja koordinaatiston määritys Robotille voidaan määrittää useita työkaluja Tool ja käyttäjäkoordinaatistoja Wobj. Aina ohjelmointia aloitettaessa on valittava oikea työkalu ja käytettävä koordinaatisto aktiiviseksi. Se tehdään jogging- ikkunassa. Saman ikkunan kautta voi myös määritellä ja luoda uusia työkaluja ja käyttäjäkoordinaatistoja. Datan esittelytiedot Datan arvon muutos Datan poisto Määritys robotin avulla 2015 - M.Billing - Copyright 33
Työkalun määrittäminen Robotissa on aina olemassa Tool0, jonka origo on työkalulaipan keskellä. (TKP- työkalupiste) Tool0 Tämän TKP:n robotti tietää ja osaa liikuttaa sitä annettuihin koordinaatteihin. Robottia voidaan myös helposti liikuttaa aina työkalun suuntaisesti, oli TKP:n asento mikä tahansa. Tämä on tärkeä ominaisuus ohjelmoitaessa robottia. Uusia työkaluja asennettaessa tulee myös kertoa robotille missä uuden työkalun TKP on suhteessa Tool0:n origoon. Arvot voidaan antaa numeerisesti tai robottia voidaan käyttää mittalaitteena uuden työkalun määrityksessä. ABBMenu > Program Data>Tooldata, näyttää robotille määritellyt työkalut. 2015 - M.Billing - Copyright 34
Työkalun määrittäminen Työkalun määrittäminen kannattaa aloittaa kopioimalla Tool0 uuden työkalun pohjaksi. Sen jälkeen robotin työalueelle asennetaan jokin kiinteä, terävä piikki. Tätä pistettä käytetään työkalujen määrittämisessä robotin avulla. Define painikkeella voidaan valita tapa, jolla työkalu määritetään. Menetelmässä työkalupiste paikotetaan eri asennossa robotin työalueella olevaan kiinteään pisteeseen. Nämä lähestymispisteet laitetaan robotin muistiin ModPos- painikkeella. Käyttäjä voi valita pisteiden lukumäärän, useampi piste johtaa tarkempaan määritykseen. 2015 - M.Billing - Copyright 35
Työkalun määrittäminen Lähestymispisteiden lukumäärän lisäksi voidaan valita pelkkä paikanmittaus tai lisäksi uuden työkalun orientaation määritys suhteessa 0-työkaluun. 2015 - M.Billing - Copyright 36
Työkalun määrittäminen Määriteltävän työkalun TKP (kärki) liikutetaan tarkasti kiintopisteen kohdalle ja erilaiset lähestymispisteet laitetaan muistiin ModPos- komennolla. Viimeinen lähestymispiste annetaan työkalun pystyasennossa, jotta Z- suunnan määritys onnistuu helpoiten. 2015 - M.Billing - Copyright 37
Työkalun määrittäminen Viimeinen lähestymispiste annetaan työkalun pystyasennossa, jotta Z- suunnan määritys onnistuu helpoiten. Z-suunta määritetään liikuttamalla työkalua halutun z-akselin suunnasssa. Tässä tapauksessa kynän suuntaisesti. Viimeinen piste annettiin pystysuorassa asennossa, siitä syystä että z- akseli on asmansuuntainen peruskoordinaatiston z-akselin kanssa. Z Työkalun määritykset on helppo tarkistaa kääntelemällä TKP:tä. Valitse aktiiviseksi työkaluksi opettamasi ja käännä työkalua maailmankoordinaatistossa. TKP paikka tulee pysyä paikoillaan, ainoastaan asento muuttuu. 2015 - M.Billing - Copyright 38
Käyttäjäkoordinaatiston Wobj määrittäminen Käyttäjän koordinaatiston (Work Object Coordinate system)määrittely voidaan tehdä työkalun avulla tai antaa arvot manuaalisesti peruskoordinaatiston suhteen. ABBMenu > Program Data>Wobjdata näyttää robotille määritellyt koordinaatistot. Valinta tehdään kuten työkalukoordinaatistoja määriteltäessä. Opeta seuraavat kolme pistettä : 1. X1, Origo X- akselilta 2. X2, Piste X- akselilta 3. Y1, Piste Y- akselilta Käyttäjän koordinaatiston tarkastus voidaan tehdä ajamalla juuri määritellyssä koordinaatistossa esim. origoon ja katsomalla Joggingikkunasta onko koordinaattien arvot nollia. 2015 - M.Billing - Copyright 39
Robotin nykyinen asento ja paikka Jogging- ikkunassa näkyy liiketapavalinnasta riippuen joko nivelkulmat tai valitun työkalun TKP:n paikka ja asento aktiivisen koordinaatiston suhteen. 2015 - M.Billing - Copyright 40
Ohjelmointi Ohjelma kostuu liikekäskyistä, I/O- komennoista, muuttujien käsittelystä ja ohjelman kulkuun liittyvistä komennoista. Jokainen käsky on ohjelmassa omalla rivillään. Järjestelmän tarkoituksena on suorittaa näitä komentorivejä rivi kerrallaan, kunnes ohjelman lopetusmerkki saavutetaan. 2015 - M.Billing - Copyright 41
Ohjelmointi Ohjelma voidaan tulostaa tekstitiedostoksi. Alussa on muuttujien esittelyt. Tässä esimerkissä MODULE MainModule on vain paikotuspisteitä ja niiden määritykset. CONST robtarget Koti:=[[226.26113075,-320.803097442,211.901154713],[- x, y ja z-koordinaatit 0.000000001,-0.000000058,1,0.000000004],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONST robtarget p_1:=[[226.261108398,-320.803131104,5],[0,0,1,0],[- Robotin konfiguraatio 1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; Pisteen orientaatio, kvaternioesityksenä CONST robtarget p_2:=[[107.493164063,-313.168334961,5.000061035],[0,0,1,0],[- 2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONST robtarget p_4:=[[228.873535156,-399.716796875,5.000366211],[0,0,1,0],[- 1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; PROC main() kolmio; ENDPROC PROC kolmio() MoveJ Koti,v400,z0,t_pencil\WObj:=wobj0; MoveL p_1,v400,z0,t_pencil\wobj:=wobj0; MoveL p_2,v400,z0,t_pencil\wobj:=wobj0; MoveL p_4,v400,z0,t_pencil\wobj:=wobj0; MoveL p_1,v400,z0,t_pencil\wobj:=wobj0; MoveL Koti,v400,z0,t_pencil\WObj:=wobj0; ENDPROC ENDMODULE Ohjelmamodulissa on aina main, eli pääohjelma, minkä robotti suorittaa rivi kerrallaan. Tässä on vain aliohjelmakutsu, kolmio; Rutiini (ohjelma) kolmio sisältää ainoastaan liikekäskyjä. Liikekäsky muodostuu Liiketavasta Paikotuspisteestä Nopeusarvosta, mm/s Tarkkuusarvosta, Zone Käytettävästä työkalusta Käytettävästä koordinaatistosta (Wobj0 = BASE) 2015 - M.Billing - Copyright 42
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 ja käyttäjän 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ä. 2015 - M.Billing - Copyright 43
Ohjelmointi Uuden ohjelman luonti: 1. Tarkista käytettävä työkalu ja koordinaatisto Joggingikkunassa. 1. 2. ABB > Program Editor > Tasks and Programs > File - New, Uusi ohjelma - Load, Avaa ohjelma - Save As, Tallenna nimellä - Rename, Nimeä uudelleen 3. Uusi ohjelma aukeaa main-, eli pääohjelmaan. Avoinna oleva rutiini 3. 2. Ohjelma- ja systeemimodulit Taskit (T_ROB1) ja ohjelmat Käskyjen lisääminen Ohjelman editointi Ohjelman testiajo Ohjelmamodulin rutiinit l. aliohjelmat ja main rutiini Editorin kautta luodaan ohjelma, muokataan ja suoritetaan testiajo. Tässä ikkunassa on tärkeimmät työkalut. 2015 - M.Billing - Copyright 44
Ohjelmointi Ohjelman rakenne Kaikki ohjelmat kannattaa jakaa osiin ja luoda jokaiselle osatehtävälle oma ohjelma. Näitä ohjelmia kutsutaan rutiineiksi ja ne voidaan kutsua toteutettavaksi tarpeen mukaan. Päärutiinissa on ainoastaan aliohjelmakutsuja, joten ohjelman seuraaminen on selkeää. Samankaltaiset toiminnot, kuten tarttujan ohjaus on hyvä tehdä omana rutiinina, jota kutsutaan tarvittaessa. Ohjelmien testiajo voidaan myös suorittaa rutiini kerrallaan. 2015 - M.Billing - Copyright 45
Ohjelmointi Rutiinin lisäys Uusi rutiini lisätään ohjelmamoduuliin Routinesvalikon kautta. Siellä voidaan tehdä uusi, kopioida vanha, siirtää, muuttaa määrittelyä ja nimetä uudelleen, sekä poistaa rutiini. Rutiinin nimeäminen tehdään ABC.. valinnan kautta. Samalla tavalla tehdään kaikki tekstinsyöttö käsiohjaimella. 2015 - M.Billing - Copyright 46
Ohjelmointi Käskyjen lisäys Käskyjen lisääminen tehdään Add Instructionikkunassa. Muuttujan arvon muutos, (laskuri:=laskuri+1) FOR ja IF toisto- ja ehtorakenteet MoveL, MoveJ ja MoveC liikekäskyt Aliohjelman kutsu I/O- komennot, set ja reset DO1_tarttuja Odotuskäskyt ja viiveaika Lista yleisimmistä komennoista aukeaa ja siitä voi valita halutun käskyn. Next- painikkeella vaihtuu seuraava sivu. Common- painikkeesta voi valita useista käskyvalikoista erilaisia komentoja ja funktioita. 2015 - M.Billing - Copyright 47
Ohjelmointi Editointi Ohjelman editointi tehdään Edit- ikkunassa. Leikkaa Kopioi ja liitä Rivin poisto Käskyrivin muokkaus Tekstimuotoinen editointi Liiketavan vaihto Usean rivin valinta Kommentin lisäys Paikotuksen muutos, uudelleenopetus Käskyrivejä voi editoida myös klikkaamalla ko. käskyriviä tai sen osaa. 2015 - M.Billing - Copyright 48
Ohjelmointi LIIKEKÄSKYT Liikekäskyt koostuvat Liiketavan määrittelystä, Joint, Linear, Circular Paikotuspisteestä, [P1], xyz,w,p,r, CONF Liikenopeudesta, mm/s Paikotustarkkuudesta, Z-arvo FINE valittuna robotti ajaa tarkasti pisteeseen ja sitten vasta seuraavalle riville Z- arvo, esim 50 tarkoittaa että TKP oikaisee 50 mm:n etäisyydellä kohti seuraavaa paikotuspistettä. (kts. Seuraava sivu) 2015 - M.Billing - Copyright 49
Ohjelmointi LIIKEKÄSKYT Z (Zone - alue) Robotti ei tavoita kohdepistettä, vaan lähtee Z- arvon etäisyydeltä kohti seuraavaa pistettä. 2015 - M.Billing - Copyright 50
Ohjelmointi LIIKEKÄSKYT 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. MoveJ p1, z0, t_grip MoveJ p2, z0, t_grip Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 2015 - M.Billing - Copyright 51
Ohjelmointi LIIKEKÄSKYT 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. MoveL p1, z0, t_grip MoveL p2, z0, t_grip Source: R-30iA_HandlingTool_Operator_Manual_[B-82594EN-2_01][PRELIM 2015 - M.Billing - Copyright 52
Ohjelmointi LIIKEKÄSKYT MoveL p1, z0, t_grip MoveC p2, p3, z0, t_grip 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. 2015 - M.Billing - Copyright 53
Ohjelmointi Ohjelmadata Dataa käytetään ohjelmassa tarvittavien arvojen säilyttämiseksi. Data jaetaan eri tyyppeihin, jotka kuvaavat datan sisältöä ja sovellusaluetta. Datat löytyvät Program Data- valikosta Datatyyppi: Num Bool Robtarget Tooldata Wobjdata Käyttö: Numeeriset arvot (rekisterit, laskurit) Loogiset arvot (tosi/epätosi, true/false) Paikoitusdata Työkaludata, käytettävien työkalujen määrittelydata Työkohteet, käyttäjän koordinaatistot Datatyyppejä on näiden tavallisimpien lisäksi useita kymmeniä kts. Rapid Reference Guide. Data voidaan määritellä vakioksi (CONST), muuttujaksi (VAR) tai persistentiksi (PERS): Vakion arvo voidaan vaihtaa vain manuaalisesti. Muuttujan arvoa voidaan muuttaa myös ohjelman toimesta, mutta sen alustusarvo asetetaan automaattisesti kun: -ohjelma luetaan disketistä tai vastaavasta -ohjelma aloitetaan alusta, eli päärutiinin ensimmäisestä käskystä Persistentin arvoa ei palauteta alustuksessa, ts. muutettu arvo säilyy vaikka ohjelma käynnistetään uudestaan 2015 - M.Billing - Copyright 54
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. ABB- valikon Inputs and outputs painikkeella pääsee katsomaan tulojen ja lähtöjen tilan, sekä asettamaan ne päälle ja pois. I/O- komennot löytyvät käskylistasta, Set ja Reset. 2015 - M.Billing - Copyright 55
Ohjelmointi Testiajo Ohjelmien testaaminen tapahtuu avaamalla Editointi- ikkunan Debug- painiketta. Viimeinen suoritettu käsky Siirrä suoritusosoitin Siirrä kursori Suoritusosoitin (PP), näyttää seuraavaksi suoritettavan rivin Suorita valitu rutiini Aja valittuun paikotukseen Ohjelman osoitin (PP=Program Pointer) osoittaa käskyn, josta ohjelman suoritus alkaa, kun painetaan FlexPendant-laitteen Käynnistä-, Eteenpäin- tai Taaksepäin- painiketta. 2015 - M.Billing - Copyright 56
Ohjelmointi Testiajo Ohjelman suoritus jatkuu ohjelman osoittimen osoittamasta käskystä. Jos kursori kuitenkin siirretään toiseen käskyyn, kun ohjelmansuoritus on pysäytetty, ohjelman osoitin voidaan siirtää kursorin sijaintiin (tai päinvastoin), jolloin ohjelman suoritus käynnistyy uudelleen tästä kohdasta. Ohjelmat täytyy testata pienellä nopeudella ja askelittain. Näin voidaan varmistua ettei tule yllättäviä törmäyksiä. P2 P2 P1 P1 Askelittain ajossa täytyy huomioida että robotti kulkee kaikki paikotukset FINE:llä, koska joka rivin jälkeen tulee tauko. (Zone- ei toteudu) 2015 - M.Billing - Copyright 57
Ohjelman tallennus ja tulostus Ohjelmat voidaan tallentaa tekstitiedostoksi, joten niitä voi editoida tavallisella tekstinkäsittelyn ohjelmilla. Täytyy kuitenkin huolehtia että ohjelman syntaksi, eli oikeinkirjoitus ja merkit ovat kunnossa, koska ohjausjärjestelmä ei pysty avaamaan viallisia ohjelmia. Käsiohjaimessa on USB- portti, jonka avulla ohjelmat saa tallennettua esim. muistitikulle. Laita muistitikku USBporttiin ABB > Program Editor > Tasks and Programs > File - Save As, Tallenna nimellä Avaa yläkansio Ja valitse USB- asema. Anna ohjelmalle nimi ja paina OK Muistitikulle tallentuu kansio ohjelman nimellä. Avaa MainModule.mod tekstieditorissa, esim. WordPadissa. Käynnistä WorPad- ohjelma ja avaa tiedosto. Valitse avattavaksi tiedostotyypiksi kaikki tiedostot *.* Tai Klikkaa hiiren oikealla tiedostoa ja valitse avaa sovelluksessa.. sitten valitse WorPad. 2015 - M.Billing - Copyright 58
Esimerkkiohjelma MODULE MainModule CONST robtarget Koti:=[[226.261,-320.803,211.901],[-1E-09,-5.8E- 08,1,4E-09],[-1,1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget p_1:=[[226.261108398,- 320.803131104,5],[0,0,1,0],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONST robtarget p_2:=[[107.493164063,- 313.168334961,5.000061035],[0,0,1,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONST robtarget p_4:=[[228.873535156,- 399.716796875,5.000366211],[0,0,1,0],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONST robtarget kotipiste:=[[226.26,-320.80,211.90],[4.99332e-09,- 5.7944E-08,1,-2.37073E-08],[-1,1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PROC main() kolmio; ENDPROC PROC kolmio() MoveL Koti, v400, z0, t_pencil; MoveL p_2, v400, z0, t_pencil\wobj:=wobj0; MoveC p_1,p_4, v400, z0, t_pencil\wobj:=wobj0; MoveL p_4,v400,z0,t_pencil\wobj:=wobj0; MoveL Koti,v400,z0,t_pencil\WObj:=wobj0; Set DO_vacuum_ON; ENDPROC PROC nelio() MoveL kotipiste, v1000, z50, t_pencil; ENDPROC ENDMODULE 2015 - M.Billing - Copyright 59