MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE 3515 Miskolc-Egyetemváros
PROGRAMOZÁSI SEGÉDLET FESTO MPS RENDSZER MITSUBISHI ROBOTHOZ
Készítette:
FEKETE TAMÁS BSc szintű, gépészmérnök szakos Szerszámgépészeti és Mechatronikai szakirányos hallgató 2014. május 19.
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
Ez az oktatási segédlet „Festo MPS rendszer Mitsubishi robot programozás” című szakdolgozatom mellékleteként készült. Lépésről lépésre igyekszem bemutatni a robot alapvető vezérlését, a CIROS Programming szoftver használatát és az alkalmazott programozási nyelv, a MELFA BASIC legfontosabb utasításait. Az elméleti ismertetés mellett gyakorlati példákkal szemléltetem a programozást. A segédlet az angol nyelvű leírások és dokumentációk, a saját tapasztalataim és az eredeti mintaprogram alapján készült. Magával a Festo MPS mechatronikai rendszerrel és a robot bemutatásával a szakdolgozatomban foglalkozom.
2
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
TARTALOMJEGYZÉK 1. AZ MPS MECHATRONIKAI RENDSZER .............................................................................................. 4 1.1 A RENDSZER ÜZEMBE HELYEZÉSE .............................................................................................. 5 2. VEZÉRLÉS ........................................................................................................................................... 6 2.1 ROBOT VEZÉRLŐ .......................................................................................................................... 6 3. CIROS PROGRAMMING SZOFTVER .................................................................................................. 8 3.1 FELHASZNÁLÓI FELÜLET ............................................................................................................. 8 3.1.1 RCI EXPLORER ..................................................................................................................... 9 3.2 ÚJ PROJEKT ................................................................................................................................ 11 3.3 PROGRAMOK KEZELÉSE ............................................................................................................ 14 3.4 JOG ÜZEMMÓD ........................................................................................................................... 16 4. PROGRAMOZÁS................................................................................................................................. 19 4.1 HELLO WORLD! .......................................................................................................................... 20 4.2 PICK & PLACE ............................................................................................................................ 21 4.3 PROGRAMSTRUKTÚRA ............................................................................................................... 23 4.4 I/O HASZNÁLAT .......................................................................................................................... 26 4.5 SZERVOTRANSZPORTER HASZNÁLATA ..................................................................................... 27 5. UTASÍTÁSLISTA ................................................................................................................................ 29 6. IRODALOMJEGYZÉK......................................................................................................................... 30
3
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
1. AZ MPS MECHATRONIKAI RENDSZER A teljes labort megpróbáltam áttekinthetően ábrázolni egy sematikus ábrán. Természetesen rengeteg részlet lemaradt, a valóság ennél sokkal bonyolultabb, egy-egy vonal akár 10-20 vezetéket is szimbolizálhat az ábrán. Külön színnel jelöltem a különböző jellegű vezetékeket, illetve igyekeztem függőlegesen egymás felé rendezni az egymáshoz tartozó elemeket. 6 bar levegő
Magasraktár
MPS rendszer
Szervotranszporter
PLC
PLC
SPC200 Vezérlő
I/O
Robot
CR1DA-771-S15 Robot Vezérlő
24V DC Táp 230V AC
Ethernet
Kézi Vezérlő
CIROS
Számítógép 1. ábra
A robot elemei a jobb oldalon találhatók, ezek a vezérlő és a kézi vezérlő, illetve maga a robot. Mellette található a szervotranszporter, mely a robotot mozgatja, így fontos szerepe van a programozás szempontjából.A rendszer további elemei maguk az MPS modulok, ezek közül is kiemelve a magasraktárat. Ezekkel közvetlen fizikai kapcsolata már nincs a robotnak, de a vezérléseikkel szintén I/O csatornákon és Etherneten keresztül valósul meg a kommunikáció. A rendszerről bővebben a szakdolgozatomban írtam, a továbbiakban csak a robot vezérléséről és programozásáról foglalkozom.
4
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
1.1 A RENDSZER ÜZEMBE HELYEZÉSE Az első lépés a munka megkezdése előtt, hogy üzembe helyezzük a különböző berendezéseket: • • • • •
Számítógép bekapcsolása, illetve bejelentkezés az operációs rendszerbe Elosztó bekapcsolása, majd a kettő 24V DC táp bekapcsolása Robot vezérlő bekapcsolása, számítógépes programozáshoz Automatikus üzemmódba kapcsolása Pneumatikus főszelep megnyitása Szükség szerint vezérlőpaneleken hibatörlés és készenléti módba kapcsolása
2. ábra A tápok, melyek a 24V DC feszültséget biztosítják
3. ábra A labor pneumatikus főszelepe
Fontos figyelni arra, hogy bekapcsoláskor senki se tartózkodjon a rendszer közvetlen közelében, hiszen egyes elemek, például a magasraktár üzembe helyezéskor alaphelyzetbe áll, és ezek a mozgások adott esetben balesetveszélyesek is lehetnek. Ezen felül hosszú távú használat előtt érdemes áttanulmányozni a különböző dokumentációkat és biztonsági előírásokat a további üzemelési és karbantartási teendőkről.
5
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
2. VEZÉRLÉS 2.1 ROBOT VEZÉRLŐ
4. ábra A robot vezérlő előlapján lévő kezelőelemek
①START gomb
A kiválasztott program elindítása.
②STOP gomb
Program leállítása, de a szervó bekapcsolva hagyása.
③RESET gomb
Hibaüzenetek nyugtázása és programmemória törlése visszaállás alapállapotba.
④EMG.STOP vészleállító Program leállítása és szervó azonnali kikapcsolása. ⑤CHNGDISP gomb
Váltás a menüpontok között.
⑥END gomb
Program leállítása az utolsó sornál vagy END parancsnál.
⑦SVO.ON gomb
Szervomotorok bekapcsolása.
⑧SVO.OFF gomb
Szervomotorok kikapcsolása.
⑨STATUS NUMBER
Kijelző, itt jelennek meg a programnevek, hibakódok stb.
⑩MODE kapcsoló
Manuális és Automatikus üzemmód közötti kapcsolás.
⑪UP/DOWN gombok
Velük az aktuális menüpontok belül lehet mozogni.
⑫T/B csatlakozó aljzat
Ide lehet csatlakoztatni a kézi vezérlőt.
⑬A CRnQ-700 szériában nem használt csatlakozófelület. ⑭ RS-232 csatlakozó
A tanszéki laborban szintén nem használt. 6
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE A vezérlődoboz egy ipari robot elengedhetetlen része. Elsősorban a tömege és melegedése miatt építik külön a robottól, másrészt, hogy elválasszák az esetleges fizikai vagy kémiai hatásoktól, illetve üzem közben a kezelő személyzet sem közvetlenül a robotnál tartózkodik. Ez a vezérlő hordozza a robot számára szükséges áramot előállító tápot, a pályageneráláshoz szükséges vezérlőáramköröket, csatlakozási és kommunikációs perifériákat és néhány alapvető kezelőelemet. Az MPS laborban lévő robothoz a CR1DA-771-S15 típusszámú vezérlő tartozik. Programozni erről nem lehet a robotot, de az elkészült programokat végső soron innen is lehet futtatni. A robot vezérlőt üzembe helyezni a jobb alsó sarokban lévő főkapcsolóval lehet. Legfontosabb kezelőelem a MODE jelű kulccsal állítható kapcsoló. Manuális üzemmódban a kézi vezérlőpanelt lehet használni, Automatikus üzemmódban pedig számítógépről irányítható a robot, vagy a vezérlőn lévő programok indíthatók el. A többi gomb funkciója általában elérhető számítógépről, vagy a kézi vezérlővel, így használatukra különösebben itt nem térnék ki. Rövid leírást a 4-es ábra alatt adtam a vezérlő kezelőfelületéről.
2.2 KÉZI VEZÉRLŐ A kézi vezérlő közvetlenül a vezérlődoboz TB feliratú aljzatába van csatlakoztatva. Jele R32TB, a dokumentációkban T/B vagy TB rövidítéssel hivatkoznak rá, angol neve Teaching Pendant. Sok funkció elérhető rajta, azonban használata lassú és nehézkes, így nem javasolt. Használható segítségével a Jog üzemmód, szerkeszthetők a programok, leolvashatók a robot csuklóinak pozíciói, mégis ritka, hogy használatba kerül. Az alapvető funkciókhoz elegendő az alábbi felsorolásból az elsőt, illetve az első kettőt teljesíteni, azonban a robot mozgatásához, például Jog üzemmód eléréséhez mind a négy lépés szükséges: • • • •
Vezérlőt kulccsal Manuális üzemmódba kapcsolni Kézi vezérlő tetején lévő Enable gomb bekapcsolása, ezt az előlapon egy LED is jelezni fogja. Kézi vezérlő hátulján lévő biztonsági kapcsoló köztes állapotba billentése. Szervó bekapcsolása, ezt szintén jelzi egy LED.
Ha a MODE kapcsoló Automatikus üzemmódba van kapcsolva, miközben bekapcsoljuk az Enable gombot, hibát kapunk, melyet hangos sípolással jelez a rendszer. Ezt a // jelű RESET feliratú gombbal lehet kikapcsolni. Hibát programozás közben is jelezhet a vezérlő utasítás adásakor vagy program indításakor, de általában a számítógépről is rögtön törölhető.
7
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
3. CIROS PROGRAMMING SZOFTVER 3.1 FELHASZNÁLÓI FELÜLET A CIROS Programming szoftver felhasználói felülete a már megszokott Windows-os elrendezést követi, bár a szokásostól talán több ablak található meg rajta.
5. ábra A CIROS Programming felhasználói felülete
Bal oldalról haladva látható a robot 3D-s modellje, mellette a Jog Operation ablak, majd az aktuális program kódja. Az alsó sorban az RCI Explorer ablaka, mellette a pozíciólista, majd a legkisebb ablak a robottal való kommunikáció üzeneteit jeleníti meg.
6. ábra A menüsoron található leggyakrabban használt ikonok
A robot 3D-s modelljének képét lehet változtatni is egyrészt a View menüben elemeivel, vagy a kattintás közben a Ctrl, a Shift vagy mindkettő nyomvatartásával tudjuk a képet forgatni, mozgatni illetve közelíteni. A CIROS Programming szoftverben azonban ennél sokkal többet a 3D-s modellel sajnos nem tehetünk, például szimulálásra itt nincs lehetőség.
8
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE A különböző ablakokat természetesen kedvünkre mozgathatjuk és átméretezhetjük. Hasznos eszköz a Workspaces menü, ahol a saját elrendezésünket tudjuk későbbi használatra lementeni. Ezt a Window/Workspaces/Configure Workspaces útvonalon érhetjük el. Itt jobb egérgombbal kattintva a legördülő menüben tudunk új elrendezést készíteni az Add current workspace elemmel, illetve új mappát az Add new menu elemmel.
7. ábra Configure Workspaces ablak egy új mappával és benne egy létrehozott elrendezéssel
3.1.1 RCI EXPLORER Az RCI Explorer (Robor Controller Interface) a szoftver azon modulja, mely kommunikál a robot vezérlőjével, így ezen keresztül tudjuk a programokat feltölteni, illetve a robot állapotát vizsgálni. Rengeteg menü található itt, csak a legfontosabbakat és leghasznosabbakat soroljuk fel. A Connection menüben lehet a robothoz csatlakozni, a Robot Type menüben a robot legfontosabb adatait találjuk meg, alatta a vezérlőn található programok mappája található. A Slots menü multitaskingos programokhoz szükséges, amikor egyszerre több programot szeretnénk futtatni. A System Variables menü további adatokat szolgáltat a robotról.
8. ábra Az RCI Explorer Robot Type menüje
9
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE A Monitors menüben találhatók meg a különböző fizikai állapotfigyelő ablakok. A leghasznosabb talán az I/O monitor, mellyel a robot vezérlőjébe csatlakoztatott kommunikációs jeleket tudjuk valós időben figyelni, továbbá a Debugger, mellyel a programokat lépésről lépésre futtathatjuk le. Ezen kívül rengeteg eszköz található itt meg a pozíció, a terhelés, a különböző sebességek és változók lekérdezéséhez.
9. ábra RCI Explorer Monitors menüje
10. ábra Program Monitor a jelenleg futó program nyomonkövetésére
10
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
3.2 ÚJ PROJEKT A robot programozásához szükség van programfájlra, melyhez tartozik egy pozíció lista egy külön fájlban, ugyanazzal a névvel. Ezeket külön is megírhatjuk, illetve felmásolhatjuk a vezérlőre, azonban több program használatánál ajánlott a projektek létrehozása, pláne ha azokat párhuzamosan is szeretnénk futtatni. Egy projekt tartalmazza a benne lévő programokat, pozíció listákat, illetve további paramétereket is a robotról, mely akkor nélkülözhetetlen, ha akár több robotot is használunk egyszerre. A CIROS Programming szoftver is elsősorban a projektek létrehozását támogatja, melyhez hozzárendeli a programokat, így egyszerűbben tudjuk mindet egyszerre kezelni és feltölteni a vezérlőre. Új projet létrehozását a File/New/Project Wizard menüvel kezdhetjük el. Először a projekt nevét és a programunk nevét adhatjuk meg. A program név csak nagybetűkből és számokból állhat. Ezután megadhatjuk a nevünket, és leírást készíthetünk a programunkról, mely opcionális, de ajánlott, ha többen is használjuk a robotot, illetve sok programunk van már.
11. ábra Project Wizard, első lépés
A Next gomb nyomása után a következő ablakban a robot típusát választhatjuk ki, esetünkben ez az RV-2SD/SDB/SQ sor lesz. Ekkor megjelenik a robot egyszerűsített 3D-s modellje is. I/O Interface Cards-nál és Hands-nél is „1”-et kell választanunk, mert nincs bővített I/O kártya beépítve és csak egy megfogóval rendelkezik a robotunk. A Programming Language legyen a legújabb MELFA BASIC V-ös, bár esetünkben minden megírt program működne IV verzióban is, mert a vezérlő támogatja azt a nyelvet is. Viszont az Additional Axis résznél, ahol további kiegészítő tengelyeket lehet megadni a „none”-t kell választanunk, mert a lineáris szervotranszportert nem a robot vezérlője irányítja, az ebből a szempontból teljesen különálló elem a saját vezérlőjével.
11
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
12. ábra Project Wizard, második lépés
A harmadik ablakban további megjegyzéseket írhatunk, ezt nyugodtan átugorhatjuk. Ekkor megjelenik a fentebb már bemutatott képernyőkép az alapvető ablakokkal. Ekkor már elkezdhetjük a programozást, de a programok futtatásához szükséges kapcsolatot létesíteni a robottal. Ehhez az RCI Explorer/RV-2SD/Connection menüpontra kell jobb egérgombbal kattintanunk, majd a legördülő menüben a Properties… elemre kell kattintani.
13. ábra Connection legördülő menüje
A megnyíló Communication Port nevű ablakban lehet beállítani hogyan szeretnénk a robothoz csatlakozni. A laborban ez TCP/IP porton keresztül van megvalósítva, így a Common fül Communication Interface részében ezt kell kiválasztani, majd a TCP/IP fülön belül lehet a további beállításokat eszközölni, elsősorban a robot IP címét. Ha ezt beállítottuk, akkor ismét a legördülő menüre lesz szükségünk, ahol a Connect elemre kattintunk, ezzel csatlakozunk is a robothoz. Ezt a menüsoron található Init Connection ikonnal is megtehetjük.
12
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
14. ábra Communication Port ablak
Csatlakozás után az alábbi ablak fogad minket, mely nyugtázza a létesített kapcsolatot és néhány tájékoztató információt ad a robotról, annak memóriájáról és a rajta már megtalálható programok számáról.
15. ábra A Robot Type ablak csatlakozáskor jelenik meg
Ezután elkezdhetjük a pozíciók felvételét és a programok írását majd lementését. Ha meg szeretnénk bizonyosodni, hogy a kapcsolat él és tudjuk vezérelni a robotot, akkor a Command Tool eszközzel tudunk rá közvetlenül parancsokat küldeni, erről a 3.4-es pontban található bővebb információ.
16. ábra Az RCI Explorer állapotjelzése a kapcsolatról
13
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
3.3 PROGRAMOK KEZELÉSE A programfájlokat az RCI Explorerben találjuk, azon belül is külön a vezérlő mappáját (RV-2SD/Programs) és a számítógépen található mappát (Workplace/Programs). A megírt programokat a vezérlőre másolni a Download paranccsal lehet, amit elérhetünk a menüsoron található ikonról, de a programlistából kiválasztva és jobb egérgombbal kattintva is megtalálható a Download a legördülő menüben. Lehetőség van minden programot és pizíciólistát egyszerre átmásolni, így elkerülhető, hogy véletlenül kihagyunk valamit. Ehhez a 17-es ábra szerint a Programs mappára kell jobb egérgombbal kattintani, majd ott a Download all parancsot választani.
17. ábra Minden program átmásolása a vezérlőre
Ezután megjelenik az alábbi ablak, ahol kiválaszthatjuk milyen néven szeretnénk a programot menteni, illetve igény szerint kiválaszthatjuk, hogy mely sorokat másolja át. Ha sok programot, illetve pozíciólistát másolunk egyszerre, ez az ablak többször megjelenik, minden esetben kattinthatunk az Ok gombra.
18. ábra Up- and Download ablak
14
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE Ha átmásoltuk a programot, akkor immár a vezérlő mappájában megkeresve azt és jobb egérgombbal rákattintva az alábbi legördülő menüt kapjuk. Itt választhatunk, hogy Debug módban, egyszer lefuttatva (CYC) vagy végtelenül ismétlődően (REP) szeretnénk azt lefuttatni.
19. ábra A vezérlőn található programok legördülő menüje
Fontos megemlíteni a Stop opciót is, itt tudjuk később leállítani az éppen futó programot, illetve a listában található a Load into pont is, ezzel különböző Slot helyekre tudjuk a programokat betölteni, ha párhuzamosan többet szeretnénk lefuttatni. A megírt programok tesztelésének első lépése a Syntax check, melyet a Programming/Check Syntax menüpontból érhetünk el. Ekkor a program átnézi a kódunkat, és jelez, ha számára értelmezhetetlen részt talált benne. A második lépés lehet az imént említett Debug, ami gyakorlatilag már lefuttatja a programot, de egyszerre csak egy sort, és mi léphetünk át mindig a következőre, így nyomon követhető, éppen mit csinál a robot. Egy másik segítség a programíráshoz a Programming/Renumber menüpontban elérhető kis ablak, ahol beállíthatjuk a sorok számozásának módját, így a program ezt automatikusan elvégzi, nekünk nem kell a számozással foglalkoznunk. Beállítható továbbá, hogy hányasával emelkedjenek a sorszámok. A programok és az aktuális projekt további beállításai elérhetők a Project Management ablakban. Ezt több helyen is meg tudjuk nyitni, például a Programming/Project Management útvonalon vagy az RCI Explorer-ben a Workplace/Tools menü alatt. Itt beállíthatjuk a projektünk nevét, elérési útvonalát, illetve, hogy melyik programok és pozíciólisták tartoznak hozzá, és ezek közül melyik a főprogram.
15
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
3.4 JOG ÜZEMMÓD A Jog üzemmód a robot programozásának első lépése, ekkor vesszük fel a program során elérendő pozíciókat. Meg kell terveznünk pontosan hány pozícióra lesz szükségünk, azokat milyen sorrendben szeretnénk érinteni, illetve hogyan tudjuk azokat elérni. Ez függ a mozgás interpolációjának alkalmazott módjától, melyre később még kitérek. Megeshet, hogy egy-egy kívánt pozíciót a robot nem tud elérni, más tárgy vagy saját felépítése korlátozza ebben. Sok pozíciót csak bizonyos helyzetben tud elérni a robot. A megfogó például két, egymásra merőleges helyzetben tudja a munkadarabokat megfogni, közeli pozíciókat csak az egyik módon, távoli pozíciókat, például a magazint csak a másik oldalával, így ezt is figyelembe kell vennünk. A Jog üzemmódhoz ajánlott lassú mozgásokat használni, hiszen ekkor még csak tanítjuk a mozgást, azonban nem egyértelmű, hogy éppen hova fog menni és azt milyen tengelymozgatásokkal tudja elérni.
20. ábra Jog Operation ablak XYZ Jog módban
Az ablak megnyitásához használhatjuk a menüsoron található ikonját, vagy megtaláljuk az Extras/Online management/Jog Operation menüben is. Alapvetően három fajta tanító mód van, melyek közül a jobb oldalon választhatunk: • • •
XYZ Jog, ahol világ koordinátarendszerben mozoghatunk JOINT Jog, mellyel a robot tengelyeit külön mozgathatjuk TOOL Jog, mely a megfogóhoz társított koordinátarendszert használja
A mozgások lehetnek egyenes vonalú haladó mozgások vagy forgások, JOINT Jog esetében természetesen csak az utóbbi.
16
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE Alul beállítható a Jog üzemmód sebessége mm/s-ban (Jog Speed), illetve az egy gombnyomásra történő elmozdulás mm-ben vagy tengely forgatása esetén értelemszerűen fokokban (Jog Increment) A jobb oszlop tetején egy gombbal nyithatjuk vagy zárhatjuk a megfogót, illetve ami fontos még az a Position List rész, itt vehetjük fel az új pozíciókat vagy írhatjuk felül a már meglévőket a megnyitott pozíciólistánkban. A pozíciók mentése kulcsfontosságú folyamat és több ponton el lehet rontani, emiatt nagy figyelmet érdemel. Ha több pozícióból álló láncot szeretnénk lementeni, például P1, P2, P3 és P4 pozíciókon szeretnénk sorba küldeni a robotot, akkor nemcsak külön-külön kell őket lementenünk, de az egymás után következő pozíciókat ki kell próbálnunk, hogy egyáltalán képes-e a vezérlő legenerálni a szükséges pályákat. Ha túl messze vannak egymástól a pontok, vagy a robot felépítéséből adódóan nem képes egyértelműen meghatározni az útvonalat, hibaüzenetet fogunk kapni. Rosszabb esetben viszont teljesen váratlan mozgásokat is kaphatunk, ami balesetveszélyes lehet, ezért indokolt Jog közben a lassú sebességek használata, illetve a pozíciók közötti mozgások előzetes tesztelése. A robot mozgásának sebességét alapvetően az Override értékekkel adhatjuk meg százalékokban. Létezik egy vezérlő override érték, illetve egy program override, majd a mozgás interpoláció típusához tartozó érték. A végleges sebesség ezek szorzataként adódik. Mivel Jog üzemmódban nem használhatjuk a program override-ot, illetve az interpoláció override használata sem kézenfekvő, ajánlott a vezérlőn szereplő értéket alacsonyra, 20-40% ra állítani. A mozgásokat tekintve két nagyobb típussal találkozhatunk, ezek a következők: •
•
Linear interpolation (MVS) – Ekkor a mozgás minden esetben egy egyenes vonal mentén jön létre. Ez rövidebb elsősorban rövidebb távokra ajánlott, mert sokszor megesik, hogy lehetetlen egy egyenes vonal mentén eljutni a következő pozícióba. Mivel a robot felépítésének köszönhetően csak körmozgásokra képes, egyenes vonalú mozgáshoz minden tengelyét egyszerre kell mozgatnia tökéletes összhangban. Joint interpolation (MOV) – Ez esetben a robot mozgása kiszámíthatatlanabb, mert előre nem látható módon történik meg a pályagenerálás. Megtörténhet azonban, hogy ha lehetséges egyszerre csak egy tengely mozog, mert a vezérlő nem a legrövidebb utat, hanem a legegyszerűbb megoldást keresi meg.
A MOV utasítással tehát vigyázni kell. A legtöbb esetben jól működik, de könnyen váratlan mozgásokat generálhat, illetve a precíz mozdulatoknál a garantáltan egyenes vonalú mozgás miatt ajánlott az MVS utasítást alkalmazni, mint például a munkadarabok végső megközelítésénél.
17
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE A MOV utasításhoz a JOVRD paranccsal adhatunk meg override értéket százalékban, míg az MVS mozgás sebességét az SPD utasítással adhatjuk meg mm/s-ban. JOVRD (MOV) Vezérlő override
Program override (OVRD) SPD (MVS) 21. ábra Az override érték előállítása a különböző interpolációkkal
Jog üzemmóddal párhuzamosan ajánlott használni a Command Tool eszköztárat, melyet a menüsoron lévő ikonjával, vagy a Jog Operation-höz hasonlóan az Extras/Online Management/Command Tool menüből érhetünk el. Itt csoportosítva megtalálhatók a legfontosabb utasítások, melyekről alul rövid leírást is kaphatunk, be lehet szúrni a programba, de akár a robotnak is küldhetünk így utasítást.
22. ábra Command Tool használata
Új pozíció felvétele után tehát célszerű lementeni a pozíciólistát a vezérlőre, majd a Command Tool eszközzel a kívánt mozgásfajtával visszaküldeni a robotot az előző pozícióra, majd előre az új pozícióra, hogy kipróbáljuk tényleg működni fog-e a mozgás az adott szakaszon. Itt két dologra hívnám fel a figyelmet újra. Először is a Jog üzemmódban beállított sebességek a Command Tool által adott utasításokra már nem vonatkoznak, másrészt bizonyosodjunk meg róla, hogy frissítettük a vezérlőn a pozíciólistát, hiszen ha anélkül hivatkozunk egy új pozícióra, hogy az még nem is ismeri azt, jobb esetben hibaüzenetet kapunk, rosszabb esetben váratlan helyre próbál majd a robot menni. A robot betanítási fázisa alatt tehát ajánlott közel tartanunk magunkhoz a vészleállító gombot a balesetek elkerülése végett, hiszen ez a programozás legveszélyesebb szakasza.
18
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4. PROGRAMOZÁS A programok felépítése hasonlít a megszokott programozási nyelvekhez. Minden sorban egy-egy utasítást található, a vezérlő ezeket dolgozza fel egymás után. Egy-egy ilyen sor alapvetően négy részre osztható, melyeket szóközzel választunk el egymástól: 1. Sor száma. Bár nem szükséges alkalmazni, erősen ajánlott, hiszen utólag akár ezekre is hivatkozhatunk. 2. Utasítás. Ez maga az utasítás, mely akár lehet összetettebb, ily módon több sor logikailag összetartozhat. Ilyen például a for ciklus, ahol egy FOR utasítással indíthatunk el, egy NEXT utasításig fog lefutni ahányszor szeretnénk. 3. Paraméter, szinte minden utasításhoz tartozik, ilyen esetben e nélkül hibát ír ki a program. 4. További feltétel vagy utasítás, megadása opcionális. A programozás jellemző kelléke a megjegyzések írása, ezt MELFA BASIC nyelvben az aposztróf (’) karakterrel tehetjük meg. A vezérlő az adott sorban az aposztróf után semmit sem fog figyelembe venni. Így egész sorokat is kommentálhatunk, de ha utasítás után írjuk, a megjegyzést, akkor az utasítás ugyanúgy le fog futni. A programnyelv az alábbi változókat használja alapértelmezettként: • • • •
P – pozíció, XYZ koordinátákat tartalmaz J – joint pozíció, a tengelyek elfordulását tartalmazza M – változók, lehetnek egész vagy valós értékek $ – szöveges változók, karakterláncok
Segítségképpen a CIROS Programming színekkel ellátva ábrázolja a programkódot, minden elemhez más színt alkalmazva, így is egyszerűbb és átláthatóbb a programunk, illetve gyors visszajelzést kapunk arról, vajon helyesen fogalmaztuk-e meg a kódot. Programozáshoz az utasításokat megírhatjuk magunktól, de természetesen bemásolhatjuk más szövegszerkesztő programokból is. Segítséget nyújt ha jobb egérgombbal a szerkesztőfelületre kattintunk, ekkor egy listát látunk néhány gyakoribb utasításból, melyeket egy kattintással beszúrhatunk. Ugyanilyen hasznos a Command Tool használata is, mellyel igény szerint rögtön kipróbálhatjuk egy-egy utasítást hogyan hajt végre a robot. A következő vázlatpontokban néhány példaprogramot szerepel téma szerint rendszerezve, melyekkel megtanulható a programozás alapja és a legfontosabb eszközök használata. Célszerű kipróbálni minél több kódot, hiszen akkor kapunk tényleges visszajelzést, hogy tényleg értjük-e az utasításokat, illetve a robot pontosan azt csinálja-e, amit szeretnénk.
19
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4.1 HELLO WORLD! A programozási nyelveket tankönyveiben bevezetőként első példaprogramként a Hello world! programok szoktak szerepelni, melyeknek nincs gyakorlati haszna, általában csak egy „Hello world!” feliratot írnak ki. Általában ez a programozni tanulók első és egyben legegyszerűbb programja, egyetlen funkciójuk, hogy leteszteljék működik-e a rendszer és megmutassák hogyan fut le egy program. Ennek mintájára próbálhatjuk ki az alábbi programot, mely a robotot ugyan még nem mozgatja meg, de tökéletesen jó arra, hogy első programként kipróbáljuk hogyan lehet felmásolni a vezérlőre és lefuttatni azt: 10 HOPEN 1 20 DLY 1 30 HCLOSE 1 40 END Összesen három utasítás található benne, a HOPEN és a HCLOSE a hand open és close rövidítése, ezekkel az utasításokkal lehet nyitni illetve zárni a pneumatikus megfogót. Az 1-es paraméter a megfogó számát jelöli, és esetünkben nincs is több, melyet használhatnánk. A DLY utasítás a delay szó rövidítése, a paraméterként megadott 1-es pedig egy másodperces várakozást jelent, tehát a program egész egyszerűen kinyitja, majd egy másodperc múlva bezárja a megfogót, majd az END utasítás leállítja a programot. Először a 3.2-es pontban vázolt módon kell egy újonnan készített projektet létrehozni, majd abban megírni a programunkat. Ezután lementjük azt és felmásoljuk a vezérlő memóriájába. Futtatni lehet a vezérlőről, de célszerű közvetlenül a szoftverből elindítani. Futás után fontos leállítani a programokat. Ebben az esetben ez nyilvánvaló, de sokszor megtörténhet, hogy a robot nem mozdul, mert egy feltétel teljesülésére vár, vagy egyszerűen csak hosszú várakozási időt adtunk neki. Ha folytatnánk a programozást, vagy elhagynánk a labort, azelőtt fontos legalább a programok futását leállítani, de lehetőleg a vezérlőt is kikapcsolni. Egy másik variáció ugyanerre a programra, ha folytonossá tesszük. Ezt az alábbi módosítással érhetjük el: 10 HOPEN 1 ’megfogó nyitás 20 DLY 1 ’várakozás 30 HCLOSE 1 ’megfogó zárás 40 DLY 1 ’várakozás Látható, hogy a kommentálás is egyszerűen megoldható. Hosszabb programoknál és alprogramoknál nagyon hasznos tud lenni, hisz a programnak sok ismétlődő vagy hasonló eleme lehet, így szükségszerű a megjegyzések használata, hogy ezeket meg tudjuk különböztetni.
20
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4.2 PICK & PLACE A következő program célszerűen egy egyszerű Pick & place program, amiben már mozgatjuk a robotot és munkadarabot is használunk. 4 pozíciót fogunk alkalmazni, melyeket Jog üzemmódban kell felvennünk, ezt javasolt a fent leírt biztonsági megfontolások figyelembevételével megtenni.
P2
P3
MOV
MVS
MVS P1
P4
HCLOSE 1
HOPEN 1 23. ábra A mozgás vázlatosan
A mozgásokat érdemes először lassan végezni, így alacsony override értékeket beállítani. Emellett megadhatunk a program elején is SPD vagy JOVRD értékeket. Az utasításlistában továbbá leírtam különféle körinterpolációs mozgásokat is, melyek még kifinomultabb mozgásokat tesznek lehetővé, azonban közvetlenül nem szükségesek a robot programozásához, így a továbbiakban nem foglalkozom velük. A mozgást megvalósító program: 10 JOVRD 30 20 MOV P2 ’P2 kezdőpozícióra állás 30 HOPEN 1 ’ megfogó kinyitása 40 MVS P1 50 DLY 0.5 60 HCLOSE 1 ’munkadarab megfogása 70 MVS P2 80 MOV P3 90 MVS P4 100 DLY 0.5 110 HOPEN 1 ’ munkadarab elengedése 120 MVS P3
21
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE Látható, hogy a P2 és P3 pozíciók közt MOV paranccsal mozgunk, de amikor meg kell közelíteni a munkadarabot, akkor már az egyenes vonalú mozgást biztosító MVS utasítást használjuk. A rövid DLY várakozó utasításokra azért van szükség, mert anélkül nem tudná a robot megfogni a munkadarabot, illetve lerakásnál is eldobná, mert rögtön indulna a következő pozícióba. Minimálisan ezen is segít az MVS alkalmazása, de egy fél másodperces várakozás ajánlott mindenképpen. Természetesen ezt a programot is lehet folytonosra készíteni, például az alábbi módon: 10 JOVRD 30 20 DLY 0.5 30 MOV P2 40 HOPEN 1 ’megfogó kinyitása 50 MVS P1 60 DLY 0.5 70 HCLOSE 1 ’munkadarab megfogása 80 MVS P2 90 MOV P3 100 MVS P4 110 DLY 0.5 120 HOPEN 1 ’munkadarab lerakása 130 MVS P3 140 DLY 1 150 MVS P4 160 DLY 0.5 170 HCLOSE 1 ’munkadarab megfogása 180 MVS P3 190 MOV P2 200 MVS P1 210 DLY 0.5 220 HOPEN 1 ’munkadarab lerakása 230 MVS P2 Így már oda-vissza fogjuk pakolni a munkadarabot. Ehhez szükséges, hogy folytonos módban indítsuk el a programot RCI Explorerben.
22
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4.3 PROGRAMSTRUKTÚRA A programunkat sokféleképpen tudjuk variálni a célnak megfelelően. Létrehozhatunk többször lefutó programrészeket, adott helyre ugorhatunk egy programban, vagy egy logikai feltétel alapján dönthetjük el hogyan folytatódjon a program futása. Bemutatok néhány lehetőséget ezekből. Az első megemlítendő parancs az a GOTO parancs, mellyel adott címkéhez tudunk ugrani. A címkéket (*) karakterrel tudjuk megjelölni, ez nem ad semmilyen utasítást a robotnak, tehát hasonlóképpen működik, mint a megjegyzéseknél az aposztróf. 10 *CIMKE1 20 MOV P1 30 GOTO CIMKE2 40 MOV P2 50 *CIMKE2 60 MOV P3 70 GOTO CÍMKE1 Ez a program például először a P1 pozícióba fogja mozgatni a robotot, majd a 40-es sort átugorva a P3 pozícióba. Ezután visszakerül a legelejére, és ciklikusan ismétlődik ugyanez tovább. Látható tehát, hogy így a P2 pozícióba sose fog kerülni a robot, de a címkék használatával akár végtelen ciklust is könnyedén készíthetünk. A GOTO parancsot nem csak címkékkel használhatjuk, hanem adott programsorra is ugorhatunk vele, például: GOTO 100. A következő programelem hasonló az előzőhöz, de annyiban különbözik, hogy meg kell adnunk egy RETURN utasítást is, ami visszaküld az eredeti pozícióra. 10 MOV P1 20 GOSUB CIMKE1 30 MOV P2 …. 100 *CIMKE1 110 MOV P3 120 RETURN Ez a program tehát P1 pozícióra küldi a robotot, majd a CIMKE1 programrészben P3 pozícióba, majd a program végrehajtása újra a 20-as sor után folytatódik, így a P2 pozícióhoz megy a robot. A ciklusokat feltételekhez is lehet kötni, például egy változó értékének vizsgálatához. Erre mutat példát a következő programrészlet:
23
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE 10 WHILE M1=1 20 MOV P1 30 MOV P2 40 WEND Ez a program P1 és P2 között mozgatja a robotot mindaddig, amíg M1 értéke 1 marad. Természetesen megoldható a dolog I/O jelekkel is, például az M_IN(1)=1 az 1-es bemeneti csatornát fogja figyelni. Az alábbi példa egy IF feltételes végrehajtást mutat be: 10 IF (M1 >= 1) AND (M1 <= 10) THEN 20 MOV P1 30 DLY 2 40 ELSE 50 M1=M1+2 60 ENDIF A robot P1 pozícióba megy, majd vár két másodpercet, ha M1 változó 1 és 10 közötti érték, egyébként hozzáad kettőt. Látható, hogy logikailag és matematikailag egyszerűen adhatunk meg feltételeket és utasításokat egyaránt. Megadhatunk akár egy soros IF parancsot is az alábbi módon: IF M1=1 THEN *CIMKE1 ELSE *CIMKE2. Az IF feltételes végrehajtásnak van egy másik változata is, mellyel több variáció érhető el: 10 SELECT M1 ’M1 változó vizsgálata 20 CASE 1 ’ha M1=1 akkor lefut a BREAK parancsig …. 50 BREAK 60 CASE 3 TO 6 ’ha M1 3 és 6 között van akkor fut le …. 100 BREAK 110 END SELECT Az alábbi programrészlet egy for ciklust mutat be, ez gyakorlatilag egy bővített WHILE ciklusnak felel meg. Egy változót fokozatosan növelünk és egy adott határ eléréséig ismételjük a ciklust: 10 FOR M1=1 TO 10 20 MOV P1 30 MOV P2 40 NEXT
24
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE Ez a ciklus tízszer fog lefutni, mert M1 értékét egyesével növelve számolunk el tízig. Létezik egy olyan változata is, ahol az első sorban például FOR M1=1 TO 5 STEP 2 szerepel, ez csak háromszor fog lefutni, mert kettesével növeli M1 értékét ötig. Van mód a programokat futás közben is megszakítani és egy adott címkéhez elküldeni. Ehhez először definiálnunk kell magát a megszakítás feltételét majd a program során aktívvá tehetjük a megszakítást. 10 DEF ACT 1, M_IN(1)=1 GOSUB *CIMKE …. 50 ACT1=1 ’megszakítás aktiválás …. 100 ACT1=0 ’megszakítás deaktiválás …. 150 *CIMKE Ebben a példában az ACT1 megszakítás az 50. és 100. sor között aktív, tehát ha valamikor itt az 1-es bemeneten jelet kapunk, azonnal megáll a robot és a 150. sorra ugrik a program. Lehetőség van továbbá egy alprogramot is elindítani. A főprogram mindaddig fel lesz függesztve, míg az alprogram be nem fejeződik egy END paranccsal, ez gyakorlatilag úgy működig, mint a GOSUB parancsnál a RETURN. Például egy PROG2 nevű programot a CALLP PROG2 utasítással tudunk elindítani, természetesen akkor, ha a kért program megtalálható a vezérlő memóriáján. A programok párhuzamos futtatásához az XRUN parancs használható. Ennek feltétele, hogy slotokba másoljuk be a párhuzamosan futtatni kívánt programokat. Használata egyszerű: XRUN 2, „PROG2”. Ez a kód elindítja a kettes slotban lévő PROG2 nevű programot. Megállítani hasonló módon lehet az XSTP utasítással. A rendelkezésre álló megoldások bőven lefedik a felmerülő problémákat, általában bármilyen algoritmust meg lehet írni 2-3 említett kód variálásával, hiszen egy robot programozásánál nem is merülhetnek fel nagyon összetett esetek. A legnagyobb problémát nem ezek jelentik, hanem a különböző rendszerek és vezérlők kommunikációja és összehangolása okoz nehézségeket, de több párhuzamosan futó programmal és kellő megfontolással és elővigyázatossággal jól működő programok készíthetők. A kulcs a fokozatos haladás, és a biztonságra való törekvés.
25
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4.4 I/O HASZNÁLAT A robot a 24 V-os I/O vezetékeken keresztül tud egyszerűen kommunikálni a PLC-kel, illetve a szervotranszporter vezérlőjével. A robot vezérlője mellett található még egy kis panel nyomógombokkal, mi most ezt fogjuk használni. Az I/O kommunikáció használata nem nehéz, gyakorlatilag a csatornák számait kell ismernünk és beleírnunk az M_IN() vagy M_OUT() kifejezésekbe. A panelen lévő zöld nyomógomb a 6-os számú bemenetre van kötve, ezt fogjuk használni. Bővítsük ki Pick & place programunkat az előbbiekben megismert ciklusokkal, feltételvizsgálattal és I/O jelzéssel! 10 JOVRD 30 20 DLY 0.5 30 MOV P2 40 HOPEN 1 50 *CÍMKE ’ciklus kezdete 60 MVS P1 70 DLY 0.5 80 HCLOSE 1 ’munkadarab megfogás 90 MVS P2 100 MOV P3 110 MVS P4 120 DLY 0.5 130 HOPEN 1 ’ munkadarab lerakás 140 MVS P3 150 DLY 1 160 MVS P4 170 DLY 0.5 180 HCLOSE 1 ’munkadarab megfogás 190 MVS P3 200 MOV P2 210 MVS P1 220 DLY 0.5 230 HOPEN 1 ’munkadarab lerakás 240 MVS P2 250 IF M_IN(6)=1 THEN 260 GOTO *CÍMKE ’új ciklus 270 ELSE 280 GOTO 210 ’várakozás 290 ENDIF
26
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
4.5 SZERVOTRANSZPORTER HASZNÁLATA A szervotranszporterrel előre beprogramozott pozíciókra tudjuk küldeni a robotot. A két vezérlés közötti kommunikáció I/O csatornákon zajlik, méghozzá a 4-es, 5-ös és 6-os kimeneti jelek kombinációjával tudjuk megadni a kért helyet, és a 8-as bemeneti és 9-es kimeneti jelekkel valósul meg a kommunikáció. (4,5) (5)
(4)
(-)
(6)
(5,6) (4,6)
24. ábra A szervotranszporter vezérlőjébe programozott pozíciók
A 24-es ábra alapján a piros munkadarab csúszdájához (4)-es van írva, ez azt jelenti, hogy a 4-es kimenetre kell jelet adni, az 5-ös és 6-osra pedig nem. Ez után a 9-es kimenettel utasíthatjuk a transzporter vezérlőjét, hogy induljon el, melyet a 8-as bemenet „0” jelével nyugtáz a robot felé. Ezután visszakapcsoljuk alapállapotba a 9-es kimenetet, amire a transzporter válasza egy „1”-es lesz, miután beállt a kért pozícióra. A gyakorlatban ez a következőképpen nézhet ki: 10 M_OUT(4)=1 20 M_OUT(5)=0 30 M_OUT(6)=0 40 DLY 0.5 50 M_OUT(9)=1 60 WAIT M_IN(8)=0 70 M_OUT(9)=0 80 WAIT M_IN(8)=1 Készítsünk tehát egy programot, melyben a robot elvesz egy munkadarabot az egyik csúszdáról, a szervotranszporter elviszi a gyártósor elejére, ahol rárakja a Processing állomás csúszdájára, majd visszamegy a kezdeti helyére és gombnyomásra megismétli mindezt! Azért van szükség a Processing állomásra, mert a magazint így nem tudnánk elérni. Csúszdából felvett munkadarabot először le kellene tennünk, meg kellene fogni fordítva, majd csak így lehetne a magazinba rakni. A programhoz sok pozíciót célszerű használni, hogy a mozgását minél jobban meghatározzuk. Ebben az esetben az 1-es a szervotranszporter mozgatása közbeni alapállapot, minél közelebb a robothoz, hogy biztonságosan mozogjon a szervotranszporterrel. A többi pozíció a csúszdáknál lévő mozgáshoz szükséges, 3-3 pozíciót használva így összesen 7-et fogunk alkalmazni. Ebben a programban már nagyon fontos a tökéletes Jog pozíció betanítás, hiszen egyre több pozíciót használva egyre több a hibalehetőség is. Fontos figyelni arra is, hogy a szervotranszporter használatánál mindig P1 pozícióban álljon a robot.
27
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE 10 SPD 50 20 OVRD 70 30 MVS P1 40 HOPEN 1 50 *CIKLUS 60 M_OUT(4)=1 ’csúszda pozíciója 70 M_OUT(5)=0 80 M_OUT(6)=0 90 GOSUB *MOZG ’alciklus meghívása 100 WAIT M_IN(6)=1 ’zöld gombra várakozás 110 MVS P2 120 MVS P3 130 MVS P4 140 DLY 0.5 150 HCLOSE 1 ’munkadarab felvétele 160 MVS P3 170 MVS P2 180 MVS P1 190 M_OUT(4)=0 ’Processing állomás pozíciója 200 M_OUT(5)=1 210 M_OUT(6)=1 220 GOSUB *MOZG ’alciklus meghívása 230 MVS P5 240 MVS P6 250 MVS P7 260 DLY 0.5 270 HOPEN 1 ’munkadarab lerakása 280 MVS P6 290 MVS P5 300 MVS P1 310 GOTO *CIKLUS 320 *MOZG ’alciklus 330 DLY 0.5 340 M_OOT(9)=1 350 WAIT M_IN(8)=0 360 M_OUT(9)=0 370 WAIT M_IN(8)=1 380 RETURN
28
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
5. UTASÍTÁSLISTA
CALLP
Program hívás
ACT OVRD JOVRD SPD ACCEL DEF ERROR FOR … NEXT IF…THEN … ELSE … ENDIF WHILE … WEND END
Megszakítás Override Joint override Sebesség Gyorsulás Definiálás Hibaüzenet
Mozgás előre nem látható pálya mentén úgy, hogy a tengelyek minél kevesebbet forogjanak Egyenes vonal menti mozgás Pontok menti körív menti mozgás P1-ből P3 pozícióba Alkalmazás: MVR P1, P2, P3 Pontok menti körív menti mozgás P1-ből P2 pozícióba, de P3-al ellentétes irányban Alkalmazás: MVR P1, P2, P3 A kisebb sugarú ív megtétele P1-ből P2-be, ahol P3 a kör középpontja Alkalmazás: MVR P1, P2, P3 Teljes kört leíró mozgás a pontok mentén sorba Alkalmazás: MVR P1, P2, P3 Paraméterben megadott számú megfogó kinyitása Paraméterben megadott számú megfogó összezárása Várakozás másodpercekben megadott ideig Várakozás addig, amíg az adott feltétel igaz nem lesz PREC ON illetve PREC OFF utasításokkal lehet be –és kikapcsolni a precízebb pozicionálást SERVO ON illetve SERVO OFF utasításokkal lehet be – és kikapcsolni a szervomotorokat Ugrás a program megadott pontjára Hasonló a GOTO utasításhoz, azonban szükséges egy RETURN utasítást is írnunk ahonnan visszatér és a GOSUB után folytatódik tovább a program Másik programfájlt lehet elindítani, majd ha azt END paranccsal befejeztük folytatódik a főprogram Programmegszakításokat állíthatók be A program override adható meg százalékban Joint interpoláció override értéke százalékban Lineáris interpolációnál sebessége mm/s-ban A megengedett gyorsulás adható meg százalékban Változókat vagy pozíciókat lehet vele definiálni Egyedi hibaüzenetet hozhatunk létre
For ciklus
A ciklus adott számú lefuttatása
Feltételes utasítás
Megadható mit hajtson végre a program, ha egy logikai vagy matematikai feltétel teljesül, és mit ellenkező esetben.
While ciklus
Addig fut le, amíg igaz az adott állítás
Program vége
A program futását állítja le
MOV
Joint interpoláció
MVS
Lineáris interpoláció
MVR
Körinterpoláció
MVR2
Körinterpoláció
MVR3
Körinterpoláció
MVC
Körinterpoláció
HOPEN HCLOSE DLY WAIT
Megfogó kinyitása Megfogó összezárása Várakozás adott ideig Várakozás eseményre
PREC
Precíziós üzemmód
SERVO
Szervo
GOTO GOSUB … RETURN
Ugrás Szubrutin
29
SZERSZÁMGÉPÉSZETI ÉS MECHATRONIKAI INTÉZET SZERSZÁMGÉPEK INTÉZETI TANSZÉKE
6. IRODALOMJEGYZÉK [1]
Detailed explanations of functions and operations, CRnQ/CRnD Controller, Instruction Manual, MELFA
[2]
Andreas Zabka, Georg Kinder, CIROS Robotics Handout, FESTO
[3]
Cosirop 2.0, Programming Software for Mitsubishi Industrial Robots, First steps
[4]
Controller
setup,
basic
operation
and
maintenance,
CR1D/CR1DA/CR2D/CR3D Controller, Instruction Manual, MELFA
30