FANUC robotok programozsa Education cell 6 rotcis csukl
FANUC robotok programozása
Education cell • 6 rotációs csukló
Controller Three-Mode Switch • Irányítja a robotot • Benne található a hardware és a szoftver • Ez nevezhető robot "agyának" USB Port Cycle start button Emergency stop Button Power switch
Teach Pendant • A robot kezeléséhez és programozásához használható • Ez az interfész a robot és a felhasználó között
Teach Pendant 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Teach Pendant Enable Menu key - képernyőmenü megnyitása Select key - program lista megnyitása Data key - regiszter lista megnyitása Function key - function menü megnyitása Cursor keys - kurzor mozgatása Step key - step mód bekapcsolása/kikapcsolása Hold key - program "holdolása" Enter key - belépés a kiválasztott itembe Forward key - a program továbbítása a következő sorba 11. Coordinate key - koordinátarendszer váltása 12. Override key - override megváltoztatása 13. Jog keys - robot mozgatása teach módban
Robot • Mechanikus egység • Több szegmensből áll • Ezek csuklókon keresztül vannak összekötve • Szervo motorok • Egymástól függetlenül mozgathatók • A mozgatást a kontroller végzi • Esetünkben 6 rotációs csuklónk van
Jogging (robot mozgatása) • A Three-Mode Switch T 1 vagy T 2 állásban kell, hogy legyen (T 1 biztonságosabb) • Teach Pendant Enable • Deadman switch • Shift + jogging button • A koordinátarendszer változtatható • Joint coordinate system - csuklónkénti mozgatás • Többi koordinátarendszer - mozgás x, y és z irányokban / rotáció a tengelyek körül
Jogging • Joint mozgás esetén az egyes csuklók helyzetét tudjuk változtatni (a csuklók száma szerepel a jogging gombokon) • Minden más koordinátarendszer esetén x, y és z tengelyek mentén mozoghatunk (első 3 gomb), vagy ezen tengelyek körül a következő 3 gomb segítségével
Program kiválasztása • Select gomb • Program kiválasztása a listából • Enter gomb • A kiválasztott program megjelenik a Teach. Pendant képernyőjén
Program elindítása • Akadályok eltüntetése a robot mozgási terében • Ajtó becsukása • Three-Mode Switch - auto mód • Teach. Pendant - disable • Cycle start gomb • AAA_Demo… • A program megkérdezi megfelelő helyen vannak-e a darabok • Ellenőrzés után F 2
TCP beállítása • Tool Center Point • Fontos beállítani a könnyebb jogging érdekében • A futás soráni mozgásra is kihat (nem lenne lineáris a sebesség, más a sebesség mint a robot végén)
TCP beállítása • Lineáris mozgás beállított és nem beállított TCP esetén
TCP beállítása • A TCP egy relatív pozíció az utolsó csukló végéhez viszonyítva (J 6 előlapja) • Ez a robot end-effektorjának „munkapontja” • Különösen fontos a pontos beállítása • Pontok felvétele (jogging gombok alkalmazhatóak a TCP körüli mozgatásra) • Futtatás (a szoftver a TCP pozícióját és mozgását irányítja)
TCP beállítása
TCP beállítása • 3 pontos módszer (pont érintése 3 különböző irányokból és szögekből)
TCP beállítása • 6 pontos módszer • A 3 pontos módszer akkor használható ha a tool egyenes és egy vonalban van a J 6 fedőlapjával
TCP beállítása • 6 pontos módszer • Első 3 pont – 3 pontos módszer • Ezután azokban az irányokban kell mozogni amelyekben szeretnénk a tengelyeket
TCP beállítása • Direct List Method • Minden pozíciót és orientációt manuálisan állítunk be • Akkor használható ha ismerjük az összes paraméterét a toolnak
TCP beállítása
Egyszerű programozás • Ipari körülmények között szeretnénk ha a robotunk egy adott munkát végezne újra és újra • Ennek érdekében egyszer készítünk egy programot majd a robot állandóan ezt végzi • Ez a munkát elképesztően kiszámíthatóvá és egyben nagyon hatékonnyá teszi
Egyszerű programozás • Three-Mode Switch - T 1 • Teach Pendant – Enable • Select button • Create (F 2) • Név megadása • Enter
Egyszerű programozás • Mozgassuk a robotot valamilyen pozícióba. • A pozíció rögzítéséhez két opciónk van: • shift+Point (joint mozgás) • Point (megkérdezi milyen mozgást szeretnénk)
Egyszerű programozás • Mozogjunk a következő ponthoz • Shift+Point • Ez egyszerű programot eredményez amelyet ilyen formában már végre is hajthatunk
Egyszerű programozás • Overrideot állítsuk 10%-ra (ha valami olyasmi történne amire nem számítunk)
Egyszerű programozás • Állítsuk Step módra a Step gomb segítségével (ez főleg nagyobb programoknál hasznos) • Ennek a hatására a program lépésenként fog futni, és csak akkor amikor a programnak azt mondjuk hogy folytassa
Egyszerű programozás • Futtatás • Deadman Switch + Shift + FWD (Forward) • A pillanatnyi sort hajtja végre • Miután teszteltük, növelhetjük a sebességet • A Step gombbal pedig beállíthatjuk, hogy az egész kódot futassuk
Egyszerű programozás • Mozgás változtatása • Default: joint mozgás • Kurzort a mozgáshoz - Type gomb • 4 különböző mozgásból választhatunk • Állítsuk a következőre: L (linear) • Speedre – Type gomb • Állítsuk át a sebességet (pl. 100 mm/s-ra)
Egyszerű programozás • Kommentek: • • • Új sor beillesztése F 6 (next) F 5 (EDCMD) Insert 1 sort adjunk hozzá F 1 (INST) Miscellaneous -> Remark Enter Komment bezárása is Enter segítségével történik
User Frame • Derékszögű koordinátarendszer (Cartesian coordinate system) • A robot koordinátarendszeréhez képest van megadva • A könnyebb tanítás és üzemeltetés érdekében használjuk • Esetünkben nem annyira fontos, mivel a hengerek táblájának síkja megegyezik a világkoordinátarendszer síkjával • A lyukak viszont nincsenek egyenesen, így a mozgatás a lyukak között nem olyan egyszerű a világkoordinátarendszerben. Ezért definiálhatunk User Framet amely különbözik a világkoordinátarendszertől és a lyukakhoz van igazítva • Leginkább olyan esetekben hasznos amikor a munkaterület ferde síkban van, vagy a robot van ferdén szerelve
User Frame • 3 pont megadása szükséges: • Origó • X tengelyen 1 pont • pont az XY síkon • Első pont legyen az origó • Második pont egy lyuk az X tengely mentén • Harmadik pont valahol a táblán • Minél nagyobb a távolság, annál pontosabb lesz • Magasságot mindnél úgy állítani, hogy egy papírlap beférjen a henger és a lap közé
User Frame
User Frame
User Frame • Készítsünk programot a definiált User Frame segítségével amely egy hengert az egyik lyukból a másikba helyez • Néhány centiméter magasságba kell emelni a hengert, hogy ne ütközzünk a táblának
User Frame • A programban a User Framet állítani kell • F 1 (INST) • Offset/Frames • “UFRAME_NUM
User Frame • Készítsünk User Framet a másik oldalra is
User Frame • Használjuk az elkészített programot a másik oldalon • A User Frame-et a programban át kell váltani • A program nem fog elindulni és a Teach Pendanten hiba fog megjelenni • Újra állítsuk a másik User Frame-re a programot • Evvel a módszerrel a meglévő programot könnyen át tudjuk vinni a másik oldalra (csak a User Frame-et kellett változtatni)
User Frame • Viszont elvesztettük a másik oldalon felvett User Frame-et, de lehet hogy szeretnénk újra használni • Készítsünk programot amely mindkét oldalon használható anélkül hogy mindig állítanánk a User Framet • Használjunk 4 -es és 5 -ös User Frameeket
Offset és Position Register • A Position Register (PR) segítségével direkt pozíció rögzítése nélkül van lehetőségünk offset hozzáadására a szerszám pozíciójához • Ez egyszerűsítheti, felgyorsíthatja és hatékonyabbá teheti a programozást
Offset és Position Register • A Tool Offset-tel a szerszámunknak adhatunk egy adott nagyságú offset-et • Különösen hasznos ha például ugyanabban a pozícióban van szükségünk több különböző magasságra • A Position Register használható egy pozíció vagy egy offset mentésére váltózóként a robotban • A Position Register beállítható a program futtatása előtt vagy futás közben is • Egy pozíció beállításához megadhatóak az értékek direkt módon (a Position key segítségével) vagy felvehetőek a pozíciók a robotról (Record key)
Offset és Position Register • Pozíció rögzítéséhez a PR-be nyomjuk meg a Data gombot • Állítsunk Position Reg-et a [Type]-ban és válasszuk ki a PR-t amelybe szeretnénk a pozíciót rögzíteni
Offset és Position Register • Másik pont felvételénél állítsuk manuálisan az első pont Z értékét magasságnak (így használható ugyanaz az offset) • Offsetet ebben az esetben csak a Z tengelynél használunk • Az offset beállítható a PR-ben • Az offsetet esetünkben ajánlatos lassan növelgetni (elengedésnél jó ha kicsit magasabban van mint megfogásnál)
Offset és Position Register • Offset helyezése a PR-be ugyanúgy történik mint a pozíció esetében, viszont rögzítés helyett "Position"-t használunk és manuálisan visszük be az értéket (esetünkben vegyünk minden értéket Z-n kívül 0 -ra, Z-re pedig állítsunk valami kis értéket)
Offset és Position Register • Programozás esetén ilyen esetben nem rögzítünk pozíciókat, hanem a PR-ben található pozíciókat és offseteket használjuk • Pozíció használatához a PR-ből először a record key-t nyomjuk meg, majd a kurzorral a pozícióra mozgunk, hogy megváltoztassuk a "Type"-ot PR-re (Choice gomb)
Offset és Position Register • Ezután állítsuk be a PR értéket amelyiket használni szeretnénk • Figyelni kell arra programozás során, hogy ez a módszer függ attól hogy melyik UFrame-et és Tool Frame-et használjuk • Rossz frame használata nem várt mozgáshoz vezet, amely sérüléshez és/vagy kárhoz vezethet
Offset és Position Register • Példa
Fejlett programozás példa • Döntési szituációk, alprogramok
Fejlett programozás példa • UFRAME beállítása • F 1 Inst • Page 2 number 4 Offset/Frames • UFRAME_NUM=1 (World User Frame)
Fejlett programozás példa • 4 különböző pont linear módban, 100 mm/s sebesség (négyszög alakban, ugyanazon a magasságon)
Fejlett programozás példa • Sor beillesztése a 2. és 3. pozíció közé • Ha nem tartalmaz ez a sor parancsot akkor nem lesz kihatással a programunkra • Sor törléséhez EDCMD (F 5), majd delete • Megkérdezi szeretnénk-e törölni, ha igen F 4
Fejlett programozás példa • Hogy a program ugyanazt a mozgást végezze többször, lehetőségünk van „For to” függvény alkalmazására • Sor beillesztése, Inst, majd For to kiválasztása
Fejlett programozás példa • Válasszunk egy regisztert (olyat amit más program nem használ), például R[32]-t nem használ default esetben • Használjunk Constant típust kétszer, és állítsunk 1 -et és 10 -et
Fejlett programozás példa • A procedúra így ismétlődni fog, a regiszter értéke pedig 1 -el fog növekedni, tehát 1 -től 10 -ig fog menni • A register overview-ban (data button és a "type"-nál Register), majd nevezzük át az R[32] -t valamire. Ez a név a programban is meg fog jelenni
Fejlett programozás példa • Szükségünk van még egy Endfor-ra • Behelyezés menete ugyanaz mint a For. To-nál • Közben figyelhetjük mi történik a regiszterekben. Adjunk hozzá egy második displayt (shift+disp és double kiválasztása, disp gombbal (shift nélkül) tudunk váltani a képernyők között), majd a másodikon nyomjuk meg a data gombot és váltsuk a type-ot regiszterre
Fejlett programozás példa • A különböző pozíciókat elhelyezhetjük a Position Register-ben, hogy másodlagos programokban használhassuk őket • Hozzunk létre 2 új programot amelyek neve Advanced_Program_part 1 és Advanced_Program_part 2
Fejlett programozás példa • Szeretnénk ha egyszer az egyik irányba mozogna, egyszer pedig az ellenkezőbe • Ehhez az „if”-et használjuk, amellyel meg tudjuk vizsgálni, hogy egy feltétel igaz-e vagy nem. Ha igen, végrehajtja a megfelelő műveleteket, ha pedig nem, akkor továbbmegy a következő parancsra • Helyezzünk be egy register instructiont (F 1 Inst majd 1 Register), hogy kiszámoljuk az R[32] mod 2 -t (minden második alkalommal 0 -át kapunk) • Helyezzük az eredményt az R[33]-ba (vagy másik szabad regiszterbe)
Fejlett programozás példa • Szükségünk van két parancsra. Az egyik meghívja az Advanced_Program_part 1 -et ha a regiszter értéke 0, a másik pedig a Advanced_Program_part 2 -t ha az érték 1
Fejlett programozás példa • Másodlagos programok • A két program két különböző irányból végzi el a mozgásokat
Fejlett programozás példa • Jump Label • Lehetőség van jump parancsok alkalmazására • A Jump LBL-t használhatjuk, hogy egy speciális label-re ugorjunk amely definiálva van a programban • F 1 (Inst) -> 5 (JMP/LBL) • Az előző példa jump parancs használatával
Fejlett programozás példa • CNT • A programunkat hatékonyabbá tehetjük ha gyorsabban fut • Használhatjuk a CNT-t a FINE helyett. Ebben az esetben nem fog elmenni egészen a pontig, hanem csak a pont környezetéig, majd halad tovább megállás nélkül
Fejlett programozás példa • Ha jól működik a programunk, állítsuk 1000 mm/s-os sebességet és 10%-os override-ot (instmiscellaneous-override) • A program futásakor észrevehetjük, hogy sokkal ívesebb és gyorsabb lesz a futás mint a fine beállítással • Minél gyorsabb annál nagyobb hatása lesz a CNT-nek a mozgásra
Fejlett programozás példa • Wait • Hozzáadhatunk a programunkhoz várakozást (regiszter vagy konstans alapján) • Az idő letelte után a program folytatja a futást a következő sorban
Input/Output • Jeleken keresztüli kommunikáláshoz más eszközökkel • Nagyon fontos ha nem egyedül működik, hanem perifériákkal (szenzorok, kamerák, más robotok)
Input/Output • • • Menu – 5 I/O Kimenet-bemenet váltására F 3(IM/OUT) Meg tudjuk változtatni digitálisra a típust A kimenetek listázásánál látjuk, hogy 101 -től kezdődnek a kimenetek Item gomb és Enter segítségével hozzáadhatjuk a 101 -es kimenetet DO[101] • A kimenetek állapotát tudjuk változtatni, a bemenetekét pedig figyelni • Bemenetek szimulálásához – kurzot mozgatása a Sim-re és F 4 Simulate
Input/Output • Példa digitális bemenetek használatára
Input/Output • Példa digitális kimenetek használatára
Input/Output • Lehetőség van több program futtatására párhuzamosan • Ez főleg akkor hasznos ha szeretnénk külső eszközöket is irányítani a robot mozgatása mellett • Ehhez a másik programban az Override elé beillesztünk egy új sort, majd egy Run parancsot (Instr második lap 5 Multiple Control) és Run I_O_Timer • Ha így megpróbáljuk elindítani a programot, a program nem fog elindulni és a TP a következő kimenetet fogja adni “PROG-040 Already locked by other task”
Input/Output • Ennek megoldásához a Run parancsban használt Group Mask módosítására van szükség (I_O_Timer, DO_Set_OFF, Register_To_Binary) 1 -ről *-ra (F 2 Detail)
Input/Output • Változtassuk meg a wait utasítást úgy, hogy ne állandó ideig várjon, hanem amíg egy adott regiszter érték meg nem változik például a másik futó programban • Ehhez hasonló változtatást kell végezni:
Különböző STOP típusok • A FANUC robotoknál különböző STOP-ok állnak rendelkezésre, amelyeket különböző elvek alapján kell használni
Különböző STOP típusok • A Stop-oknak 3 kategóriája van (az IEC 60204 -1 -t követve) • 2. kategóriás stop • kontrollált stop, amelynél a stop után az aktuátorokon (esetünkben motorokon) továbbra is rendelkezésre áll a táp • 1. kategóriás stop • kontrollált stop, amelynél a stop után az aktuátorokon nincs tovább táp • 0. kategóriás stop • azonnali stop amely elveszi a tápot az aktuátorokról • Az 1. és 0. kategóriás stopoknál a folytatáshoz el kell távolítani a stop okát (elengedni az E-Stop gombot, becsukni a kaput, . . . ) és megnyomni a reset gombot
Különböző STOP típusok • Vészleállító (E-Stop) • Vészhelyzetekben kell használni (ha ember veszélyben vagy a robot ütközni fog más tárgyakkal). Ez 0. kategóriás stop. • Deadman Switch elengedése • Ez is 0. kategóriás stop. • Nyitott kerítés • A robotnak meg kell állni, de van valamennyi ideje a megállásra (1 s az elvek szerint). Ez is 1. kategóriás stop. • Hold • Ezt lehet használni a robot megállítására annak érdekében hogy például kicseréljünk valamit a beállításokban. Ez 2. kategóriás stop.
Robo. Guide Tutorial Pick&Place https: //www. youtube. com/watch? v=M 1 YKVr. Le. YFw&t=210 s https: //www. youtube. com/watch? v=hj. AV 2 Mtxon 4&t=781 s https: //www. youtube. com/watch? v=Upgjf. YGAeu. M https: //www. youtube. com/watch? v=0 xn. Z 5 l 7 y. A 2 g https: //www. youtube. com/watch? v=B 1 Hy 3 kx. BCM 4 Rail Unit https: //www. youtube. com/watch? v=6 TYN 8 w. Nn 1 BY Vision/Sensor https: //www. youtube. com/watch? v=FFbc. Ns. OZk 1 A&t=187 s https: //www. youtube. com/watch? v=H 2 zce 5 ct. WQc https: //www. youtube. com/watch? v=MDJQOE 9 Ha 3 Q https: //www. youtube. com/watch? v=s. KYr. ADB 37 n. A https: //www. youtube. com/watch? v=e. XQS 7 Tm. TYDI Motion of Robot Tool https: //www. youtube. com/watch? v=i. X 2 tgi. HHHv. I Basics (HUN) https: //www. youtube. com/watch? v=Mnrpo 5 on. WBk&t=255 s https: //www. youtube. com/watch? v=Xxlfp. Kv. CJ 4 s&t=2 s
- Slides: 72