ROBOTTIHARJOITUS IRB4400 ROBOTILLA, S4C (RYHMÄTYÖ) v. 2015 Toiminta: Robotti odottaa kotipisteessä käynnistystä. Odotusasento opetetaan noin 1.5 metrin korkeudelle lavan keskelle. Robotin tehtävänä on tyhjentää lava. Laatikot siirretään yksi kerrallaan kuljettimelle, kun 16 laatikkoa on viety, niin robotti palaa takaisin kotipisteeseen.
Toiminta lopetetaan siis automaattisesti, kun lava on tyhjä (16 laatikkoa viety), mutta myös lopetuskytkimellä (DI08) voidaan toiminta keskeyttää. Keskeytystilanteissa ohjelman täytyy säilyttää kuitenkin muistissa jo vietyjen laatikoiden määrä ja jatkettaessa seuraava laatikko haetaan seuraavasta paikasta. a) Ennen robottilaboraation käytännön suoritusta on tämä toiminto tehtävä Robot Studio ohjelmalla. Pohjana käytetään valmista etukäteen annettua simulointipohjaa, jolloin oikealla robotilla tehdään vain tarkennuksia ohjelmaan kuten paikoitusten uudelleen määritykset. Liitteenä on jo osittain tehtyä ohjelmaa ( sis. lavauksen ja lavan purun). b) Käytännön toteutuksen jälkeen liitetään toimiva robottiohjelma takaisin RST-ohjelmaan ja testataan se virtuaalisesti. Katso filmiesitykset: lavausfilmi ja purkufilmi! TÄMÄ OHJELMA ON VALMIINA PROC main() laatikkomaara:=0; IF PAIKKA_A=1 THEN! Varmistetaan kuljettimen 12 pysäytys PulseDO DO_KUIT_P4; valinta: IF DI_TUOTE_P2=1 AND PAIKKA_A=1 THEN! IRB6600 käsky SIIRTO ohjelman suorittamiseksi Lavaus; IF PAIKKA_B=1 THEN! IRB6600 käsky Lavaus ohjelman suorittamiseksi Reset DO_K11_SUUNTA; Purku; GOTO valinta; IF laatikkomaara<16 THEN GOTO valinta; laatikkosarake:=0; laatikkorivi:=0; poikkeamax:=0; poikkeamay:=0; poikkeamaz:=0; Stop;
! TÄMÄ OHJELMA ON VALMIINA PROC Lavaus()!SUUNTA K11 PAALLE irb6620 SIIRTO alku: MoveJ hakukoti,v500,z50,imukuppivirt; MoveJ ylavalipoyta,v500,z50,imukuppivirt; MoveL OFFS(laatikkokuljpaik,0,-300,400),v300,z10,imukuppivirt; MoveL OFFS(laatikkokuljpaik,0,-300,0),v300,z1,imukuppivirt; MoveL laatikkokuljpaik,v100,fine,imukuppivirt; MoveL OFFS(laatikkokuljpaik,0,-300,0),v300,z1,imukuppivirt; MoveL OFFS(laatikkokuljpaik,0,-300,400),v300,z10,imukuppivirt; MoveL OFFS(laatikkopinta,0,0,100),v300,z10,imukuppivirt; MoveL laatikkopinta,v200,z1,imukuppivirt; Set IMU1; Set IMU2; WaitTime 0.5; MoveL OFFS(laatikkopinta,0,0,500),v300,z10,imukuppivirt; MoveJ ylavalipoyta,v500,z50,imukuppivirt; MoveJ hakukoti,v500,z50,imukuppivirt; IF laatikkomaara=8 THEN poikkeamaz:=210; laatikkosarake:=0; IF laatikkomaara<8 THEN poikkeamaz:=0; IF laatikkosarake=0 THEN poikkeamay:=0; poikkeamay:=-305; MoveL Offs(lavausloppu,poikkeamaX,poikkeamaY,poikkeamaZ+300),v500,z10,imukuppivirt; MoveL Offs(lavausloppu,poikkeamaX-20,poikkeamaY,poikkeamaZ+180),v100,fine,imukuppivirt; MoveL Offs(lavausloppu,poikkeamaX,poikkeamaY,poikkeamaZ),v100,fine,imukuppivirt; Reset IMU1; Reset IMU2; WaitTime 1; MoveL Offs(lavausloppu,poikkeamaX,poikkeamaY,poikkeamaZ+300),v50,z1,imukuppivirt; IF laatikkorivi<3 THEN laatikkorivi:=laatikkorivi+1; poikkeamax:=poikkeamax-215; laatikkosarake:=1; laatikkorivi:=0; poikkeamax:=0; laatikkomaara:=laatikkomaara+1; IF laatikkomaara=16 RETURN; IF PAIKKA_A=1 THEN WaitDI DI_TUOTE_P2,1; GOTO alku; RETURN;
! PURKU - ohjelma tehdään harjoitustyönä, laatikoita on yhteensä 16 kpl kahdessa kerroksessa PROC Purku()!laatikko haetaan lavalta ja viedään kuljettimelle 11 Reset DO_K11_SUUNTA;! SUUNTABITIN poisotto tarkoittaa IRB6620 robotilla LAVAUSTA MoveJ hakukoti, v500, z5, imukuppivirt; FOR box_kerros FROM 1 TO 2 DO! Tarvittavat nollaukset poikkeamille FOR box_sarake FROM 1 TO 2 DO FOR box_rivi FROM 1 TO 4 DO! Liikutaan noudettavan laatikon yläpuolelle MoveL Offs(hakutartunta,Xpoikkeama,Ypoikkeama,Zpoikkeama),v100,fine,imukuppivirt;! Tarvittavat käskyt, jotta voidaan tarttua laatikkoon ja noustaan takaisin ylös! Muista myös muuttaa laatikon leveyspoikkeamaa! Liikutaan kohti kuljetinta 11, jolle on tarkoitus jättää laatikko! Huomio korkeavarasto tehdessäsi tarvittavia välipaikoituspisteitä MoveL hakuirroitus,v100,z1,imukuppivirt;! Jätetään laaatikko! Ohjelmoidaan tähän laatikkolaskuri!käynnistetään KULJ11 Set DO_KUIT_P3;! Palataan samaa reittiä takaisin lavan ylle! Pysäytetään KULJ11 Reset DO_KUIT_P3; Ypoikkeama:=-305; Xpoikkeama:=0; Zpoikkeama:=-210; Zpoikkeama:=0; WaitTime 60; TPWrite "MUISTA KYTKIN JA START"; TPReadFK reg4,"jatketaanko",stempty,stempty,stempty,stempty,"yes"; WaitUntil reg4<>0; PulseDO DO_KUIT_P4; RETURN; ENDMODULE