BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM Villamosmérnöki és Informatikai kar Irányítástechnika és Informatika Tanszék Folyamatirányítás Laboratórium Érintkezés nélküli érzékelés és mérés robotcellában 2015. március 30.
Tartalomjegyzék 1. Elméleti áttekintés 2 1.1. Robot kinematikai alapok.................. 2 1.2. Koordináta rendszerek.................... 3 1.2.1. XYZ........................... 3 1.2.2. Tool........................... 4 2. A rendszer fizikai felépítése 4 2.1. Robotkar............................ 4 2.2. PLC............................... 4 2.2.1. Alaplap: QD38DB................... 4 2.2.2. Tápegység: Q63P................... 5 2.2.3. QX80.......................... 5 2.2.4. QY80.......................... 5 2.2.5. Q03UDVCPU (PLC CPU).............. 5 2.2.6. Q172DRCPU (Motion CPU)............. 6 2.3. Betanító pult.......................... 6 2.4. Pneumatika.......................... 7 2.5. Összekapcsolás........................ 7 3. Fejlesztői környezet 8 3.1. GX Works2........................... 8 3.2. RT ToolBox2.......................... 8 3.2.1. Debug open....................... 9 3.3. Pozíció betanítás........................ 9 4. Melfa Basic V 11 4.1. Melfa Basic V......................... 11 4.2. Általános utasítások..................... 11 4.3. Mozgató utasítások, fogás, elengedés............ 11 4.4. Elágazások........................... 12 4.5. Szubrutinok.......................... 12 4.6. Memória utasítások...................... 12 5. Mérési feladat 14 5.1. Munkadarabok szelektálása................. 14 1
1. Elméleti áttekintés Manapság a sorozatgyártásban, az automatizált gyártósorokon elterjedten használnak különböző robotokat, amik a monoton, könnyen reprodukálható (automatizálható) emberi munkát kiváltják, és sokkal gyorsabb, precízebb, és sokkal hosszabb (napi három műszak) munkavégzéssel helyettesítik azt. Az iparban sokfajta robot terjedt el, például anyagszállítást végző mobilis robotok, az alkatrészbeültetésnél használt pick and place automaták, vagy az általánosabb munkavégzést elvégző robotkarok. A robotkarok között két architektúra terjedt el, az ún. vízszintes robotkarok (SCARA kar), amiket olyan feladatokra használnak, amelyeket jó közelítéssel egy síkban lehet elvégezni (a függőleges irányban relatív kis kitéréssel), például egy csomagolási feladat; illetve a függőleges robotkarok (Elbow kar), amik nagyon hasonlítanak az emberi karra (szokás ezeket antropomorf karoknak is nevezni), és általánosabb feladatokat képesek elvégezni. A mérés során egy függőleges kar programozását végezzük (3. ábra); a cél egy szortírozási probléma megoldása. A robot egy tárolóból lapos hengereket vesz ki, ezeket különböző érzékelőkhöz tartja (kapacitív és induktív közelségérzékelő, illetve színérzékelő), az érzékelők jelei alapján beazonosítja a munkadarab típusát, és végül a típusához tartozó tárolóba helyezi. 1.1. Robot kinematikai alapok A robot felfogható egy irányított mechanizmusnak, amely előírt pályán mozoghat és a pálya mentén előírható feladatokat lát el. A robot szegmensekből áll, melyeket transzlációs vagy rotációs csuklók kötnek össze, a robot mozgása pedig a fizika törvényeinek van alávetve. Működését az irányítás különböző szintjein, különféle modellekkel (kinematikai, dinamikus) írhatjuk le. A robotok programozásakor ezek közül a legegyszerűbb kinematikai (geometriai) modell játszik szerepet. Alkalmazói szempontból ugyanis merev robotok esetén, amelyeknél a rugalmas alakváltozás elhanyagolhatóan kicsi a robot elvárt pontosságához képest, a robot által elvégzendő mozgás definiálásakor alapul választhatunk egy bázis koordináta-rendszert (szokás világ koordinátarendszernek is nevezni), amelyhez képest előírjuk, hogy hol legyen a robot munkavégző eszköze (tool, végberendezés vagy end effektor) a mozgás soron következő fázisában. Mivel azonban nem csak a végberendezés (megfogó, szerszám, technológiai eszköz, festékszóró, ívhegesztő, stb) pozíciója fontos, hanem annak orientációja is (gondoljunk 2
arra, hogy ha a megfogó egy sörös üveget tart, akkor nem mindegy, hogy az üveg szája felfelé vagy lefelé néz), ezért kézenfekvő a végberendezéshez is egy koordináta rendszert rögzíteni és a két koordinátarendszer közötti relatív pozíciót és orientációt előírni. Ez azt jelenti, hogy van két derékszögű koordinátarendszer: a K B bázis koordinátarendszer és a K E end effector koordinátarendszer és a mozgás definiálása során azt mondjuk meg, hol legyen K E origója és hogyan álljanak a K E egységvektorai a világ koordináta-rendszer origójához és egységvektoraihoz képest. A robot szegmenseinek egymáshoz képesti relatív elhelyezkedése is hasonló elven alapulva írható le. Rögzíthetünk ugyanis a kinematikai láncban egy K i 1 koordináta-rendszert a megelőző szegmenshez, a kinematikai láncban soron következő szegmenshez pedig egy K i koordinátarendszert, és a mozgásukat leírhatjuk a két koordináta-rendszer relatív mozgása segítségével. Fizikailag a szegmenseket rendszerint motorok mozgatják fogaskerék vagy fogasléc áttételen keresztül,a motor elhelyezhető a megelelőző szegmensen, az áttétel tengelye pedig tekinthető a következő szegmenst mozgató (R rotációs, vagy T transzlációs) csukló tengelyének. A K i 1 koordinátarendszer z i 1 tengelye választható a soron következő szegmenst mozgató motor áttételének tengelyeként, a K i koordináta-rendszer x i tengelye pedig merőlegesen a megelőző (saját) és a következő csuklótengelyre. 1.2. Koordináta rendszerek 1.2.1. XYZ AK B bázis koordinátarendszerre a mérésen használt eszköz XY Z néven hivatkozik. Az ún. betanítópulton (2.3. alfejezet), amin a robot mozgatását, vezérlését és akár a programozását is végezhetjük, a JOG üzemmódot, és azon belül az XYZ opciót választva a robot végberendezését a világkoordinátarendszerben tudjuk mozgatni. Ez azt jelenti, hogy a végberendezést mozgathatjuk a bázis koordinátarendszer x tengelye mentén, ilyenkor a robot csuklói összehangoltan mozognak a kívánt mozgás elérése érdekében, illetve hasonlóan mozgathatjuk az y és z tengelyek mentén. Továbbá lehetőség van a végberendezés orientációjának a megváltoztatására, azaz forgathatjuk a bázis koordinátarendszer x, y, és z tengelye mentén. A bázis koordinátarendszer legfontosabb tulajdonsága, hogy rögzített, és a robot mozgása során nem változik (lehetőség van a bázis koordinátarendszer áttranszformálására szoftveresen, de az áttranszformálás után a koordinátarendszer nem 3
változik). 1.2.2. Tool A mérésen használt eszköz a végberendezéshez rendelt K E koordinátarendszerre Tool néven hivatkozik. A betanítópult JOG üzemmódjában a Tool opciót választva a robot végberendezése az end effektor koordinátarendszer tengelyei mentén mozgatható illetve forgatható. Az end effektor koordinátarendszer sajátossága, hogy a végberendezéshez van rögzítve, azaz a tengelyei együtt mozognak a robottal. 2. A rendszer fizikai felépítése 2.1. Robotkar A kar típusa Mitsubishi RV-2F-Q. A maximális teher amit elbír 2 kilogramm. 6 tengellyel rendelkezik, a csuklótengelyek (angolul joint) alulról felfelé vannak számozva (J1, J2,...,J6); ezek közül a J2, J3 és J5 csuklók rendelkeznek fékkel. Az egyes tengelyek meghajtását AC motorok végzik hullámhajtóműs áttétellel, amik abszolút encoderrel vannak felszerelve. Az encoderek értéket a robot a beépített akkumulátor segítésével tárolja kikapcsolt állapotban (amennyiben az akkumulátor lemerül, a robotot újra kell kalibrálni). 2.2. PLC A PLC moduljai a System Q moduláris PLC rendszer/család tagjai; a 8 slotos alaplaphoz csatlakoznak: tápegység modul, processzor kártya beépített ethernet csatlakozóval, egy Motion CPU, és egy-egy egyenként 16 digitális I/O. 2.2.1. Alaplap: QD38DB A PLC alapegysége. Funkciója: felületet biztosít a modulok szerelésére, összekötésére és nagy sebességű kommunikációt biztosít az egyes modulok között. Az alaplapon elhelyezhető modulok: CPU modulok, Tápmodul, Bemeneti modul, Kimeneti modul, Hálózati modul és Speciális funkciójú modulok. DB típusra szükség van az IQ Works keretrendszer felállításához, valamint a robot CPU működéséhez. 4
2.2.2. Tápegység: Q63P Bemenet: 24 VDC Kimenet: 5 VDC / 6 A Tápellátás az összes többi elemnek a hátlapon. LED-es indikátor a működési állapotról. 2.2.3. QX80 16 darab digitális bemenettel rendelkezik, amik optocsatolós galvanikus leválasztással rendelkeznek. A bemeneti jelszint 24 VDC (4mA), ezt a jelszintet konvertálja digitális jellé. Led-es indikátorok jelzik a bemeneti állapotokat negatív logikával (1. ábra). 1. ábra. Negatív logika (nyelő) 2.2.4. QY80 16 darab tranzisztoros kimenet. A kimeneti jelszint 20V. 2.2.5. Q03UDVCPU (PLC CPU) A robotvezérlőhöz csatlakoztatott PLC processzorkártyája, ez kezeli a digitális kimeneteket/bemeneteket, a hálózati kártyát, és utasításokat küldhet a robotvezérlő CPU-nak. univerzális Q CPU modul 30k memória 5
20ns végrehajtási idő utasításonként Ethernet és USB csatlakozás Legújabb generációs moduláris CPU iq rendszerhez fejlesztették ki összekapcsolható a motion CPU-val rendkívül gyors bit feldolgozás: 9.5ns nagy sebességű adathozzáférés Szó (16bit) memóriaszervezés 2.2.6. Q172DRCPU (Motion CPU) Ez a CPU végzi a robot vezérlését, ezen futnak a pályatervezési primitívek. Elődeinél gyorsabb feldolgozási sebesség Egy rendszeren belül 3 robotot is képes irányítani Egyszerű és minden implementálható szoftvert használ Rugalmas kezelhetőség a megosztott iq hálózaton, I/O, valamint az intelligens modulokon keresztül Gyors ciklusidő az inter-cpu megosztott/közös memória buszán Bites memóriaszervezés 2.3. Betanító pult A betanítópult (TB, Teaching Box) (2. ábra) segítségével lehet a robotot kézi vezérléssel adott pozíciókba állítani és ezeket eltárolni (a pontok tárolását a PC-n futó szoftver segítségével is elvégezhetjük, amennyiben a PC csatlakoztatva van a robothoz). Az érintőképernyőn mozgathatjuk a kart az összes lehetséges koordinátarendszer szerint (XYZ és TOOL koordinátarendszer tengelyei mentén mozgatjuk, vagy forgatjuk a végberendezést) vagy a csuklóváltozók szerint (az egyes csuklók 6
szögeit egyenként növeljük vagy csökkentjük). A kézi vezérlés bekapcsolásához a teljesítményelektronikán levő kulcsnak Manual állásban kell lennie, a pult hátulján levő gombot folyamatosan nyomva kell tartani (dead man button) és a Teach feliratú kapcsolónak benyova kell lennie. 2. ábra. Betanító pult 2.4. Pneumatika A roboton levő megfogó pofákat egy sűrített levegővel üzemelő munkahenger mozgatja, amihez a szükséges nyomást egy kompresszor biztosítja. A solenoid szeleptelep vezérlését gyárilag megoldották, szoftverből meglévő függvénnyel (Hopen, Hclose) lehet vezérelni, amire a betanító pulton is van lehetőség. 2.5. Összekapcsolás A rendszer összekapcsolását a 3. ábra mutatja be. A hallgatók a mérés során a PLC programozásán kívül az összes eszközt használni fogják. 7
3. ábra. Rendszer felépítése 3. Fejlesztői környezet 3.1. GX Works2 A GX Works2 program segítségével lehet programozni a PLC CPU-t. Támogatott programozási nyelvek: Létra, Strukturált létra, ST, SFC, IL. Csatlakozni tud USB-n és Etherneten keresztül is a PLC beépített hálózati moduljához. Monitoring funckió segítéségével pedig figyelni lehet az egyes memória blokkok értékét és diagnosztizálni lehet a hibakódokat is. A mérés során ezt a programot nem használjuk. 3.2. RT ToolBox2 A mérés során a legfontosabb szoftver az RT Toolbox. Ezzel lehet programozni a Motion CPU-t, ami a robot mozgásáért felelős. A programnak három fő állapota van. Offline üzemmódban lokálisan írhatunk programokat, amik a PC-n a projekten belül tárolódnak. Online üzemmódban a program csatlakozik a PLC-n keresztül a Motion CPU-hoz. Ebben az esetben megjelenik az Online lista, ahol láthatóak a roboton levő programok. A Debug Open (4. ábra) opció kiválasztása után a program soronként léptethető, ilyenkor a robot csökkentett mozgási sebességgel mozog. A harmadik fő üzemmód a szimuláció. Ebben az üzemmódban a szoftver ugyanúgy viselkedik, mintha Online csatlakozna egy robothoz. Ilyenkor a viselkedését a 3D Monitor segítségével szimulálhatjuk (5. ábra). 8
4. ábra. RT Toolbox 3.2.1. Debug open Miután csatlakoztunk a robothoz (Online vagy Simulation) a Debug funckió segítségével tudjuk a programunkat soronként léptetni (STEP FORWD, STEP BACKWD), folyamatosan futtatni (FORWD). Az OVRD legördülő menü segítségével lehet a robot mozgásának a sebességét felülírni, tehát ha a programban például 50 százalékot állítottunk be, de a debug ablakban 10 százalék van beállítva akkor a kettő szorzata lesz a tényleges mozgási sebesség. A RESET mezőben taláható gombokkal lehet a program elejére ugorni (program számláló reset) és a hibaüzeneteket nyugtázni (Error reset). Jump segítségével lehet a programkód megadott sorára ugorni. JOG üzemmódban az egyes csuklópontok szabadon mozgathatóak. 3.3. Pozíció betanítás A 4. ábrán a programkód alatt látható Add gomb segítségével lehet pozíciókat felvenni. A felnyíló menüben meg kell adni az adott pozíció nevét ami mindig p-vel kell, hogy kezdődjön (pl: pcolor, psensor). Ezután kiválasztható, hogy a pozíció csuklópontok aktuális állása alapján, vagy pedig a globális XYZ koordináta rendszer alapján kerüljön 9
5. ábra. 3D Vision Simulation eltárolásra. A Get Current Position gomb megnyomásával a kar aktuális pozíciója kerül elmentésre, a mérés során ezt a funckiót fogjuk használni (7. ábra). 10
4. Melfa Basic V 4.1. Melfa Basic V 6. ábra. Debug Ezt a programozási nyelvet a Mitsubishi fejlesztette ki a gyártósori robotok programozására. A nevéből is adódóan egy basic típusú nyelv. Speciális karakterek az ami a kommentet jelöli és a * ami pedig címkét jelöl. 4.2. Általános utasítások Servo On/Off utasítással lehet a szervó motorokat be- és kikapcsolni. Az Ovrd utasítással lehet a mozgatás sebességét megadni %-ban. End utasítás a program végét jelenti. 4.3. Mozgató utasítások, fogás, elengedés A MOV és az MVS utasítások segítségével lehet a kart az előre betanított pozíciókba mozdítani. pl: MOV pkezdo. A megfogó pofa kinyitása a Hopen, bezárása a Hclose utasítással történik. HOpen 1 11
7. ábra. Add position Mov pbeforegrab HCpen 1 4.4. Elágazások If MColorCh1 = 1 Then GoSub *BluePlastic 4.5. Szubrutinok A GOSUB utasítással lehet szubrutint meghívni. Címkét megadni * karakterrel lehet és a szubrutin végén Return utasításnak kell szerepelnie. *Metal Mov pmetal Dly 0.1 Return Fem tarolo 4.6. Memória utasítások A PLC által küldött szenzorinformációkat a megosztott memóriából kell kiolvasni, erre az M_in(cím) utasítás szolgál. A mérés során 12
használt szenzorok jelei az alábbi címeken vannak: MCapacitive=M_In(10160) Kapacitív közelségérzékelő MInductive=M_In(10161) Induktív közelségérzékelő NEGÁLT logikával MColorCh1=M_In(10162) Színérzékelő 1-es csatorna MColorCh2=M_In(10163) Színérzékelő 2-es csatorna MColorCh3=M_In(10164) Színérzékelő 3-as csatorna 13
5. Mérési feladat 5.1. Munkadarabok szelektálása A bejövő munkadarabok egy tárolóból érkeznek, a munkadarabot meg kell fogni, ellenőrizni kell a megfogás sikerességét, ezután pedig meg kell határozni az anyagát és a megfelelő tárolóba kell helyezni. Négyféle munkadarabot különböztetünk meg: fém, fa, piros műanyag, kék műanyag korong. A kapacitív közelítésérzékelő az összes anyagra jelez, tehát ezt fogjuk arra használni, hogy ellenőrizzük a megfogás sikerességét. A Balluff photoelektromos színszenzor 3 különböző színű anyagot tud megkülönböztetni, a negyediket, a fém korongot pedig az induktív közelítésérzékelő segítségével fogjuk azonosítani. 8. ábra. Mérési feladat 14