AS-0.2230 Automaatio- ja systeemitekniikan laboratoriotyöt Työ 1: Logiikka ja robotti Sisältö Työn luonne... 2 Ohjelmoitava logiikka... 2 Hyllyvarasto... 3 Robotti... 4 Logiikan ohjelmointi... 5 Esiselostustehtävät... 7 Liite 1. Robotin ohjausohjelma... 9 Liite 2. Logiikkaohjelman komentoja... 10 Liite 3. Robotin komennot... 11 1 / 11
Työn luonne Tämän laboratoriotyön aiheena on ohjelmoitavan logiikan käyttö ja ohjelmointi. Ohjelmoitava logiikka (PLC - Programmable Logic Controller) on itsenäinen järjestelmä, jossa on suoritin ja helposti liitettäviä I/O-pisteitä (esim. binäärisiä tai analogisia), ja sitä voidaan käyttää ohjaamaan monenlaisia prosesseja (esim. kokoonpanolinja tai kemiallinen prosessi). Laboratoriotyön laitteistona on logiikkaan kytketyt ohjattava hyllyvarasto ja robottikäsivarsi, sekä PC, jolla PLC ja robotti ohjelmoidaan (ks. Kuva 1). Kuva 1 Laitteisto Tietokoneelta ladataan PLC:n ja robotin ohjelmat sarjaportin (RS-232) kautta. PLC on liitetty I/O-pisteidensä kautta hyllyvarastoon ja robotin ohjausyksikköön. Työssä tehdään ohjelma PLC:lle, robotin ohjelma on valmiiksi tehty. Ohjelmoitava logiikka Erilliseen kaappiin sijoitettu ohjelmoitava logiikka (Omron C200H) on tarkoitettu pienten prosessien ohjaukseen, ja sen ominaisuuksia ovat: 8 kb RAM Sarjaliikenneyksikkö (RS-232) ohjelmointia ja tietokoneliitäntää varten 8 paikkaa I/O-yksiköille, joihin asennettu: o 3 kpl binäärisiä tuloja sisältäviä yksiköitä, 16 tuloa/yksikkö (24 VDC) o 3 kpl binäärisiä relelähtöjä sisältäviä yksiköitä, 12 lähtöä/yksikkö (max. 2A, 250 VAC tai 24 VDC) o 2 kpl binäärisiä transistorilähtöjä sisältäviä yksiköitä, 12 lähtöä/yksikkö (max 0.3 A, 24 VDC) 2 / 11
Jännitelähde (24 VDC, 1.5 A) Hyllyvaraston ja robotin tilatieto- ja ohjaussignaalit on kytketty logiikan I/Opisteisiin taulukon 1 mukaisesti. Muistipaikan numeroissa kolme ensimmäistä numeroa viittaavat yksikön numeroon ja kaksi viimeistä numeroa yksikön tulon tai lähdön numeroon. Muistipaikan Tyyppi Symboli Kuvaus Muodostaja numero 000.00 Tulo LS2 hylly kohdalla rajakytkin 000.01 Tulo LS1 0-hylly kohdalla rajakytkin 000.02 Tulo NEXT_SHELF seur. hylly halutaan käyttäjä (nappi) 000.03 Tulo PREV_SHELF edell. hylly halutaan käyttäjä (nappi) 000.05 Tulo LS3 takaluukku kiinni turvakytkin 001.00 Lähtö MC1 moottori taaksepäin logiikan ohjelma 001.01 Lähtö MC2 moottori eteenpäin logiikan ohjelma 004.05 Tulo MANUAL käsiohjaus-tila käyttäjä (kytkin) 002.00 Tulo ROBOT_TAKE robotti purkaa robotin ohjelma 002.01 Tulo ROBOT_FILL robotti täyttää robotin ohjelma 002.02 Tulo ROBOT_HAND robotin käsi välissä robotin ohjelma 003.00 Lähtö SHELF_OK haluttu hylly kohdalla logiikan ohjelma Taulukko 1 Ohjelmoitavan logiikan kytkennät ja muistipaikkojen numerot Hyllyvarasto Ohjattavaa hyllyvarastoa (Paternoster) voidaan käyttää esim. kappaletavarateollisuudessa välivarastona, jossa kappaleen annetaan kuivua tietyn ajan maalauksen jälkeen. Hyllyvarastossa on 12 hyllyä (numeroitu 0-11), ks. Kuva 2. Hyllyjä täytetään tai tyhjennetään yksi kerrallaan varastossa olevan aukon kohdalta. Hyllyt on kiinnitetty ketjuun jatkuvaksi silmukkaradaksi, ja niitä siirtää sähkömoottori eteentai taaksepäin. Sähkömoottorin ohjaukset MC1 (Motor Control) ja MC2 on kytketty logiikan binäärisiin lähtöihin, yksi kumpaakin pyörimissuuntaa varten. 3 / 11
LS3 Hyllyt 0-11 LS1 LS2 Moottori MC1 MC2 Kuva 2 Hyllyvaraston anturointi ja ohjaukset Varaston tilaa mitataan muutamalla anturilla, jotka on kytketty logiikan binäärisiin tuloihin: valokenno LS1 (Limit Switch) ilmaisee onko hylly 0 aukon kohdalla täyttöä tai tyhjennystä varten rajakytkin LS2 ilmaisee onko jokin hylly aukon kohdalla turvakytkin LS3 ilmaisee onko varaston takaluukku kiinni Lisäksi hyllyvarastossa on käsikäyttöä varten painonapit seuraavan ja edellisen hyllyn ajamiseksi aukolle (logiikassa tulot NEXT_SHELF ja PREV_SHELF), valintakytkin käsi/automaattiohjaukselle (tulo MANUAL) sekä hätäseis-kytkin, joka pysäyttää moottorin ohjauksista riippumatta. Robotti Robotin (Mitsubishi MoveMaster II) osat ovat varsinainen robottikäsivarsi, ohjausyksikkö ja käsiohjain. Robottia voidaan ohjata käsiohjaimella tai ohjausyksiköllä. Käsiohjaimella opetetaan robotille pisteitä ajamalla robotin nivelet haluttuun asentoon ja laittamalla paikka muistiin. Paikkatietoon kuuluu lisäksi tarttujan auki/kiinni tieto. Ohjausyksikköä ohjelmoidaan tekstimuotoisella ohjelmointikielellä (Liite 2). Ohjelma voidaan esimerkiksi kirjoittaa PC:ssä tekstieditorilla ja siirtää sarjaportilla ohjausyksikölle. Ohjausyksikköön voidaan liittää muita laitteita, jolloin käytössä on 8 binääristä lähtöä ja 8 binääristä tuloa. Logiikka on liitetty ohjausyksikköön taulukon 2 mukaisesti. Numero Symboli Kuvaus Muodostaja Tulo 0 SHELF_OK haluttu hylly kohdalla logiikan ohjelma Tulo 2 FILL halutaan täyttää käyttäjä (nappi) Tulo 3 TAKE halutaan purkaa käyttäjä (nappi) Lähtö 0 ROBOT_TAKE robotti purkaa robotin ohjelma Lähtö 1 ROBOT_FILL robotti täyttää robotin ohjelma Lähtö 2 ROBOT_HAND robotin käsi välissä robotin ohjelma 4 / 11
Taulukko 2 Robotin ohjausyksikön liitännät Logiikan ohjelmointi Logiikan ohjelmointi tehdään siihen tarkoitetulla PC-ohjelmalla (Omron SysWin 3.3). Ohjelma tarjoaa kolme vaihtoehtoista ohjelmointitapaa: tikapuuohjelmointi (relekaavio), käskylista tai logiikkapiirikaavio. Työssä ohjelmointi tehdään tikapuumuodossa. Valmis ohjelma siirretään sarjaportilla logiikan muistiin. Tikapuuohjelmoinnista on määritelty kansainvälinen standardi (IEC 61131-3), jota lähes kaikki automaation laitevalmistajat noudattavat yhtenä logiikoiden ohjelmointitapana. Sitä kutsutaan myös relekaavioksi, koska se on alun perin lähtöisin releillä toteutettujen ohjauksien dokumentoinnista. Ideana on, että ohjelma on kuin tikapuu, jossa jokainen askelma on kytkentä yhden tai useamman sisääntulon tai ehdon, ja yhden ulostulon tai tuloksen välillä. Kuvassa 3 on pieni esimerkkiohjelma. Tikapuuohjelmoinnista löytyy myös melko mukava pikakurssi (englanninkielinen) netistä: http://www.plcs.net/contents.shtml. 1. 000.02 004.05 002.02 000.05 030.03 2. 030.03 000.00 3. 030.03 001.02 001.01 Kuva 3 Tikapuuohjelma, joka hakee varaston seuraavan hyllyn kohdalle, kun käyttäjä painaa seuraava hylly -painiketta Kuvan 3 ohjelmassa askeleet 1. - 3. toteuttavat seuraavat toiminnot: 1. Jos painiketta (kytketty sisääntuloon 000.02) painetaan JA varastoa voidaan ohjata manuaalisesti (kytkin, 004.05) JA robotin käsivarsi ei ole hyllyn välissä (002.02) JA varaston takaluukku on kiinni (000.05) niin apumuuttuja (030.03) saa arvon 1, muuten 0. 2. Pitopiiri, joka varmistaa, että apumuuttuja on tosi niin kauan kunnes hylly tulee kohdalle, eli hyllyn aistiva rajakytkin (000.00) sulkeutuu. 3. Jos apumuuttuja on 1 JA moottoria ei ohjata taaksepäin, niin kytketään moottori pyörimään eteenpäin. Tärkeää on pitää mielessä että ohjelman suorituksen periaate on että kaikki tikapuuohjelman askeleet käydään läpi samanaikaisesti. Tämän vuoksi yhtä 5 / 11
lähtöä saa ohjata vain yhdessä askeleessa, ja monimutkaisempaan ohjauslogiikkaan on käytettävä apumuuttujia, ks. kuva 4. 030.03 001.01 030.03 001.01 030.05 030.05 001.01 Väärin Oikein Kuva 4 Yhtä lähtöä saa ohjata vain yhdessä askeleessa Ohjelmoinnissa logiikan tuloja ja lähtöjä vastaavat taulukossa 1 esitetyt muistipaikan numerot. Omia sisäisiä muuttujia voidaan luoda esim. hyllyn järjestysnumeron ylläpitämiseksi. Valmiita blokkeja ja funktioita on saatavilla esim. arvojen vertailuun, laskureiden kasvattamiseen tai monimutkaisempaa laskentaa varten (ks. Liite 2). Seuraavat muuttujat ovat hyödyksi ohjelmassa: Binäärisinä (arvo 0 tai 1) apumuuttujina voi käyttää numeroita 030.00-030.15 ja 032.00-032.15. Kokonaislukumuuttujia voidaan käyttää nimillä DMxxxx, esim. DM0001, DM0002, vaikkapa laskurimuuttujia varten. Bitti 253.15 (RESET) saa arvon 1 ohjelman ensimmäisellä skannauskerralla (logiikan käynnistys tai reset) ja muutoin arvon 0. Seuraavat bitit saavat arvonsa vertailufunktiolta (CMP) viimeisimmän vertailun tuloksen mukaan: 255.05: Greater than 255.06: Equal to 255.07: Less than 6 / 11
Esiselostustehtävät 1. Selvitä, käyttäen robotin manuaalisivuja (Liite 3), mitä seuraavat robotin ohjelmarivit tekevät. a) 60 ID b) 300 OD 5 70 TB +3,60 310 MO 4 80 GS 300 320 MO 5 2. Selvitä mitä seuraavat tikapuuohjelman askeleet tekevät (ks. Liite 2). Muistipaikkojen numerot löytyvät taulukosta 1. a) 000.00 DIFU(13) 030.10 030.10 INC(38) DM0000 b) 002.01 CMP(20) DM0000 DM0001 255.05 002.02 001.01 3. Suunnittele ja tee valmiiksi seuraavien ohjeiden mukaisesti ohjelmoitavalle logiikalle tikapuuohjelma, joka on yhteensopiva valmiin robotin ohjausohjelman kanssa (Liite 1). Tarvittavat tilatiedot (tulot) ja ohjaukset (lähdöt) löytyvät taulukosta 1. 7 / 11
Robotti täyttää ja purkaa hyllyvarastoa ohjelmansa mukaisesti. Käyttäjä antaa painikkeilla robotille käskyn täyttää tai purkaa. Tavaran varastoinnissa noudatetaan FIFO -periaatetta (First In First Out), jolloin vanhin tavara puretaan ensimmäisenä varastosta. Yhdelle hyllylle laitetaan kerrallaan yksi kappale. Tikapuuohjelma toimii robotilta tulevien ohjausten mukaisesti, ja sen tulee sisältää seuraavat toiminnot: 1) Kun ohjelman suoritus alkaa (virrat kytketään päälle, bitti 253.15: RESET), varasto oletetaan tyhjäksi ja nollahylly ajetaan varaston aukon kohdalle. 2) Jos robotti haluaa purkaa varastoa (tulo ROBOT_TAKE), haetaan vanhin tavara aukon kohdalle. Robotille ilmoitetaan kun hylly on kohdalla (lähtö SHELF_OK). 3) Jos robotti haluaa täyttää varastoa (tulo ROBOT_FILL), haetaan ensimmäinen tyhjä hylly aukon kohdalle. Robotille ilmoitetaan kun hylly on kohdalla (lähtö SHELF_OK). Ohjelmassa on oltava varmistus, että hyllyjä ei liikuteta, jos jokin seuraavista on tosi: varaston takaluukku on auki (LS3 ei päällä) robotin käsivarsi on hyllyn välissä (ROBOT_HAND) hyllyjä liikutetaan vastakkaiseen suuntaan (MC1 tai MC2) Seuraava/edellinen nappeja ja käsi/automaatti kytkintä ei tarvitse huomioida, kuten ei myöskään sitä, jos varasto pääsee tyhjenemään tai täyttymään. Ohjelma on tehtävä mahdollisimman valmiiksi siten, että laboratorioon jää vain ohjelman debuggaus. Vinkkejä: - Robotin ohjelma kannattaa tutkia tarkkaan, koska siitä selviää miten se käsittelee signaaleja logiikan kanssa - Yksi lähestymistapa on, että pitää yllä laskureita nykyisen hyllyn numerosta, vanhimman tavaran hyllynumerosta ja ensimmäisen tyhjän hyllyn numerosta, ja perustaa ohjelman toiminnan noiden ylläpitoon ja vertailuun - Funktio, jolla asetetaan muuttujan DMxxxx arvo, on MOV - Funktiossa CMP voi myös vertailla muuttujan arvoa kiinteään lukuun, ei vain kahta muuttujaa keskenään Voit piirtää ohjelman paperille, tai katso työn www-sivulta, jos SysWin-ohjelma löytyy käytettäväksi jostain mikroluokasta tai asennuspakettina omalle PC:lle, jolloin voit tehdä sillä ohjelman valmiiksi. SysWinillä on melko mukava koota tikapuuohjelmaa, ja siitä löytyy opasteita ja referenssejä ohjelman tekoon. 8 / 11
Liite 1. Robotin ohjausohjelma (risuaidalla # alkava on kommenttia) Huomaa, että komento OD asettaa aina kaikkien lähtöjen tilat, eli sen parametri on desimaaliluku, jonka bitit vastaavat ulkoisia lähtöjä (bitti 0 = lähtö 0), siksi ohjelmassa on myös binäärinen vastine kommenteissa (ks. taulukko 2) # pääohjelma # pura varastoa # täytä varastoa 10 NT # aliohjelma # aliohjelma 20 SP 6 100 SP 4 300 SP 4 30 ID 105 OD 0 #000 305 OD 0 #000 40 TB -2,50 110 GP 7,7,11 310 GP 7,7,11 45 GS 300 120 OD 1 #001 320 OD 2 #010 50 TB -3,30 130 ID 330 ID 60 GS 100 140 TB -0,130 340 TB -0,330 70 GT 30 142 MO 5 350 MO 2 80 ED 145 OD 5 #101 360 MO 1 150 MO 7 370 MO 3 160 MO 4 380 MO 4 165 OD 1 #001 385 OD 6 #110 170 MO 8 390 MO 6 180 MO 10 400 MO 5 190 MO 9 405 OD 2 #010 200 MO 5 410 OD 0 210 OD 0 #000 420 RT 220 RT Robotin ohjausohjelmassa määritetyt ratapisteet: Numero Kuvaus Kouran tila 1 Ottopaikka Auki 2 Ottopaikan lähestymispiste Auki 3 Ottopaikan lähestymispiste Kiinni 4 Hyllyn lähestymispiste Kiinni 5 Hyllyn lähestymispiste Auki 6 Hylly Kiinni 7 Hylly Auki 8 Antopaikan lähestymispiste Kiinni 9 Antopaikan lähestymispiste Auki 10 Antopaikka Kiinni 9 / 11
Liite 2. Logiikkaohjelman komentoja 10 / 11
Liite 3. Robotin komennot 11 / 11