ROBOTTIHARJOITUS IRB4400 ROBOTILLA, S4C (RYHMÄTYÖ) v. 2014 Toiminta: Robotti odottaa kotipisteessä käynnistystä. Odotusasento opetetaan noin 1.5 metrin korkeudelle lavan keskelle. Kuljettimelle 10 saapuva laatikko lavataan, kun DI_TUOTE_P2 antaa signaalin. Ensin haetaan laatikko kuljettimelta 10. Tämän jälkeen robotti palaa laatikon kanssa kotipisteeseen. Robotti lavaa laatikot kahteen kerrokseen ja seuraavista kuvasta selviää lavausmuodot. Toiminta lopetetaan automaattisesti, kun lava on täynnä (16 laatikkoa), 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 viedään seuraavaksi tarkoitettuun paikkaan lavalla.
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 tehdään tämän laboraation toinen osio virtuaalisesti eli lavauksen purku.
Katso filmiesitykset: lavausfilmi ja purkufilmi I/O-luettelo: LÄHDÖT: IMU 1 ja IMU2 (alipaineet päälle) DO_KUIT_P3 (kuljettimen 11 kuittauslähtö) TULOT: Kuljetin 10 DI_TUOTE_P3 DI_TUOTE_P4 DI_TUOTE_P2 Kuljetin 11 IRB 4400 Käytä alla olevaa ohjelmapohjaa harjoituksen suorittamisessa. MODULE MainModule CONST robtarget hakukoti:=[[779.69,193.48,806.5],[0.006763,0.79557,0.60581,-0.004317],[0,-1,-3,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]]; CONST robtarget hakutartunta:=[[1797.5,369.85,397.02],[0.006724,0.795445,0.605975,-0.004198],[0,-1,-3,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]]; CONST robtarget lavaus10:=[[75.92,-1033.68,1163.56],[0.007813,0.995809,-0.091113,0.001298],[-1,0,-3,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]]; CONST robtarget kotip:=[[1029.91,8.6,1149.42],[5e-06,0.789029,0.614356,1.8e-05],[0,0,-3,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]]; VAR num laatikkosarake:=0; VAR num laatikkorivi:=0; VAR num poikkeamax:=0; VAR num poikkeamay:=0; VAR num poikkeamaz:=0; VAR num laatikkomaara:=0; VAR num Xpoikkeama:=0; VAR num Ypoikkeama:=0; VAR num Zpoikkeama:=0;
PROC main() IRB6600 käsky SIIRTO ohjelman suorittamiseksi Set DO_K11_SUUNTA; laatikkomaara:=0; Varmistetaan kuljettimen 12 pysäytys PulseDO DO_KUIT_P4; valinta: IF DI_TUOTE_P2=1 THEN Lavaus; IF PAIKKA_B=1 THEN Purku; GOTO valinta; IF laatikkomaara<16 THEN GOTO valinta; laatikkosarake:=0; laatikkorivi:=0; poikkeamax:=0; poikkeamay:=0; poikkeamaz:=0; Stop; ENDPROC PROC Lavaus() alku: TÄMÄ OSIO TEHDÄÄN OIKEALLA ROBOTILLA SUUNTA K11 PAALLE irb6620 SIIRTO Set DO_K11_SUUNTA; MoveJ kotip,v500,z5,imukuppi; HAETAAN LAATIKKO KULJETTIMELTA MoveJ lavaus10,v500,z5,imukuppi; PALATAAN kotipisteeseen ja seuraavaksi lavan yläpuolelle
IF laatikkomaara=8 THEN poikkeamaz:=210; laatikkosarake:=0; IF laatikkomaara<8 THEN poikkeamaz:=0; IF laatikkosarake=0 THEN poikkeamay:=0; poikkeamay:=-305; Robotti ajetaan kyseisen laatikon jättöpaikan yläpuolelle (n. 300 mm) Käytetään OFFS- toimintoa eli opetaan ensimmäisen laatiko jättöpaikka Reset IMU1; Reset IMU2; WaitTime 1; Ajetaan robotti takaisin ylös 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; ENDPROC PROC Purku() TÄMÄ OSIO TEHDÄÄN VIRTUAALIROBOTILLA, kun ensin on tehty lavausosio oikealla robotilla laatikko haetaan lavalta ja viedään kuljettimelle 11 Reset DO_K11_SUUNTA; SUUNTABITIN poisotto tarkoittaa IRB6620 robotilla LAVAUSTA MoveL hakukoti,v500,z5,imukuppi;
FOR box_kerros FROM 1 TO 2 DO Xpoikkeama:=0; Ypoikkeama:=0; FOR box_sarake FROM 1 TO 2 DO FOR box_rivi FROM 1 TO 4 DO PulseDO DO_KUIT_P4; MoveL Offs(hakutartunta,Xpoikkeama,Ypoikkeama,Zpoikkeama+200),v200,z10,imukuppi; MoveL Offs(hakutartunta,Xpoikkeama,Ypoikkeama,Zpoikkeama),v100,fine,imukuppi; Set IMU1; Set IMU2; WaitTime 0.5; MoveL Offs(hakutartunta,Xpoikkeama,Ypoikkeama,Zpoikkeama+300),v200,z10,imukuppi; Xpoikkeama:=Xpoikkeama-215; Viedään laatikko kuljettimelle laatikkomaara:=laatikkomaara+1; Käynnistetään KULJ11 Set DO_KUIT_P3; Robotti palaa takaisin hakeman uutta latikkoa Pysäytetään KULJ11 Reset DO_KUIT_P3; MoveL hakukoti,v500,z50,imukuppi; ENDFOR Ypoikkeama:=-305; Xpoikkeama:=0; ENDFOR Zpoikkeama:=-210; ENDFOR Zpoikkeama:=0; PulseDO DO_KUIT_P4; RETURN; ENDMODULE ENDPROC