RobotStudio: tarraimen tekeminen ja käyttäminen

Sakari Koivunen

Päivitetty 27.10.2015

Työkalupisteen määrittämisestä ja työkalun tekemisestä on video-ohje. Kun tarraimella halutaan oikeasti tarttua kappaleisiin, pitää tästä jatkaa vielä eteenpäin SmartComponentien avulla.

SmartComponent on kikkare, jolle voi luoda toiminnallisuutta. Siinä voi olla esimerkiksi antureita ja liikkeitä ja niillä voi olla omia tuloja ja lähtöjä.

Esimerkkisolussa on robotti, lavan kokoinen levy lattialla ja sen päällä pieni laatikko. Robotin työkaluksi on määritetty yksinkertainen putkilo, jossa on työkalupiste päässä.

Työkalu on “Imukuppi” ja sen työkalupiste on “MyNewTool” (käyttäkää itse järkevämpää työkalupisteen nimeä, klikkailin vain oletuksilla). Nosteltava kappale on “laatikko”.

SmartComponentin luominen

  1. Valitse Modeling-välilehdeltä Smart Component
  2. Lisää (add component) seuraavat jutut ja anna LogicGaten tyypiksi NOT (näitä tarvitaan myöhemmin)
  3. Voit vasemmasta rakennepuusta oikealla napilla nimetä SmartComponentin esimerkiksi tarraimeksi (rename)
  4. Katso lisättyjen toimintojen ohjeita tarvittaessa Optimasta löytyvästä ABB RobotStudio user guidesta
  5. Liitä imukuppi-komponentti SmartComponentin alle, eli raahaat sen “tarrain” kohdalle layout-välilehdellä
  6. Nyt imukuppi näkyy kohdan 2 listassa muiden alapuolella other-otsikon alla. Valitse se oikealla napilla ja klikkaa “set as role”
  7. Linesensorin asetus
  1. Linesensor tunnistaa, onko tarraimen edessä kappale ja jos, mikä kappale. Tätä tietoa käytetään tarttumisessa.
  2. Valitse LineSensor layout-välilehdestä vasemmasta reunasta ja oikealla napilla attach to -> imukuppi (tai mikä työkalusi nimi onkin). Tämä liittää sen työkalukoordinaatistoon. Tee sama attacherille ja detacherille. Voit laittaa yes kun kysyy muutetaanko paikka.
  3. Valitse LineSensor oikealla napilla ja properties. Laita testimielessä start kaikki nollille ja end z 500 mm ja radius muutama mm. Apply ja työkalun päästä pitäisi törröttää anturin tunnistusmatkaa kuvaava palkki. Kun robotin liikuttaa niin, että tämä palkki koskee laatikkoon ja painaa active, sensorout syttyy ja sensedpart-kohtaan tulee tunnistetun kappaleen nimi. Se on tässä kuvassa väärin: työkalu tunnistaa itse itsensä. Korjataan se ja yritetään uudelleen: valitse layout-lehdeltä “imukuppi” ja klikkaa oikealla, poista rasti kodhasta “detectable by sensors”. Nyt uudelleen apply ja active-nappia niin sensedpart sanoo “laatikko”, tai minkä kappaleen sitten tunnistaakin työkalun alta.
  4. Anturi toimii. Muuta tunnistusetäisyydeksi esim 3 mm ja laita apply. Linesensor on valmis.
  1. Attacher ja detacher: testaa ne ensin käsin
  1. Attacher->properties. Valitse parentiksi (mihin kappale tarttuu) tarrain/imukuppi. Flange tarkoittaa mihin työkalupisteeseen se sidotaan. Jos on vain yksi työkalupiste, tämä menee automaattisesti oikein. Child tarkoittaa sitä, mihin kappaleeseen tartutaan. Valitse listasta laatikko. Paina apply ja execute (suorittaa tartunnan) ja liikuta robottia: laatikko seuraa perässä. Irrota ote detacherilla->properties ja sieltä child: laatikko, apply ja execute. Nyt ote irtoaa.
  2. Tämä pitää saada toimimaan automaattisesti. Koska tarrain on tarkoitus toimia kaikkien kappaleiden kanssa, pitää child-tieto tulla linesensorilta: kun ollaan kappaleen lähellä, linesensor kertoo mikä kappale on lähellä ja se tieto välitetään attacherille. Detacher taas irrottaa kappaleen kun homma on tullut valmiiksi. Nämä tehdään SmartComponentin signals and connections -välilehdellä. Lisää kuvan mukaiset asiat ja pohdi mitä niillä käytännössä tarkoitetaan.
  3. Nyt signaalit on asetettu. Pitää vielä välittää yksi tieto: linesensorin tunnistama kappale pitää kertoa attacherille ja detacherille. Valitse design-välilehti smartcomponentista ja vedä kuvan mukaisesti yhteys linesensorin tunnistamasta komponentista attacherille ja detacherille
  4. Testaa toiminta: liikuta robotti kappaleen lähelle ja valitse tarrain-smartcomponent oikealla napilla -> properties ja saat SC:n signaalit esiin. Laita diKiinnita päälle. Muut signaalit eivät syty jos kappale ei ole tarpeeksi lähellä tai jos ollaan kokonaan kappaleen sisällä. Kun kappaleen pinta leikkaa linesensorin, diKiinnita sytyttää myös muut signaalit ja kappale liikkuu robotin mukana kunnes sammutat diKiinnita. Jos et tajua miten tämä toimii, palaa aiempiin kohtiin ja pohdiskele mitä eri signaalit voisivat tarkoittaa.
  5. Nyt tarrain toimii!

Tarraimen kytkeminen robottiin

Tarraimella on omat signaalit. Ne pitää johdottaa virtuaalisesti robottiin, jotta tarrainta voi käyttää ohjelmassa. Tarraimen tulona on diKiinnita, jota pitää vastata joku robotin lähtö. Tällä lähdöllä ohjataan tartuntaa. Vastaavasti robotilla voi olla tulo, jonne tarraimen doKiinnitetty kertoo tiedon siitä, onko kappale tarraimessa vai ei.

  1. Luodaan robotille tarvittavat IO-liitynnät. Valitse controller-välilehdeltä configuration editor ja I/O system
  2. Valitse signal-kohta ja paina oikealla napilla IO-listassa, valitse new signal. Tee kuvan mukaisilla asetuksilla kaksi signaalia: tulo diAlipaineOK ja lähtö doImutPaalle. Access level pitää olla all.
  3. Käynnistä ohjain uudelleen ylärivin restart-napista:
  4. Nyt IO-signaalit on luotu ja ne on käytössä kun ohjausjärjestelmä on käynnistetty uudelleen. Ne pitää vielä johdottaa virtuaalisesti smartcomponentiin kiinni: valitse simulation -> StationLogic
  5. Tee signals and connections -kohtaan seuraavat temput: lisää IO-signaalit tänne samoilla nimillä kuin aiemmin ja liitä ne tarrain-SC:hen kiinni connections-kohdassa
  6. Nyt voit testata sitä ohjelmassa:
  1. tee yksinkertainen rata jossa robotti menee kappaleen pintaan tarpeeksi lähelle, laittaa lähdön päälle, nousee pois, palaa takaisin ja ottaa lähdön pois päältä ja ajaa alkuun. Laita zone-arvo tartunta- ja irrotuspisteissä fineksi että tartunta onnistuu kunnolla. Oikealla napilla saa tehtyä SetDO-käskyt listaan kun valitsee insert action instruction.

Tarraimen käyttäminen rapid-ohjelmassa

Rapid on ABB:n robottien ohjelmointikieli. RobotStudiossa on kaksi eri puolta: 3d-simulointi ja rapid-ohjelmonti, ja näiden välillä pitää synkronoida tiedot Syncronize-nappulan avulla joko to rapid (eli 3d-ympäristöstä rapidiin) tai to station (eli rapid-ohjelma 3d-ympäristöön).

  1. Synkronoi tehty ohjelma rapidiin (tätä samaa jippoa tarvitaan myöhemminkin jos opetat lisää pisteitä: testaile miten synkronointi toimii ja koska sitä tarvitaan että saat lisättyä 3d-ympäristössä sopivat pisteet joita tarvitset varsinaisessa ohjelmoinnissa)
  2. Avaa rapid-välilehti ja klikkaa sieltä Path_10 auki
  3. Muuta Path_10 nimeksi ohjelmalistauksessa HaePinosta ja kirjoita uusi ruutini Main, jossa kutsut HaePinosta-rutiinia kuvan mukaan.
  4. F8 tai ylärivin start käynnistää rapid-ohjelmat. Tätä ennen voi klikata ylhäältä apply tai sitten vain vastata myöntävästi kun ohjelma kysyy aktivoidaanko koodimuutokset.
  5. Voit klikata ylhäältä 3d-näkymän auki niin näet missä robotti liikkuu
  6. Nyt käy niin, että ohjelma hyppää väkisin koodinäkymään kun laitat sen käymään: klikkaa vielä koodia oikealla ja ota pois valinta Follow Program Pointer ja yritä uudelleen
  7. Ohjelmassa siis käytetään SetDO-komennolla lähtöjä, syntaksi on helppo ymmärtää yllä olevasta esimerkistä

Työkierron toistaminen laskurilla

  1. Tee ohjelmaan laskuri
  2. VAR num tarkoittaa että luodaan numeerinen muuttuja, annetaan sille nimerksi laskuri ja alkuarvoksi 0.
  3. Pääohjelma voi näyttää esim tältä:

    Laskuri nollataan tässäkin siksi, että aina kun tullaan main-rutiiniin, aloitetaan lasku nollasta.
  4. Nyt pitää vain tehdä pinosta haku ja lavalle vienti kohdalleen
  5. Kun testaat ohjelmaa, saat laskurin näkymään RAPID watch -kohdasta kun lisäät sen nimen kohtaan Name. Tänne voit lisätä tuloja, lähtöjä ja muuttujia seurattavaksi

Pinosta haku

  1. Tutustu manuaalista käskyyn SearchL (lukekaa Optimasta löytyvästä Rapid-syntaksimanuaalista lisätietoa)
  2. Yritä tehdä sillä ohjelma, joka hakee pinosta kuten särmärisolun labrassa tehtiin until-käskyllä
  3. (Jos tuntuu liian kinkkiseltä, pohditaan porukassa lisää ja teen tarvittaessa yksityiskohtaisemman ohjeen, mutta yrittäkää ensin itse)

Lavalle vienti

  1. Tutustu Offs-käskyyn manuaalista ja mieti, miten saat sillä tehtyä lavalle viennin eri pinoihin kun käytössä on laskuritieto siitä, miten mones kappale on menossa