ABB IRB 140 robottisolun käyttöönotto
Mikko Lindholm
Opinnäytetyö Maaliskuu 2011
Kone- ja tuotantotekniikka Kone- ja laiteautomaatio
Tampereen ammattikorkeakoulu
TAMPEREEN AMMATTIKORKEAKOULU Kone- ja tuotantotekniikka
Kone- ja laiteautomaatio
Tekijä Lindholm, Mikko
Työn nimi ABB IRB 140 robottisolun käyttöönotto Sivumäärä 69 sivua + 19 liitesivua
Valmistumisaika Maaliskuu 2011
Työn ohjaaja Yliopettaja, TkL Olavi Kopponen
Työn tilaaja TAMK, Laboratorioinsinööri Seppo Mäkelä
Tiivistelmä
Tämän opinnäytetyöni tavoitteena oli saada Trimaster OY:ssä ollut, solustaan purettu robotti käyttökuntoon Tampereen ammattikorkeakoulun opiskelijoiden robotiikka- harjoituksia varten. Työhön kuului robotin saaminen käyttökuntoon ja robottisolun muuttaminen opiskeluympäristöön sopivaksi.
Työni on kaksiosainen. Ensimmäisessä osassa on teoriaosuus, jossa käsitellään robo- tin ohjelmoinnissa käytettyjen käskyjen-, ja ohjelman rakennetta. Osiossa myös pe- rehdytään niiden käyttämiseen esimerkkien avulla. Liikekäsky on purettu auki muo- tokielen muodossa, jolloin siitä näkee kuinka robotti käsittelee käskyä ja minkälai- nen on käskyn rakenne ohjelmoinnissa käytettyjen parametrien osalta.
Työni toisessa osassa on käsitelty robotin käyttöönoton aikana tekemiäni muutoksia ja ongelmia työni aikana. Suurimmat ongelmat koskivat robotin turvallista käsittelyä ja robottisolusta poistettujen ominaisuuksien aiheuttamia muutoksia.
Avainsanat ABB, robotti, käyttöönotto, robotiikka
TAMK UNIVERSITY OF APPLIED SCIENCES Mechanical and industrial engineering
Machine automation
Writer Mikko Lindholm
Thesis Introduction of ABB IRB 140 robot cell Engineering thesis 69 pages + 19 appendices
Graduating time April 2011 Thesis supervisor Olavi Kopponen
Co-operating Company Tampere University of Applied Sciences
Abstract
The target of my master’s thesis was to build working robot cell for the students to practice with. The robot was disassembled and needed some changes. The main changes to the robot cell were building new tools, adding some safety equipment and removing unnecessary parts. Finally the robot cell was suitable to the studying envi- ronment.
My thesis is in two parts. The first part is a theory, which deals with the program- ming of the robot, and the structures of commands and program used. The section also focuses on their use through examples and one of the main move commands is opened as syntax. It gives the opportunity to see how the robot handles the com- mands.
The second part of my work deals with the changes to the robot and problems that occurred during the process. The main problems occurred in robots safe handling and the changes that occurred while editing the robot cell.
Keywords ABB, robot, robotics, introduction
Symboliluettelo
I/O In/Out Put Sisä/ulos tulot DI Digital input Tulo
DO Digital output Lähtö
o Asteen merkintätyyli
Sanasto
Resistiivinen kosketusnäyttö
Resistiivinen kosketusnäyttö on tarkempi kuin kapasitiivinen, mutta ei mahdollista moni kosketusta. Lisäksi resistiivistä kosketusnäyttöä voidaan käsitellä myös hanskat kädessä tai kynsillä, kun taas kapasitiivinen tarvitsee ihokosketuksen tai erillisen ohjaintikun.
Servo
Asemointiin tarkoitettu toimilaitteen ohjauspiiri, jossa on takaisinkytkentä asema- anturiin. Mitä kauempana servo-ohjattu laite on tavoiteasemasta, sitä suuremmalla voimalla se pyrkii siihen.
Syntaksi
Lauseoppi, johon sisältyy varattujen sanojen tunnistus.
Alkusanat
Opinnäytetyön tekeminen Tampereen ammattikorkeakoululle oli minulle luonnolli- nen valinta, koska sain mielenkiintoisen ja haastavan aiheen. Aihe oli minulle henki- lökohtaisesti kiinnostava, koska olen ollut aina kiinnostunut tekniikasta ja nyt pääsin suoraan tutustumaan robottiin alusta alkaen. Suuret kiitokset Tampereen ammatti- korkeakoulun osaaville opettajille, Trimaster OY:lle ja ABB:n Juha Mainiolle, joilta kaikilta sain tukea ja inspiraatiota.
25.03.2011 Mikko Lindholm
Sisällysluettelo
Johdanto ... 9
2. Robottijärjestelmä ... 10
2.1 Robotti IRB-140 ... 11
2.1.1 Tekniset tiedot Irb-140 ... 13
2.2 Ohjausmoduuli ... 14
2.2.1 Käsiajotila ... 15
2.2.2 Testaustila (100% nopeus)... 16
2.2.3 Automaattiajotila (tuotantotila) ... 17
2.2.4 Liitännät ja käyttöpainikkeet... 19
2.3 Käsiohjain ... 21
2.4 Robotin käsiajo ... 24
2.4.1 Lineaarinen käsiajo ... 26
2.4.2 Askellusliike (inkrementti) ... 27
3. Ohjelmointi ... 29
3.1 RAPID-ohjelmointi ... 29
3.1 Varatut sanat ... 31
3.2 Ohjelman rakenne ... 32
3.2.1 Pääohjelma ... 33
3.2.2 Aliohjelma... 33
3.2.3 Ohjelmadata ... 34
3.2.4 Käskyt ... 34
3.2.5 Modulit ... 34
3.2.6 Järjestelmämoduuli ... 35
3.2.7 Ohjelmamoduuli ... 35
3.5 Ohjelman lataaminen ... 36
3.5.1 Ohjelman lataaminen vaiheittain ... 36
4 Datatyypit ... 39
4.1 Muuttuja ... 39
4.1.1 Muuttujan ominaisuudet ... 40
4.1.2 Muuttujan määrittely ... 40
4.1.3 Muuttujan arvojen antaminen ... 40
4.2 Pysyvä muuttuja ... 41
4.2.1 Pysyvän muuttujan määrittely ... 41
4.3 Vakio ... 42
4.3.1 Vakioarvon käyttö ... 43
5. Käskyjen rakenne... 44
5.1 Liikekäskyn rakenne ... 44
5.1.1 Termien selitykset ... 45
6 Käyttöönotto ... 48
6.1 Robottisolun kokoaminen ... 49
6.2 Työkalunvaihtaja ... 52
6.3 Työkalut ... 53
6.3.1 Kaksoistarrain ... 53
6.3.2 Kääntyvätarrain ... 55
6.3.2 Työkalunvaihtajan teline ... 57
6.3.3 Paineilmaliitännän lisääminen ... 58
6.4 Turvaratkaisut ... 61
6.4.1 Valoverho... 61
6.4.2 Turvarele ... 62
6.4.3 Ovien rajakytkimet ... 63
6.5 Robotin ohjelmiston päivittäminen ... 64
7 Havaintoja ja ongelmia ... 65
8 Yhteenveto ... 67 Lähteet ... 68 Liitteet ... 69
Johdanto
Tämän opinnäytetyön tarkoituksena oli ottaa käyttöön Tampereen ammattikorkea- koulun robottiluokassa sijaitseva ABB-robotin robottisolu. Solu oli alun perin käy- tössä messuesittelyissä ja se muokattiin opetuskäyttöön sopivaksi.
Alkuperäisessä sovelluksessa robotti poimi hihnakuljettimelta muistitikun, siirsi sen lasertulostinyksikköön, jossa siihen tulostettiin asiakkaan haluama teksti. Tämän jälkeen muistitikku otettiin lasertulostusyksiköstä pois ja siirrettiin asiakkaan otetta- vaksi. Kappaleen paikantaminen kuljetinhihnalta toteutettiin konenäköohjelmiston ja pulssianturin avulla.
Aikaisempaan kokoonpanoon jouduttiin tekemään huomattavia muutoksia, mm. ko- nenäkö ominaisuuden poisjättämisen ja robotin työkalujen muuttamisen takia. Myös robottisolun rakenteita muutettiin huomattavasti.
Robottijärjestelmää tullaan käyttämään opetustarkoituksessa, laboratoriotöiden yh- teydessä.
2. Robottijärjestelmä
Robottijärjestelmä on kokonaisuus, jossa robotti poimii tasolta tai kuljettimelta kap- paleita ja siirtää ne haluttuun paikkaan. Tätä kokonaisuutta on mahdollista tulevai- suudessa laajentaa toisella robotilla tai muilla laitteilla. Tässä opinnäytetyössä robot- ti toimii omana yksikkönään kappaleenkäsittelijänä joka poimii kappaleita kuljetti- melta palettiin erilaisten vaihdettavien työkalujen avulla.
Robotissa on käytössä kaksi erilaista paineilmakäyttöistä tartuntatyökalua, joiden avulla saadaan toteutettua kappaleiden siirtäminen erilaisiin asentoihin ja paikkoihin harjoitustöiden vaatimalla tavalla. Järjestelmää on mahdollista laajentaa myös ko- nenäköominaisuudella, mutta järjestelmän laajuuden takia se jätettiin tästä opinnäy- tetyöstä pois. Kappaleiden ominaisuuksien ja paikkatiedon määrittämiseksi järjes- telmään voidaan kehittää lisäämällä erilaisia kappaleen ominaisuuksia tai paikkaa ilmaisevia antureita, mutta ne jätettiin tuleviin kehityshankkeisiin toteutettavaksi.
Kuvio 1. R
Robottijärj jain ja tiet Ohjainyks tuskäyttöä erilaista pa tavaroita k
2.1 Robo
IRB-140 ( akselinen
Robottijärje
rjestelmä ko tokone.
sikkö ja tieto ä varten tähä aineilmakäy kuljettimelta
otti IRB-14
(Kuvio 2) o robotti. Ro
estelmä
oostuu neljä
okone sijait än robottiin yttöistä tartu a tai tasolta
40
on ABB:n obottia valm
ästä osasta (K
tsevat sivum n hankittiin t
untatyökalu .
toiseksi pie mistetaan sek
Kuvio 1): R
mmalla, eivä työkalunvai ua joiden av
enin kappa kä viiden, e
Robotti, ohja
ätkä siksi nä ihtaja ja rak
ulla robotti
leen käsitte että kuuden
ainyksikkö,
äy Kuviossa kennettiin ka pystyy poim
elyyn tarko n kilogramm
käsioh-
a. Ope- aksi
mimaan
itettu 6- man nos-
tokyvyllä.
kaikkia ak sulavat liik paikkapist Robotille määrätyss oikeaa ty syöttämäll jolloin rob Nämä paik sä.
Kuvio 2. A
Koululle kseleita voi kkeet. Robo te muuttama voidaan m ä järjestyks ökalua mää lä ne käsin, botti ajetaan kkapisteet t
ABB IRB-1
hankitun ro daan liikutt ottia voidaa alla XYZ-k myös opetta sessä. Tässä ärityksissä , RobotStud n haluttuun a
tallentuvat o
140 robotti
obotin nost taa samaan an ajaa käsi koordinaattej
aa reittipiste ä tapauksess kolarin vä dio ohjelma asentoon ja ohjelmadata
tokyky on aikaan. Tä ajolla joko ja.
eet (flyby), sa on kuiten älttämiseksi an avulla tai
paikkaan s aan ja ovat
kuusi kilo ämä mahdo akseli kerra
joiden kau nkin huomi . Pisteet v i käyttämäl ekä tallenne
kaikkien ru
ogrammaa.
ollistaa teho allaan tai an
utta robotti ioitava, että voidaan ohj llä opetusto etaan paikk utiinien käy
Robotin kkaat ja ntamalla
i kulkee ä käyttää
elmoida imintoa, apiste.
ytettävis-
2.1.1 Tekniset tiedot Irb-140
Vapausasteita: 6 (Kuvio 3) Suurin kuormitettavuus: 6 kg Toistotarkkuus:0.03mm Ulottuvuus: 810 mm Maksiminopeus: 2500
s mm
Liikeradat:
1-akseli 360o 2-akseli 200o 3-akseli 280o 4-akseli 400o 5-akseli 240o 6-akseli 800o
Paino: käsivarren 98 kg ja koko yksikön 250 kg IP luokitus: 67
Käyttölämpötila: 5-45oC Käyttökosteus: 95 % Maksimi kiihtyvyys: 20 2
s m
Kiihtyvyysaika 0-1 s
m: 0.15 s Verkkojännite 400 AC
Muuntaja 260 VAC
Tasasuuntaaja 260 VAC ja 370 VDC Virtalähde 370 VDC
Robottimoottoreiden virtalähde 370 VDC
Kuvio 3. R
2.2 Ohja
Ohjausmo nen roboti lähetetään olevassa k millä vaih siajotila, t
Robotin vap
usmoduul
oduuli on ro in ohjaus. T n ohjainyksi
kaapissa. Oh hdetaan ohja
estaustila ja
pausasteet
li
botin ohjau Tietokoneell kölle, jonne hjausmoduu ausyksikön t a automaatti
usyksikkö (K la tai käsioh e ne tallentu ulin etupane tilaa. Käyte iajotila.
Kuvio 4). T hjaimella teh
uvat. Ohjaus eelissa on tä ettävissä ova
ässä osassa hdyt ja muo smoduuli sij ärkeimmät p
at seuraavat
tapahtuu va okatut ohjelm
ijaitsee robo painikkeet ja
t kolme tilaa arsinai- mat otin alla
a avain, a: Kä-
Kuvio 4. R
2.2.1 Käsi
Käsiajotila (25% mak Käsiajotila tään ohjelm
Kuvio 5. K
Robotin ohj
iajotila
assa robotti ksimi nopeu a valitaan o mien luomi
Käyttötapak
jausyksikkö
voi liikkua udesta).Täss hjainyksikö seen ja robo
kytkin ö
a vain käyttä sä tilassa kä ön käyttötap
ottijärjestelm
ämällä alenn yttö tapahtu pakytkimest mä käyttöön
nettua ja tur uu ainoastaa tä (Kuvio 5) nottoon.
rvallista nop an käsin ohj
). Käsinajoa peutta jaten.
a käyte-
Robotin se laa käytetä
Käsiajotila - Peruuttaa - Muuttaa - Luoda ja - Muuttaa /1, s 43/
Kuvio 6. S
2.2.2 Test
Täyden no sa, verrattu poinen rob taan ohjain
ervomootto ään useimm
assa voidaa a robottia o I/O-signaal a editoida R
ohjelmoitu
Sallintakytk
taustila (10
opeuden käs una käsiajo botin ja käsi
nyksikön kä
rit aktivoida miten ohjelm
n:
hjelmapolku lien arvoja v RAPID-ohjel
ua paikkapis
kin (”kuolle
0% nopeus
siajoa käyte tilan norma ittelylaitteen äyttötapaky
aan painam maa luotaess
kua pitkin hä vikatilantei lmia steitä
een miehen k
s)
etään ohjelm aaliin alenne n välistä sy ytkimestä (K
malla sallinta sa ja robottij
ätäseis-tilan den jälkeen
kytkin”)
man testaam ettuun nope nkronointia Kuvio 7)
akytkintä (K järjestelmän
nteen jälkeen n
miseen luonn uteen. Täm a testatessa.
Kuvio 6). Kä n käyttööno
n
nollisessa til mä tila on kä
Testaustila
äsiajoti- otossa.
lantees- yttökel- a vali-
Testaustila tama virhe VAARA Testaamin ihmisiä kä ynnä muut
Kuvio 7. T
2.2.3 Auto
Automaatt ilman ihm tilassa. Ro jaimen I/O ohjelman, otetaan kä Automaatt kimiä turv loissa. /1,
assa voi aja eiden poisto
nen täydellä äynnistäessä
t eivät ole k
Testaustilan
omaattiajo
tiajossa sall misen ohjaam
obottijärjest O signaaleja
aktivoida r äyttöön valit
tiajotilassa vallisuuden
s.44/
aa täydellä n omahdollisu
ä nopeudella äsi ohjelman käytössä ohj
n valinta
tila (tuotan
lintakytkin ( mista. Tuota elmää voida a. Tulosigna robottijärjes tsemalla käy käytetään m lisäämiseks
nopeudella j uus, mitä tuo
a on vaarall n. Ulkoiset hjelman suor
ntotila)
(Kuvio 6) o annossa rob
aan ohjata k aali voi esim stelmä moot
yttötapakyt monia lisätu si. Nämä lis
ja käytössä otantotilassa
ista. Varmis turvalaittee rittamisen a
on toimeton ottijärjestel kauko-ohjau merkiksi käy ttoreita, ja n kimestä tuo urvalaitteita, säturvalaitte
on myös oh a ei ole.
sta, että turv et, kuten val aikana. /1, s
, jolloin rob mä toimii y uksella, esim ynnistää tai niin edespäin otantotilan a
, kuten valo eet eivät ole
hjelmaeditor
va-alueella loverho, ovi
. 43/
botti voi liik yleensä auto m. käyttämä pysäyttää R n. Tuotanto asento (Kuv overhoa ja ra
käytössä kä rin an-
ei ole irajat,
kkua omaatti-
ällä oh- RAPID- otila vio 8).
ajakyt- äsiajoti-
Rajoituks Käsiajo ei Automaatt
VAARA!
Automaatt Varmista
Kuvio 8. T sia
i ole mahdo tiajossa voi
- Käy
- Lad
- Peru
- Otta - Pala
- Puh
- Valm
- Suo
titilassa rob a, että turva
Tuotantotila
llinen autom daan:
ynnistää ja p data, käynnis uuttaa robot aa järjestelm auttaa varmu distaa työka mistella ja v rittaa muita
botti voi liik a-alueella e
an valinta
maattitilassa
pysäyttää pr stää ja pysä ttia ohjelma mästä varmu uustallennu aluja vaihtaa työk a prosessiin
kkua ilman e ei ole ihmisi a.
rosesseja äyttää RAPI apolkua pitk uustallennuk uksia
kohteita liittyviä teh
ennakkovar iä
D-ohjelmia kin hätäseis-
ksia
htäviä
oitusta a
-tilanteen jäälkeen
2.2.4 Liitännät ja käyttöpainikkeet
Ohjausyksikössä löytyvät seuraavat kytkimet ja käyttöpainikkeet (Kuvio 9):
1. Päävirtakytkin
- Tästä kytketään robottiin virrat päälle
2. Hätäseis nappi
- Hätätilanteessa robotin saa pysäytettyä
3. Kuittausnappi
- Kuitataan, että kaikki on valmista automaattiajoa varten
4. Valintakytkin
- Kytkimestä valitaan haluttu käyttötapa kolmesta eri vaihtoehdosta. Vaih- toehdot ovat käsiajo, käsiajo tuotantonopeudella ja automaattiajo
5. USB-liitin
- varmuuskopioiden ottamista ja ohjelmien siirtämistä varten
6. ”Service pc” ethernet liitin,
- Liitetään robotti online-ohjelmointia varten tietokoneeseen. Tämän liitän- nän kautta myös Picmaster konenäköohjelma käsittelee ja antaa komento- ja robotille. /1, s. 4/
Kuvio 9. L
Kuvio 10.
Robotti on nikkeen av taa hankal nettaessa o putoamaan
Liitännät ja
. Robotin ja
n myös varu vulla voidaa laan asentoo on huomioit n. Pudottam
käyttöpaini
arrujen vapa
ustettu jarruj an vapauttaa on jumittune tava, että ro minen voi aih
ikkeet
autus
ujen vapautu a robotin ka een robotin obotin käsiv heuttaa hen 1. Pä 2. Hä 3. Ku 4. Va 5. Me 6. US 7. Ve
us painikkee aikkien akse n liikuttamis
vartta ei saa nkilö tai kalu
äävirtakytk ätäseis kyt uittausnapp alintakytkin
erkkivalot SB-liitin erkkoliitin
ella (Kuvio elien jarrut.
en lihasvoim päästää hal ustovahinko
in kin pi n
10). Tämän Tämä mah milla. Napp llitsemattom oja. /1, s. 1
n pai- hdollis-
pia pai- masti
13/
2.3 Käsiohjain
Ohjausyksikköön liitettiin myös käsiohjain, eli kädessä pidettävä opetusyksikkö (Kuvio 11). Ohjaimessa on suurikokoinen resistiivinen kosketusnäyttö (Kuvio 12) jonka avulla pystytään määrittämään tai muuttamaan robotille ohjelmoituja paikka- pisteitä. Ohjaimessa on myös kolmisuuntainen ohjainsauva (Kuvio 12), jonka avulla voidaan ohjata robottia manuaalisesti ja samanaikaisesti useiden akselien liikettä.
Käsiohjainta käytetään muun muassa paikkapisteiden määrittämiseen, robotin liike- ratojen ja ohjelman toimivuuden testaamiseen, tarvittaessa virhetilanteiden korjaami- seen suoraan robotin vieressä. Tällainen tilanne on esimerkiksi vuorovaikutteinen ohjelman kierto. Tällöin käsiohjaimen näytön avulla tiedustellaan operaattorilta, montako kappaletta tuotetaan. Käsiohjain on erityisesti kätevä silloin, kun tarvitsee päästä kohteen lähelle tarkkailemaan samalla kun ohjataan robottia. /1, s. 8/
Käsiohjaimella tapahtuvaa robotin ajoa varten tulee avain kääntää ohjainyksikössä käsiajotilaan asentoon (Kuvio 5) Tämän lisäksi tulee ohjaimesta painaa kolmiasen- toinen sallintakytkin (Kuvio 6) keskiasentoon, jolloin servot käynnistyvät. Sallinta- kytkin on robottia ohjattaessa pidettävä jatKuviosti keskiasennossa, koska muuten robotin servot sammuvat. Sallintakytkin on varotoimenpide, jolla estetään ohjaavan henkilön puristumien robotin ja jonkin rakenteen väliin. Samalla varmistetaan se, että robotti ei liiku vahingossa painettaessa laitepainikkeita (Kuvio 12).
Lisäksi ohjaimesta löytyy neljä esiohjelmoitavaa nappia, joilla saa valittua lähtöjä päälle tai pois. Näitä nappeja on kätevä käyttää mm. kappaleiden noukkimiseen oi- kean paikkapisteen löytämiseksi (Kuvio 13). /2, s. 44/
Kuvio 11.
Kuvio 12.
A Ohjausy B Resistiiv C Hätäseis D Kuollee E Kolmisu
. Käsiohjain
. Ohjausyks
yksikön liiti vinen koske s kytkin enmiehen ky
uuntainen o n
sikön laitepa
in
etusnäyttö
ytkin hjaussauva
ainikkeet
Kuvio 13.
A-D E F G H
Ohjelmoit neeli välil määrittää n mä.
Mikäli val (Kuvio 14 1. Va
‐
2. As
‐
. Ohjausyks
Ohjelmo Aja pain Askellu Askellu Seis pai
tavien pikap ehdeltä. Leh neljälle pik
litaan tyypik 4):
aihto Vaihtaa si
seta arvoksi Asettaa lä
sikön ohjelm
oitavat pika nike
us eteen us taakse
inike
painikkeiden hdeltä valita anäppäimel
ksi lähtö, vo
ignaalin arv
1
hdölle arvo
mapainikkee
apainikkeet
n määrittäm aan ohjelmo lle haluttu ty
oidaan valit
von toiseksi.
on 1
et
1-4
minen tapaht oitavat näpp yyppi: Ei m
ta seuraavis
. Esim. 1
tuu ABB va päimet valik mitään, tulo,
ta tapahtum
0
alikon Ohjau kko, jossa v
lähtö tai jär
mavaihtoehd uspa- voidaan
rjestel-
doista
3. As
‐
4. Pa
‐
5. Pu
‐
Kuvio 14.
2.4 Robo
Robottia v oikealla kä 16.
Käsiajo ta misuuntai samanaika liikelinjoin
seta arvoksi Asettaa lä
aina/Vapauta Painettaes antaa arvo
ulssi
Signaalin
. Pikanäppä
otin käsiajo
voidaan ohja ädellä. Oike
arkoittaa rob sella ohjaus aisesti kun r na, esimerk
0
hdölle arvo
a
ssa vaihtaa s on 0).
arvo tekee y
äinten ohjelm
o
ata ohjausyk eanlaiset oh
botin tai ulk ssauvalla. K robotti suori kiksi lineaari
oksi 0
signaalin ar
yhden pulss
mointi
ksikön avul hjausyksikön
koisten akse Käsiajo on m
ittaa ohjelm iliikkeenä p
voksi 1 (Hu
sin
lla pitämällä n käsittelyo
lien ohjaam mahdollista v maa. Yleensä paikkapistee
uomioi, että
ä sitä joko v otteet näkyv
mista ohjausy vain käsiajo ä käsiajo su estä A paikk
ä invertoitu
vasemmalla vät kuvioista
yksikön kol o–tiloissa, m uoritetaan su
kapisteeseen
signaali
a tai a 15 ja
l- mutta ei
uorina n B.
Lineaarilii käyttäjä-, tyy valitta Voit myös kaan kohd tiedot, mik HUOM!
Robotin li ma ohjaa r den paikka seksi. /1, s
Kuvio 15.
Kuvio 16.
ike suhteutu ohjelmasiir avan tehtävä s liikuttaa ro distu mihink
kä voi vaiku
iikerata käsi robottia käy apisteen väl s. 15/
. Ohjausyks
. Ohjausyks
uu valittava rros tai kohd än mukaises
obottia yksi kään koordin
uttaa myöhe
iajossa ei ol yttämään no lillä. Tämä
sikön pitämi
sikön pitämi
aan koordina dekoordinaa sti. /2, s. 42/
i akseli kerr naatistoon.
empiin toim
le yleensä s opeinta ja ly
on huomioi
inen vasem
inen oikeall
aatistoon (m atisto). Vali
/
rallaan. Aks Tällöin men mintoihin.
ama kuin oh yhintä suora
itava mahdo
malla kädel
la kädellä
maailma-, ty ttava koord
eli kerrallaa netetään työ
hjelman ohj aa tai kaarev ollisia törmä
llä
yökalu-, peru dinaatisto m
an liike ei k ökalun kohd
jaama rata.
vaa liikerata äyksien vält
us-, määräy-
kuiten- distus-
Ohjel- aa kah- ttämi-
2.4.1 Lineaarinen käsiajo
Valittu liike ja/tai koordinaatisto määrittää robotin liikkeet.
Lineaariliikkeessä työkalupiste liikkuu suoria viivoja pitkin avaruudessa esimerkiksi pisteen A ja B välin. Työkalupiste liikkuu valitun koordinaatiston akselien mukaises- ti. /1, s. 16/
A mekaanisen yksikön valinta painike B Valittu mekaaninen yksikkö
C Liiketavan asetukset D Työkaluasetukset E koordinaatisto asetukset
Kuvio 17. Liiketavan valinta B A
C D E
F
Ohjaussau toina ovat 1. ak 2. ak 3. Lin 4. Uu
Kuvio 18.
Ohjaussau jälkeen. H sikön liike ussauvan l 17/
2.4.2 Aske
Askellusli käännetää netään sek kauan kuin tulee osum
uvan toimin (Kuvio 18) selit 1-3 selit 4-6 neaarinen udelleen ori
. Liikuteltav
uvan liikkeid Huomioi kui
esuuntaa. V liikkeitä, va
ellusliike (i
iikettä voida än, robotti si
kunnin tai p n ohjaussau ma rakenteis
ta määräyty ):
entointi
vien akselie
den toimint tenkin, että armista aina armistaakse
inkrementt
aan käyttää iirtyy yhden idempään, n uvaa pidetää
siin. /1, s. 19
yy valitun li
en valitsemi
ta näkyy ikk ohjaussauv a liikesuunn si mekaanis
ti)
robotin pai n askeleen ( niin robotti än käännetty
9/
iiketavan m
nen
kunassa ohja van suunta e
nan oikeelli sen yksikön
kantamisee inkrementti askeltaa (1 ynä, robotin
ukaan (Kuv
aussauvan s ei aina vasta suus käyttä n todellisen l
n. Aina kun i). Mikäli oh
0 askelta se n liikerata sa
vio 17). Vai
suunnat val aa mekaanis ämällä lyhyi
liikesuunna
n ohjaussauv hjaussauvaa ekunnissa) n aavuttaa raj
ihtoeh-
linnan sen yk- itä ohja- an. /1, s.
vaa a kään- niin
ansa tai
Kuvio 19.
Käytössä o
Askelko
Pieni Keskisu Suuri Käyttäjä lemä
. Inkrement
olevat askel
oko
uuri
än määritte it
lkoot liittye
Matk (mm 0,05 1 5
e- 0,5-
en kuvioon
ka m)
K
5 0
0 0
10,0 A
U 0
19.
Kulmaliike
0,005 0,02 0,2
Akselit 0,01
Uudelleen 0,50
(astetta)
1-0,20
orientointi 0,03-
3. Ohjelmointi
Tässä kappaleessa käsitellään Rapid-ohjelmointiin liittyvää ohjelmarakennetta. Ra- kenteeseen kuuluu oleellisesti varattuja sanoja, joita ei tule käyttää ohjelman osien nimeämiseen. Lisäksi käsittelen muita robotin ohjelmoinnin mahdollistavia ohjelmia ja niiden puutteita verrattuna RAPID editoriin.
3.1 RAPID-ohjelmointi
Mikäli haluat tietokoneen tekevän jotain, tarvitaan ohjelma. RAPID on ohjelmakieli, kuten C-kieli, joita käytetään ohjelman kirjoittamiseen. Tietokoneen perusohjelma sisältää vain ykkösiä ja nollia. Tätä ohjelmatyyppiä on ihmisten mahdotonta ymmär- tää. Tämän vuoksi tietokoneiden ohjelmoinnin helpottamiseksi on kehitetty erilaisia korkeantason ohjelmointi kieliä. RAPID on yksi tällainen korkeantason ohjelmointi- kieli. Se sisältää joitakin englanninkielisiä sanoja, kuten (IF ja FOR), jotta siitä on saatu helpommin ymmärrettävä. /3/ s.11
RAPID ohjelmointia on mahdollista tehdä usealla eri ohjelmalla. Kaikkein helpointa se on RobotStudion liitetyllä RAPID Editor nimisellä ohjelmaeditorilla. Tätä käytet- täessä editori näyttää esimerkiksi MoveL käskyn jälkeen sallitut lisäkomennot (Ku- vio 20). Toinen yksinkertainen tapa muokata ohjelmaa on käyttää käsiohjaimen oh- jelmaeditoria (Kuvio 21), jolloin ohjelma itsessään pitää huolen muotokielen oikeel- lisuudesta.
Molemmat ABB:n ohjelmaeditorit ehdottavat seuraavaa käskyyn liittyvääparamet- ria, mitä tarvitaan käskyn suorittamiseen ja sisältävät myös virheenkorjaus toimin- non, joka näyttää missä kohdassa ohjelmaa on muotokielen (syntaksin) vastainen osa.
RobotStudiota käytettäessä on myös mahdollista simuloida robotin toimintaa ja liik- keitä kuten myös tehdä törmäystarkastelu, mikäli ohjelmaan on tuotu esimerkiksi
autocad:ill simuloinn RobotStud ollaan yht on aktivoi män omin jelmoinnin Ohjelmia Notepad. T ohjelmoin tieditoriss ohjelmia, j arvoja mu
Kuvio 20.
lä tehtyjä ka nin ja työkie
dion avulla eydessä eth itu kyseinen naisuuden m n, ilman että on mahdoll Tällöin pitä ntikieltä ymm
a. Notepad jossa useiss uutellaan. /5
. RAPID Ed
appaleita. T rron hiomis on myös m hernet yhtey n ominaisuu maksua vasta
ä operaattor ista kirjoitta ää olla tarkk
märtävää vi on hyvin su sa soluissa k
/
ditor
Tämä mahdo sen mahdoll mahdollista te
yden avulla.
us. Jokaiseen aan käyttöön ri on fyysise aa ja muoka kana tekstin irheenkorjau uosittu tapa käytetään sa
ollistaa tuot lisimman hy ehdä Online Tämä kuite n ABB:n va n. Online-o esti läsnä ro ata myös pe muotopuol usta ei ole k
editoida yk aman ohjelm
annon koko yväksi.
e ohjelmoin enkin edelly almistamaan hjelmointi m obotin luona erustason tek
esta (syntak käytettävissä ksinkertaisia man pohjaa
o prosessiva
ntia, eli robo yttää, että ro n robottiin s mahdollista a.
kstieditorill ksi), koska R
ä normaalis a kappaleen ja vain joita
aiheen
ottiin obottiin saa tä- aa oh-
la kuten RAPID ssa teks- n siirto-
akin
Kuvio 21.
3.1 Vara
Alla oleva telmässä. N käyttää ide Listassa on funktioille sanojen kä he- tai jop
. Käsiohjaim
tut sanat
aan listaukse Niillä on er entifioimise n myös jouk e ja ohjeille
äyttäminen pa vaaratilan
men ohjelm
een on kerä rityinen tark een.
kko ennalta . Näitä ei sa muissa, kui nteita ohjelm
maeditori
ätty sanat, jo koitus RAPI
a määrättyjä aa missään t in sanoille t maa suoritet
otka ovat va ID ohjelmoi
ä nimiä eri d tapauksessa tarkoitetuiss ttaessa. /4, s
arattuja robo intikielessä,
datatyypeille a käyttää nim
sa toiminnoi s. 17/
otin ohjausj , eikä niitä s
e, systeemi meämiseen.
issa, aiheutt ärjes- saa
datalle, Näiden taa vir-
ALIAS AND BACKWARD CASE
CONNECT CONST DEFAULT DIV
DO ELSE ELSEIF ENDFOR
ENDFUNC ENDIF ENDMODULE ENDPROC
ENDRECORD ENDTEST ENDTRAP ENDWHILE
ERROR EXIT FALSE FOR FROM FUNC GOTO IF
INOUT LOCAL MOD MODULE
NOSTEPIN NOT NOVIEW OR
PERS PROC RAISE READONLY
RECORD RETRY RETURN STEP
SYSMODULE TEST THEN TO
TRAP TRUE TRYNEXT UNDO
VAR VIEWONLY WHILE WITH
XOR
3.2 Ohjelman rakenne
Ohjelma koostuu robottia ja oheislaitteita määrätyllä tavalla ohjaavasta RAPID- kielellä ohjelmoiduista käskyistä ja datasta.
Ohjelma muodostuu yleensä neljästä erilaisesta osasta (Kuvio 22):
Päärutiini (pääohjelma)
Useita alirutiineja (aliohjelmia) Ohjelmadata
Järjestelmämoduleista
Kuvio 22.
3.2.1 Pääo
Ohjelman yksinkerta Tällöin oh Päärutiini
3.2.2 Alio
Aliohjelm osiin, jollo taan pääru man suorit
. Ohjelman
ohjelma
suoritus alk aisena ja hel hjelmaa on y
koostuu us
ohjelma
maa käytetää oin muodos utiinista tai m
tus palaa ku
rakenne
kaa aina pää lposti luetta yksinkertais eista alirutii
än ohjelman tuu helposti muista aliru utsuneen rut
ärutiinista. P avana, eli te
sempi lukea ineista, jotk
n jakamiseks i luettava m utiineista. K tiinin seuraa
Päärutiini o hdä kaikki a ja muokata ka vastaavat
si pienempi modulaarinen Kun rutiini o
avaan käsky
n hyvä pitä ohjelmat ain a virhetilant t robotin työ
in ja helpom n ohjelma. A n suoritettu yyn.
ää mahdollis na alirutiine teiden sattu ökiertoa.
mmin luetta Alirutiineja u loppuun, o
simman eiksi.
uessa.
aviin a kutsu- ohjel-
3.2.3 Ohjelmadata
Dataa käytetään sijaintien, numeraalisten arvojen (rekisterien, laskurien, ym.), koor- dinaattijärjestelmien, jne. määrittämiseen. Dataa voidaan muuttaa manuaalisesti, mutta se voi muuttua myös ohjelman toimesta (esimerkiksi laskurit). Datatyyppejä on useita, joista tärkeimmän esittely kappaleessa 3.3 Datatyypit.
3.2.4 Käskyt
Käsky määrittää tietyn toiminnan, joka täytyy tapahtua käskyä suorittaessa. Esimer- kiksi robotin liikuttaminen (MoveJ), lähtöarvon asettaminen (reg1:=5;), datan muut- taminen, jne. Ohjelman käskyt suoritetaan yksi kerrallaan siinä järjestyksessä, missä ne on ohjelmoitu.
3.2.5 Modulit
Moduulia voi ajatella eräänlaisena hakemistona tai kansiona, joka sisältää ohjelmia ja ohjelmadataa. Moduuleita voidaan tallentaa erikseen ja tarpeettomat moduulit voi- daan poistaa robotin käyttömuistista. Jos moduuleita ei ole erikseen tallennettu ja ne poistetaan muistista, häviävät moduulit pysyvästi.
3.2.6 Järjestelmämoduuli
Robotin muistiin on tallennettu järjestelmämoduuli, joka sisältää järjestelmässä tar- vittavia toistuvia toimintoja. Näitä toimintoja ovat muun muassa Työkalujen määrit- telyt, kotiasemaan ajot, työkalun esimerkiksi tarraimen ohjaus ja työkalunvaihtoru- tiinit. Nämä tiedot eivät häviä robotin muistista ohjelmia poistettaessa.
3.2.7 Ohjelmamoduuli
Ohjelmamoduuleita voi olla ohjaimeen ladattuna useita samalla hetkellä, mutta vain yksi voi olla nimeltään main, eli pääohjelma. Myöskään muiden moduulien välillä ei saa esiintyä nimiristiriitoja, eli samoja nimiä kahteen tai useampaan kertaan. Ohjel- mamoduuli sisältää ohjelmadataa ja ohjelmia.
Robotin ohjelma voidaan jakaa ohjelmamoduuleihin, joista jokainen sisältää joukon rutiineja ja dataa. Tämän lisäksi voidaan käyttää aina läsnäolevia järjestelmämoduu- leita.
Moduulit voivat sisältää esimerkiksi:
Yleisiä rutiineja monille eri asennuksille CAD:lla tuotettuja sijainteja
Oheislaitteille, esimerkiksi työkappaleen käsittelijälle, tarkoitettuja ru- tiineja.
Järjestelmämoduulit voivat sisältää kaikkien robotin ohjelmien käyttämää dataa (työkaludata).
Sekä järjestelmä että ohjelmamoduulit toimivat samalla tavalla, kun ne on ladattu muistiin. Kaikkia moduuleita voidaan normaalisti editoida ohjelmointiyksiköstä,
mutta järjestelmämoduulin ollessa normaalisti kirjoitussuojattu, täytyy suojaus ensin poistaa.
3.5 Ohjelman lataaminen
Tässä luvussa kerrotaan, kuinka ohjelma ladataan robotille. Ohjelma muodostuu yleensä kolmesta osasta: päärutiinista (mikä on aina mukana), joukosta alirutiineja ja ohjelmadatasta. Ohjelmassa voi olla vain yksi päärutiini.
3.5.1 Ohjelman lataaminen vaiheittain
Seuraavaksi kuvataan aiemmin luodun ohjelman lataaminen vaihe vaiheelta.
ABB-valikossa paina Ohjelmaeditori Paina Taskit ja ohjelmat
Mikäli tehtäväikkunassa ei ole ladattua ohjelmaa, dialogi-ikkuna avautuu (Kuvio 23).
Paina Uusi, ellei ohjelmaa ole ja uusi ohjelma luodaan.
Paina Lataa, jos aikaisemmin kirjoitettu ohjelma käytetään.
Tilan tekemiseksi uudelle ohjelmalle, vanha ohjelma on ensin poistettava.
Käytä tiedostonhaku työkalua ladattavan ohjelmatiedoston hakemiseen (Kuvio 24).
Kuvio 23.
Kuvio 24.
Paina Ok.
. Ohjelman
. Ohjelman .
lataaminen
lataaminen n
n 2
Kun ohjelm
Kuvio 25.
ma on latau
. Ohjelma la
utunut, näytö
adattuna
össä näkyy esimerkiksi seuraavaa a (Kuvio 25)).
4 Datatyypit
Seuraavissa kappaleissa on esitetty tärkeimmät datatyypit. Datatyypeistä käydään läpi niiden ominaisuuksia ja käyttötarkoituksia.
4.1 Muuttuja
Numeraaliset (Num)
Voivat sisältää kokonaislukuja tai desimaalilukuja. Esimerkiksi 10 tai 3.14159
Jono (String)
Tekstijono esim. “tämä on merkkijono”. Voi sisältää korkeintaan 80 merkkiä
Boolen muuttuja (Bool)
Boolen muuttuja. Voivat saada vain arvot TRUE (tosi) tai FALSE (epätosi)
Kaikki robottiohjelmoinnissa käytettävät muut datatyypit (Liite 1) perustuvat näihin kolmeen eri datatyyppiin (Num, String ja Bool). Mikäli ymmärrät näiden datatyyp- pien käyttämisen ohjelmoinnissa, mahdollistaa se muiden mutkikkaampien data- tyyppien käytön. /3, s. 12/
4.1.1 Muuttujan ominaisuudet
Muuttuja sisältää data-arvon. Jos ohjelma on pysäytetty ja aloitettu uudelleen, muut- tuja pitää arvonsa. Mutta mikäli ohjelman osoitin on siirretty päärutiiniin, niin ole- massa ollut data arvo menetetään. Esimerkiksi työpäivän aikana valmiiksi saatujen kappaleiden lukumäärä menetetään ja laskuri aloittaa laskemisen taas alusta. /3, s.
12/
4.1.2 Muuttujan määrittely
Muuttujaa määriteltäessä on tapana määrittää nimi ja datatyyppi, jota muuttuja käyt- tää. Muuttuja määritetään käyttämällä avainsanaa VAR, välttääksemme ohjelmavir- heitä. /3, s. 12/
VAR datatyyppi nimi Esimerkki
VAR num length;
VAR string name;
VAR bool finished;
4.1.3 Muuttujan arvojen antaminen
Arvo annetaan muuttujalle käyttämällä käskyä :=
length := 10;
name := "John"
finished := TRUE;
Huomaa, että := ei ole matematiikassa käytetty yhtä suurta tarkoittava merkki. Se tarkoittaa, että lauseke oikealla ohjaa muuttujaa vasemmalla. := merkin vasemmalla puolella voi olla vain muuttuja.
Esimerkiksi, alla olevat ovat virheettömiä RAPID koodeja jolla reg1 saa arvon 3.
reg1 := 2;
reg1 := reg1 + 1;
Määrittely voidaan myös tehdä samaan aikaan muuttujan määrittelyn kanssa.
VAR num length := 10;
VAR string name := "John";
VAR bool finished := TRUE;
4.2 Pysyvä muuttuja
Pysyvä muuttuja (Persistent variables) )on yksinkertaisuudessaan samanlainen kuin tavallinen muuttuja. Tärkein ero on, että tämä muuttuja muistaa arvonsa, vaikka oh- jelma lopetettaisiin ja aloitettaisiin taas alusta päärutiinista. /3, s. 13/
4.2.1 Pysyvän muuttujan määrittely
Pysyvä muuttuja on eritelty avainsanalla PERS. Käskyssä alkuperäinen arvo on il- moitettava
Esimerkki.
Tarkastele seuraavaa koodiesimerkkiä.
PERS num nbr := 1;
PROC main()
nbr := 2;
ENDPROC
Jos tämä ohjelma suoritetaan, olemassa oleva arvo on vaihdettu kahdeksi (2). Seu- raavan kerran kun ohjelma suoritetaan, ohjelman koodi tulee näyttämään tältä:
PERS num nbr := 2;
PROC main() nbr := 2;
ENDPROC
4.3 Vakio
Vakio (Constants) sisältää arvoja, kuten muuttuja, mutta arvo on aina annettu määrit- telynä (esim. 3.14 tai 9.81), arvoa ei voi sen jälkeen enää muuttaa ohjelman aikana.
Vakioarvoa voidaan käyttää muuten ohjelmassa samalla lailla kuin muuttujaa. /3, s.
14/
Vakioarvo on määritetty avainsanalla CONST, jota seuraa datatyppi, identifiointi ja määritetty arvo.
CONST num gravity := 9.81;
CONST string greating := "Hello"
4.3.1 Vakioarvon käyttö
Käyttämällä vakioarvoa muuttujana, varmistutaan siitä, että arvo ei muutu jossakin vaiheessa ohjelmassa. On parempi käyttää pysyvää muuttujaa, mikäli ohjelmaa tar- vitsee päivittää jollakin muulla pysyvän muuttujan arvolla. Tällöin tarvitsee muuttaa vain yhteen paikkaan arvo ja voit olla varma, että et ole unohtanut päivittää arvoa minnekään muualle ohjelmaan. /3, s. 14/
5. Käskyjen rakenne
Tässä kappaleessa käsittelen liikekäskyn rakennetta hieman perusteellisemmin. Kap- paleessa on avattu käskyn syntaksi ja kerrottu mitä käsky pitää sisällään robotin oh- jelmoinnin näkökulmasta.
5.1 Liikekäskyn rakenne
Esimerkissä käyn läpi robotin yhdistetyn liikekäskyn syntaksin eli muotokielen.
MoveJ – Liikuttaa robottia yhdistetyllä liikkeellä
MoveJ [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos]
Tool [\WObj]
Yläpuolella oleva teksti on robotin liikekäskyn malli, minkä mukaan robotin operaat- tori määrittää haluamansa toiminnot. Seuraavaksi teksti kertoo mitä mikäkin käskyn osa pitää sisällään robotin kannalta (syntaksi). Suluissa lihavoituna olevan osan jäl- keen näkyy muuttajan tallennusmuoto. /6, s.249/
MoveJ
[ ’\’ Conc ’,’ ]
[ ToPoint’ :=’ ] < expression (IN) of robtarget >
[ ’\’ ID ’:=’ < expression (IN) of identno >]’,’
[ Speed ’:=’ ] < expression (IN) of speeddata >
[ ’\’ V ’:=’ < expression (IN) of num > ]
| [ ’\’ ’:=’ < expression (IN) of num > ] ’,’
[Zone ’:=’ ] < expression (IN) of zonedata >
[ ’\’ Z ‘:=’ < expression (IN) of num > ]
[ ’\’ Inpos’ :=’ < expression (IN) of stoppointdata > ] ´,’
[ Tool’ :=’ ] < persistent (PERS) of tooldata >
[ ’\’ WObj’ :=’ < persistent (PERS) of wobjdata > ] ’;’
5.1.1 Termien selitykset
[\Conc] (Rinnakkainen suoritus) Datatyyppi switch Myöhemmät käskyt toteutetaan, robotin yhä ollessa liikkeessä. Argumenttia ei yleensä käytetä. Sitä voidaan kuitenkin käyttää, välttääkseen ei haluttuja pysähdyk- siä. Nämä pysähdykset johtuvat robotin prosessorin ylikuormituksesta, kun käyte- tään liikeratapisteitä. Tämä komento on käytännöllinen, kun ohjelmoidut pisteet ovat lähellä toisiaan ja robotti liikkuu kovalla nopeudella. Toinen käyttökohde on, kun kommunikoidaan ulkoisten akselien kanssa ja synkronointi ulkoisen akselin ja robo- tin välillä ei ole välttämätöntä.
Kun käytetään argumenttia \Conc, jaksossa olevat liikekäskyt ovat rajattu viiteen.
Ohjelmaosuus, joka sisältää Storepath-Restorepath argumentteja, \Conc argumentin käyttö on kielletty.
Jos tämä argumentti on jätetty pois ja kohdepiste ei ole pysähdyspaikka, niin seuraa- vat käskyt suoritetaan hieman ennen, kuin robotti on saavuttanut ohjelmoidun alueen (zone).
ToPoint (kohdepiste) Datatyyppi: Robtarget Kohdepiste robotille ja ulkoisille akseleille. Se on määritetty nimettynä kohteena (esim. p_koti) tai ohjelmoitu suoraan ohjeesta (merkattu *)
[\ID] (Synkronointi ID) Datatyyppi: identno
Tätä argumenttia täytyy käyttää Moniajo systeemissä (Useamman robotin välisessä), mikäli koordinoidaan synkronoitua liikuttelua. Ei ole sallittu missään muussa tapa- uksessa.
Määrätty ID numero pitää olla sama kaikissa yhteistyö ohjelma taskeissa. Id numero takaa sen, etteivät liikkeet eivät sekoitu ajon aikana.
Speed (nopeus) Datatyyppi: speeddata
Nopeusdata, jota sovelletaan liikkeeseen. Nopeusdata määrittää työkalun keskipis- teen nopeuden, työkalun uudelleen orientoitumiselle ja ulkoisille akseleille.
[\V] Velocity Datatyyppi: num
Tätä argumenttia on käytetty määräämään nopeutta TCP:lle (Tool Center
Point/työkalupiste) suoraan ohjeissa. Se korvaa siten nopeuden, joka on määritetty nopeusdatassa (speed data).
[\T] Time Data type: num
Tätä argumenttia käytetään määrittämään kokonaisaikaa sekunteina jonka robotti käyttää liikkumiseen. Se korvaa siten nopeuden nopeusdatassa (speeddata).
Zone alue Data type: zonedata
Aluedata liikkeelle. Aluedata Kuvioa generoidun liikeradan tarkkuutta (minkä alueen sisällä robotti tekee halutun liikkeen liikepolulla).
[\Z] Data type: num
Argumenttia käytetään spesifioimaan paikan virheettömyys TCP:lle suoraan ohjeis- sa. Säde on annettu millimetreinä ja se vastaa aluetta joka on määrätty alue datassa (zone data). Esimerkiksi Z50 tarkoittaa että robotin työkalupiste kulkee 50 mm sisäl- lä ohjelmoidusta pisteestä.
[\Inpos] In position (kohteessa) Data type: stoppointdata
Argumenttia käytetään spesifioimaan lähestymiskriteeriä robotin TCP:lle pysäytys pisteessä. Pysäytys pistedata (stop point data) vastaa alueparametria.
Tool (työkalu) Data type: tooldata
Työkalu, jota käytetään robotin liikkuessa. Työkalun keskipiste liikkuu määrättyyn kohdepisteeseen.
[\WObj] Work Object (työkohde) Data type: wobjdata
Työkohde (koordinaatisto systeemi), johon robotin asento ja kohdistus liittyy. Tämä argumentti voidaan jättää pois, jolloin asento on yhteydessä maailmakoordinaatis- toon. Mikäli käytetään liikkumatonta työkalupistettä (TCP), tai koordinoidut ulkoiset akselit ovat käytössä, tämä argumentti pitää olla määritelty.
6 Käyttö
Tämä osio tään muok mioita ja o Tamperee Oy:n halli tio ympäri lusta, kosk Oy:ssä.
Kehitysha ja toimima
Kuvio 26.
öönotto
o pitää sisäll kkaamaan k ongelmia m n ammattik issa (Kuvio istönä erilai ka sitä oli te
anke alkoi o attomana.
. Robotti so
lään varsina koulun tarko mitä projektin
korkeakoulu 26). Solun isissa messu estattu erilai
saltani Trim
lusta purett
aisen työn o oitukseen so n aikana ilm un ostama kä alkuperäise utapahtumis isissa kappa
master Oy:n
tuna
osuuden, jos opivaksi. Os maantui.
äytetty robo enä tarkoituk
ssa. Tämän j aleenkäsitte
n hallissa, m
ssa vanhaa j sio pitää sisä
ottisolu oli p ksena oli to jälkeen rob ly tarkoituk
missä robotti
järjestelmää ällään myös
purettuna T oimia demon botti oli pure ksissa Trima
isolu oli pur
ä lähde- s huo-
rimaster nstraa- ettu so- aster
rettuna
Kuvio 27.
6.1 Robo
Robottisol irtotavarat seinämä p päätettiin poistettiin Robotti ol soluosa ol tamalla ha
. Tuleva alu
ottisolun k
lun kokoam t solun sisäp purettiin ja ta asentaa valo n myös viisi
li hallissa pa livat irrotett allinosturin
usta
okoamine
misen aloitin puolelta poi arpeettomia overho este halogeeniv akattuna siir tu toisistaan
avulla robo en
n raivaamall is (Kuvio 27 a tukirakent eettömän ko valaisinta ja
rtolavalle (K n (Kuvio 28) ottisolun ohj
la kaikki irr 7). Tämän j teita poistett
ulutuskäytö aikaisemm Kuvio 26). M
). Robottiso jainkaapin p
otetut johdo älkeen solu tiin. Hajana ön mahdolli in käytössä Myös robot olun kokoam
päälle. Täm
ot, pultit yn un yksi hajan
aisen seinän istamiseksi.
ä olleita työt tin ohjauska misen aloitin män jälkeen I
na muut nainen n tilalle Solusta tasoja.
aappi ja n nos- Itse
robotti nos jatkettiin y
Koska rob nenäkösov semmaksi käytettiin Koululle t tiin pois tä
Kuvio 28.
stettiin paik ylimääräiste
botti oli ollu velluksissa, . Kaikki joh vanhoja tul tullessa robo ästä työstä a
. Robotin oh
koilleen solu en osien poi
ut käytössä a ei I/O kytk hdot kytkett ojen ja läht ottisolussa o aiheen laaju
hjauskaappi
uun (Kuvio istamista (K
aikaisemmi kentöjä tehty
tiin vanhoih töjen nimiä.
oli vielä käy uuden takia.
i
29), tehtiin Kuvio 30).
ssa projekte y aluksi mit hin I/O paik
ytössä kone
n tarvittavat
eissa ja nim enkään kou koihin ja ro
näkötoimin
sähkökytke
menomaan ko ulua ajatelle obotin testau
nto, mutta se
ennät ja
o- n loogi- uksessa
e jätet-
Kuvio 29.
Kuvio 30.
. Robotti kii
. Solun siist
innitettynä a
timistä
alustaansa
6.2 Työk
Robottisol työkalunv va vaihtaja tisolussa. T liitäntä) ja paineilmal miseen. /7
Kuvio 31.
Robottisol kentaa om huomioita
kalunvaiht
lun monikäy vaihtaja (Ku
a (M0107-1 Työkalunva a neljälle ele liitäntää, mu 7, s. 5/
. Työkalunv
luun hankitt ma työkalu li ava paineilm
aja
yttöisyyden vio 31). Täm 1) mahdollis
aihtaja sisäl ektroniselle
utta kaksi n
vaihtaja
tiin neljä ad iitäntöjen m maliitäntöjen
n parantamis mä RSP rob staa useiden ltää mahdoll liitännälle niistä on var
dapteriosaa mahdollistav n toiminta. L
seksi robott bot system:s n erilaisten t lisuuden ne (M8). Järje rattu työkalu
(Kuvio 32) valla tavalla Liitännät to
tisoluun pää sin 20 kg:n työkalujen k eljälle painei
stelmässä it un kiinnipitä
, joihin joka . Työkaluja imivat pare
ätettiin hank nostokyvyn käytön robo ilmalähdöll tsessään on tämiseen / ir
aiseen voida a suunnitelta eittain, jollo
kkia n omaa- ot- le (M5
kuusi rrotta-
aan ra- aessa on
in käy-
tettäessä e tukittava, löytyvät li
Kuvio 32.
6.3 Työk
Robottiin kiinteästi a vaihtajan k liittämistä
6.3.1 Kak
Kaksoistar mallisia pa taa opetus harjoittelu serleikattu
esimerkiksi paineilman iitteestä 2.
. Työkalunv
kalut
suunniteltii asennettuna kanssa oli m ä työkaluun.
ksoistarrain
rraimessa (K aineilmatoim skäytössä m un oppimisy una HT-lase
vain kahta p karkaamise
vaihtajan ad
in kokonaan a kääntyväv mahdotonta,
n
Kuvio 34) t misia tarttuj monipuolisien
ympäristössä erilla ja koot
paineilmali en estämise
dapteriosa
n uudet työk vartinen tarr
, koska vanh
tarttujina kä ujia. Kahden n liikeratoje ä. Kaksoista ttiin koulull
itäntää on k ksi. Työkal
kalut, koska ain. Tämän ha rakenne
äytettiin SM n tarttujan ra
en ja tehokk arraimen ru la. Tarttujan
kaksi jäljelle unvaihtajan
a vanhassa r työkalun k ei mahdolli
MC:n MHZ2 akenne työk kaan objekti unko (Kuvio n tiedot löyt
e jäänyttä pa n mitat ja tie
rakenteessa käyttö työka istanut pain
2-16D2 (Kuv kalussa mah
ien poimim o 35) teetetti
tyvät liittee
aikkaa edot
oli alun- neilman
vio 33) hdollis- misen
iin la- stä 3.
Kuvio 33.
Kuvio 34.
. Tarttuja M
. Kaksoistar
MHZ2-16D2
rrain
2
Kuvio 35.
6.3.2 Kää
Robottisol tarrain. Tä sen alkupe vaihtajan k Alkuperäi kiinnitys t van adapte työkalunv esineiden
. Kaksoistar
äntyvätarra
lussa oli alu ätä työkalua eräinen rake
kanssa.
nen kääntyv työkalunvai
erin (Kuvio vaihtajan ada
poimimisen
rraimen suu
ain
un perin vain a päätettiin k
enne ei suor
vä tarrain pi htajaan sop 36), mikä m apteriosaan n erilaisista
unnitelma
n yksi työk käyttää hyv raan mahdo
iti aluksi pu pivaksi. Ratk
mahdollisti . Tämä uusi asennoista
alu, joka oli väksi niin pa ollistanut työ
urkaa kokon kaisuna pää
vanhan työ i työkalu (K
verrattuna k
i kiinteästi a aljon kuin m ökalun käytt
naan ja suun ädyttiin teke ökalun rungo Kuviot 37 ja
kiinteään ka
asennettu k mahdollista,
ttämistä työk
nnitella tartt emään siihen
on kiinnittä a 38) mahdo
aksoistarraim ääntyvä
vaikka kalun-
tujan n sopi- ämisen ollistaa
meen.
Kuvio 36.
Kuvio 37.
. Adapteri
. Kääntyvä ttarrain sivuusta
Kuvio 38.
6.3.2 Työk
Robottisol ta voidaan vaihtajaan pohjalta ro Telineen k
. Kääntyvä t
kalunvaiht
luun suunni n varastoida n hankittava obottisoluun koon määrä
tarrain edes
tajan teline
iteltiin työk a erilaisia ty aksi tarkoite n suunnitelt si valmiiden
stä
e
kalunvaihtaj yökaluja. Su ettujen työka
tiin oma nel n kiinnitysr
aa varten te uunnittelussa
alunpitimien lipaikkainen reikien paikk
eline, johon a käytettiin n rakennetta n työkalutel
ka robottiso
työkalunva hyväksi työ a (Kuvio 39 line (Kuvio olun pohjale
aihtajas- ökalun- 9), jonka
40).
evyssä.
Kuvio 39.
Kuvio 40.
6.3.3 Pain
Koska rob soluun mi usyksikön nään porat ras, koska
. Alkuperäin
. Nelipaikka
neilmaliitä
bottisolussa etittävä liitä n ovien viere ttiin reikä ja a se mahdoll
nen työkalu
ainen työka
ännän lisä
ei ollut mit ännälle hyvä estä hyvä pa a kiinnitettii listi luontev
uteline
aluteline
ääminen
tään mielekk ä paikka ja aikka paine in sopiva pi vimman kiin
käästi toteu toteutus. So ilmaletkun ikaliitin (Ku nnityksen hu
utettua paine olun ulkopu kiinnittämis uvio 41). Tä uoltoyksikö
eilmaliitäntä uolella löyty seksi. Solun ämä paikka ölle.
ää, oli yi ohja-
n sei- oli pa-
Kuvio 41.
Solun ohja ilmankuiv estää ylipa telmään. P robotin pa
. Paineilmal
auskaapin s vaimen ja pa
aineen muo Paineeksi sä aineilmaliitä
letkun kiinn
isäpuolelle aineenalenn dostumisen äädettiin 7 b äntään (Kuv
nitys
kiinnitettiin nusventtiilin n ja kosteude
baarin paine vio 43).
n huoltoyks n (Kuvio 42)
en kertymis e. Huoltoyks
ikkö. Huolt ), joidenka t sen robotin p
siköstä johd
toyksikkö si tarkoituksen paineilmajä dettiin käytt
isältää na on ärjes- töpaine
Kuvio 42.
Kuvio 43.
. Huoltoyks
. Paineilmal sikkö
liitäntä robootille
6.4 Turvaratkaisut
Robottisolun turvallisuusasiat ovat ensiarvoisen tärkeitä, jotta vältytään robotin kä- sittelyn aikana onnettomuuksilta. Robottisolun turvallista käyttöä lisääviä turvarat- kaisuja ovat muun muassa: turvareleet, valoverhot, rajakytkimet ja muut robotin lii- kealueelle menemistä estävät esteet. Tässä kappaleessa käsitellään robottisolussa käytettäviä turvaratkaisuja.
6.4.1 Valoverho
Koska robottisolusta poistettiin yksi robotin työskentelyalueelle pääsyn estävä muo- viseinä, päätettiin robotin työskentelyalueelle pääsyä ja koulutuskäyttöä helpotta- maan hankkia turvallisuusratkaisuksi valoverho (Kuvio 44).
Erilaisia vaihtoehtoja katsottaessa ja robottisolun hankintaan varatussa budjetissa päädyimme rahavaroja hallinnoivan tahon kanssa Omronin MS-4800 malliseen va- loverhoon. Tämä turvakategorian luokan neljä valoverhona (sormisuojaus) on riittä- vä tämän robottisolun suojaamiseksi henkilövahingoilta (maksimi etäisyys 7m, reso- luutio 14mm). Valoverhon kytkentäkaavio löytyy liitteestä 4.
HUOM!
Valoverho
Kuvio 44.
6.4.2 Turv
Robottisol kö (Kuvio AS (Amer lempia AS työstä. Tu releen tied
o ei ole käy
. Valoverho
varele
luun hankitt o 45). Yksik rgy Stop) pi S-piirejä lau urvarele lisät dot löytyvät
ytössä käsia
o
tiin ensin O kköä liitettäe
iirin laukeam ukaistua sam
ttiin toisena t liitteestä 5.
ajotilassa
Omronin G9 essä robotti minen. Kos maan aikaan a oppilastyö
.
SB-200-d m in ongelmak ka kyseisell n, jätettiin ky önä robottiso
mallinen kap ksi muodos lä turvarele yseinen turv oluun. Käyt
pea turvarel stui robotin eellä ei saatu
varele pois tössä olleen
leyksik- toisen u mo-
tästä n turva-
Kuvio 45.
6.4.3 Ovie
Alkuperäi sena on es Ovikytkim on Omron
. Omronin t
en rajakytk
seen robotti stää henkilö met jätettiin n D4DS-15F
turvareleyks
kimet
isolun oviin övahingot, m
robottisoluu FS (Kuvio 4
sikkö
n oli kytkett mikäli ovet a uun toimivan 46). Ovirajo
tynä kaksi o avataan kes na turvaratk oen toiminta
ovikytkintä.
ken ohjelm kaisuna. Ovi akaavio löyt
Näiden tark man suorittam ikytkimien tyy liitteestä
koituk- misen.
mallina ä 6.
Kuvio 46.
6.5 Robo
Robotin oh hankittu si tin ohjelm Päivitys to päivitykse mallisesti alue, jonka Aluksi van maantuess Tämän jäl avulla uud välityksell jolloin rob liitteestä 7
. Ovien raja
otin ohjelm
hjelma päiv illä edellyty maversio oli oteutettiin y en kanssa ro robotin kol a ulko-, tai nhasta koko sa saataisiin lkeen puheli den järjestel
lä. Uuden jä botin uusi oh 7. /8/
akytkimet
miston päiv
vitettiin uusi yksellä, että hankittaess yhteistyössä obottiin lisät aroimisen r sisäpuolelle oonpanosta n solu taas to
inohjeistuks lmä kokoon ärjestelmän hjelmisto tu
vittäminen
impaan ver ä siinä on uu
sa 5.08.820.
ä ABB:n Juh ttiin uutena rakenteiden e robotin kä otettiin varm oimimaan v sen kanssa l npanon. Uud latauksen j uli toimivak n
sioon 5.12.
usimmat saa
ha Mainion optiona wo kanssa. Täl äsivarsi ei sa muuskopio, vanhalla ohj loin robot st den aktivoin älkeen robo ksi. Päivitety
1021.01 kos atavilla olev
kanssa puh orldzones, m
llöin robotil aa mennä m , jotta ongel elmistolla.
tudion Syst ntiavaimen s otti käynnist yn ohjelmis
ska robottis vat ohjelmat
helintukena.
mikä estää o lle määritet missään tilan
lmatilanteid
tem Builder sain puhelim tettiin I-star ston tiedot lö
solu oli t. Robo-
Saman ohjel-
ään nteessa.
den il-
r kohdan men rtilla, öytyvät
7 Havaintoja ja ongelmia
Robottisolun käyttöönotossa ilmeni useita ongelmia. Ongelmat johtuivat pääsääntöi- sesti siitä, että käyttöönotossa pyrittiin käyttämään mahdollisimman paljon olemassa olevia asetuksia ja välineitä.
Robottisolussa oli oikaistu useissa I/O kytkennöissä, koska robottisolua oli käytetty pääsääntöisesti messuesittelyissä. Ovien turvakytkimet olivat kytketty sarjaan, vaik- ka molempien ovien kytkimet olisi pitänyt kytkeä erikseen robotille. Näin oli toimit- tu sen takia, että robotille ei tarvinnut asentaa muun muassa turvarelettä ja robot- tisolu oli saatu nopeasti toimintakuntoon messuesittelyjä varten. Koska robottisolus- sa ei ollut muita turvallisuuteen vaikuttavia kytkimiä, oli robotti silloin helppo oh- jelmoida toimimaan oikein.
Nämä kytkennät aiheuttivat ongelmia turvareleen kanssa, kun robottisoluun oli lisät- ty valoverho. Kun ovi tai valoverho laukaisi hälytyksen kesken robotin automaat- tiajon, laukaisi se vain toisen AS (Amergy stop) piirin. Tällöin robotti ilmoitti vir- heilmoituksena että vain toinen piiri on lauennut, vaikka molemmat näyttivät olevan lauenneet (Kuvio 47). Syy ilmoitukseen oli, että molempien piirien piti laueta samal- la hetkellä.
Tätä ongelmaa ei saatu korjattua ensimmäiseksi ostetulla turvareleellä, koska mo- lemmat AS piirit tulisi laukaista yhtä aikaa, riippumatta siitä aiheuttiko ovet vai va- loverho hälytyksen. Hankittu turvarele sisälsi vain yhden kanavan, jolloin molempi- en AS piirien laukaisemista ei pystytty toteuttamaan minkäänlaisella kytkennällä kyseisellä releellä (Kuvio 48). Turvarele korvattiin oppilastyönä tehtynä ohjelmoita- valla turvareleellä.
Toinen ongelma oli robottisolussa käytetty konenäköominaisuus. Robotissa oli aikai- sempien ohjelmointien seurauksena melkein kolmekymmentä hankalasti nimettyä I/O:ta, joiden nimeämistä ei voinut muuttaa opetuskäyttöön sopiviksi, koska silloin konenäkö ei toiminut oikein. Tämän takia konenäköominaisuus jätettiin tästä työstä pois ja samalla I/O:t saatiin nimettyä opetuskäyttöön paremmin sopiviksi. Ko-
nenäköohj va kyseise
Kuvio 47.
Kuvio 48.
jelmisto mä ellä kokoonp
. AS piirien
. AS piirien
ääräsi tarkas panolla.
n merkkivalo
n kytkentä p
sti miten eri
ot
aikka
i laitteet pitäää nimetä, jotta se olisii toimi-
8 Yhteenveto
Työn valmistuttua voidaan sanoa, että se oli huomattavasti haasteellisempi, kuin osa- sin odottaa. Aihe oli minulle entuudestaan vähän vieras ja manuaaleista opiskelu ei heti tuottanut toivottua tulosta. ABB:n Juha mainion pidettyä koulutuspäivän robotin toiminnoista ja ohjelmoinnin peruskomentojen selvittyä alkoi työ vasta toden teolla edistyä.
Työn olisi voinut toteuttaa muillakin tavoilla, mutta koska tarkoitus oli saada robot- tisolu toimimaan opetusympäristössä käyttäen mahdollisimman paljon robottisolun vanhoja tarvikkeita päädyin nykyiseen ratkaisuun.
Lähteet
/1/ IRC5 ohjelmoinnin perusteet /2/ IRCwithFlexPendant
/3/ Introduction to RAPID /4/ Technical reference manual
/5/ Keskustelut Trimaster Oy:n henkilöstön kanssa /6/ Rapid reference manual
/7/ Product Manual Swivel with Tool Changer 20 kg /8/ Puhelinkeskustelu ABB:n Juha Mainion kanssa
Liitteet
1. Muut käytettävissä olevat datatyypit 2. Työkalunvaihtaja
3. Tarttujan tiedot
4. Valoverhon kytkentä
5. Turvareleen tiedot
6. Ovirajojen toiminta ja tiedot 7. Robotin ohjelmiston tiedot
Liite 1: Muut käytettävissä olevat datatyypit
aiotrigg - Analog I/O trigger condition btnres - Push button result data
busstate - State of I/O bus buttondata - Push button data byte - Integer values 0 - 255 clock - Time measurement
confdata - Robot configuration data
corrdescr - Correction generator descriptor datapos - Enclosing block for a data object dionum - Digital values (0 - 1)
dir - File directory structure dnum - Double numeric values errdomain - Error domain errnum - Error number errstr - Error string errtype - Error type
event_type - Event routine type exec_level - Execution level
extjoint - Position of external joints handler_type - Type of execution handler icondata - Icon display data
identno - Identity for move instructions intnum - Interrupt identity
iodev - Serial channels and files iounit_state - State of I/O unit 3.27 jointtarget - Joint position data listitem - List item data structure loaddata - Load data
loadidnum - Type of load identification loadsession - Program load session mecunit - Mechanical unit
motsetdata - Motion settings data opcalc - Arithmetic Operator opnum - Comparison operator orient - Orientation
paridnum - Type of parameter identification paridvalidnum - Result of ParIdRobValid pathrecid - Path recorder identifier
pos - Positions (only X, Y and Z) pose - Coordinate transformations progdisp - Program displacement rawbytes - Raw data
restartdata - Restart data for trigg signals
rmqheader - RAPID Message Queue Message header
rmqmessage - RAPID Message Queue message rmqslot - Identity number of an RMQ client robjoint - Joint position of robot axes
robtarget - Position data
shapedata - World zone shape data signalxx - Digital and analog signals socketdev - Socket device
socketstatus - Socket communication status speeddata - Speed data
stoppointdata - Stop point data stringdig - String with only digits switch - Optional parameters symnum - Symbolic number
syncident - Identity for synchronization point System data - Current RAPID system data settings taskid - Task identification
tasks - RAPID program tasks testsignal - Test signal tooldata - Tool data
tpnum - FlexPendant window number trapdata - Interrupt data for current TRAP triggdata - Positioning events, trigg triggios - Positioning events, trigg
triggstrgo - Positioning events, trigg tunetype - Servo tune type
uishownum - Instance ID for UIShow wobjdata - Work object data
wzstationary - Stationary world zone data wztemporary - Temporary world zone data zonedata - Zone data
Liite 2: Tyyökalunvaihhtaja
Liite 3: Taarttujan tieddot
Liite 4: Vaaloverhon kkytkentä
Liite 5: Tuurvareleen ttiedot
Liite 6: Ovvirajojen toiminta ja tieedot