Two countries, one goal, joint success!
PROJEKT
HURO/0901/028/2.3.1
NAGYVÁRADI EGYETEM 2011
Two countries, one goal, joint success!
PROJEKT
HURO/0901/028/2.3.1
NAGYVÁRADI EGYETEM 2011
Two countries, one goal, joint success!
ELŐSZÓ A „E-Laboratory Practical Teaching for Applied Engineering Sciences” (Akronym EPRAS) c. projekt a Magyarország-Románia Határon Átnyúló Együttműködési Program 20072013 keretében valósul meg (www.huro-cbc.eu), az Európai Unió támogatásával, az Európai Regionális Fejlesztési Alap, valamint Magyarország és Románia társfinanszírozásával. A program célja közelebb hozni egymáshoz a határmenti térségben élő embereket, közösségeket és gazdasági szereplőket az együttműködésbe bevont térség közös fejlesztésének elősegítése érdekében, a határmenti térség alapvető erősségeire építve. Ez az anyag tartalmazza az e-laboratóriumi gyakorlatokra vonatkozó dokumentációt amely a nagyváradi Egyetem tervező csapata által lett létrehozva ezen a programon belűl.
2
www.huro-cbc.eu
Two countries, one goal, joint success!
TARTALOMJEGYZÉK
E‐LABORATÓRIUM 1. Kombinációs digitális áramkörök alkalmazása. Elméleti leírás ..................... 4 E‐LABORATÓRIUM 1. Kombinációs digitális áramkörök alkalmazása. Tesztkérdések ..................... 9 E‐LABORATÓRIUM 1. Kombinációs digitális áramkörök alkalmazása. Mérés menete................. 10 E‐LABORATÓRIUM 1. Kombinációs digitális áramkörök alkalmazása. Mérési jegyzőkönyv.......... 13 E‐LABORATÓRIUM 2. A léptetőmotorok alkalmazásai. Elméleti leírás......................................... 15 E‐LABORATÓRIUM 2. A léptetőmotorok alkalmazásai. Tesztkérdések.......................................... 20 E‐LABORATÓRIUM 2. A léptetőmotorok alkalmazásai. Mérés menete ........................................ 23 E‐LABORATÓRIUM 2. A léptetőmotorok alkalmazásai. Mérési jegyzőkönyv ............................... 27 E‐LABORATÓRIUM 3. Az ABB robotok alkalmazásai. Elméleti leírás ............................................ 30 E‐LABORATÓRIUM 3. Az ABB robotok alkalmazásai. Tesztkérdések ............................................ 42 E‐LABORATÓRIUM 3. Az ABB robotok alkalmazásai. Mérés menete ........................................... 47 E‐LABORATÓRIUM 3. Az ABB robotok alkalmazásai. Mérési jegyzőkönyv ................................... 52
3
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Elméleti leírás
1. Bevezetés A gyakorlat elvégzésére digitális integrált áramköröket alkalmazunk és hardver struktúrát vezérlő szoftvert is. Elemzésre kerülnek a BCD/decimális és a BCD/7 szegmenses integrált dekóderek. Az elektronikus áramkör egy multiplex kijelző számára volt tervezve. A generált bináris számok módosítják a kijelző tartalmat illetve az aktív számjegy értékét. A megjelenített decimális számokat a dekódolt bináris számokból kapjuk. A változtatásokat egy interaktív ablak segítségével érhetjük el. Az elektronikus kijelzővel rendelkező interfészt egy PC biztosítja és a hozzá kapcsolódó digitális bemeneti/kimeneti hardver modul. 2. Binárisan kódolt decimális kód Különböző számrendszer segítségével lehet le írni egy számot. Ha például adva van a következő számj: , ahol , és b a számrendszer alapja (bázisa), akkor a (1) szám decimális értékét a súlyozott összeg adja meg:
(1)
Ha b=2, a számjegy 2-es számrendszerben van ábrázolva és bináris kódnak hívják. A bináris kódnak jelentős szerepe van a modern számítógépes rendszerek működésében, amelyek processzorokat tartalmaznak. A következő példában egy bináris számjegy van megadva: A számjegy decimális értéke:
(2)
(3) Példáknak kis értékű számokat választottunk annak érdekében, hogy összhangban legyenek a hagyományos digitális integrált áramkörrel. Említésre méltó, hogy a digitális áramkörök valós időben végzik el a műveleteket, a megadott gyártási technológia által biztosított paraméterek között. Az ember által használt aritmetikában a legmegfelelőbb a 10es, vagy decimális számrendszer. A számítógépes rendszerek a bináris számrendszert használják. Ilyen módon sokkal könnyebben megvalósíthatóak az áramkörök, a félvezetők technológiájában. A hasonlóság érdekében a decimális számítással, alkalmazható egy egyenértékű numerikus kód, és pedig a binárisan kódolt decimális kód, vagyis BCD (Binary-Coded Decimal). A 0-tol 9-ig terjedő számok bináris kódja 0000-tól egészen 1001-ig terjed, de a nagyobb bináris kódoknak, 1010-tól egészen a 1111-ig nincs is decimális megfelelőjük. Például, 10-es számrendszerben a 135 számnak a BCD kódja az: 0001 0011 0101. 4
www.huro-cbc.eu
Two countries, one goal, joint success!
A dekóderek olyan digitális integrált áramkörök, melyek kifejezetten digitális átalakítást végeznek el. Léteznek olyan dekóderek, amelyek egy bináris bemenethez hozzárendelnek egy azonosítható decimális számot az áramkör kimenetére. Különböző digitális áramkörök léteznek, melyek funkcionálisan egyenértékűek. Egy kijelzőt vezérlő dekóder, a bemenetén lévő bináris kódhoz hozzárendeli az áramkör kimeneten a megfelelő vezérlő elektronikai jelet a kijelző számára. A dekódernek n bemenete és maximum m=2n kimenete van. A dekóderek az MSI technológiában készülnek MSI (medium scale integration). A bináris bemenettől függően, egy vagy több kimenetet választ ki, (1. ábra).
1. ábra. A dekóder általános blokkvázlata. 3. BCD/decimális dekóder A BCD dekóder, egy adott időpontban a bemenetén lévő bináris számot, A3, A2, A1, A0, átalakítja decimális értékre. A 10 kimenet közül csak azt az egy kimenetet válassza ki, amely a bináris bemenetnek a decimális értéke. Különböző digitális integrált áramkörök léteznek, amelyeknek a bementjei/kimentjei, vagy 0-án, vagy 1-es logikai szinten aktívak. Ez az áramkör belső elektronikus architektúrájától függ. A Tab.1-ben a BCD/decimális dekóder igazságtáblázata látható. Az Yk, kimenet akkor lesz aktív, ha a bemenetére az A3,.., A0, BCD bináris kód kerül, amelynek a decimális értéke megegyezik a k-val. A kimenetek logikai 0-án aktívak. Ez azt jelenti, hogy ha a k számjegy decimális értéke kerül BCD kódban az áramkör bemenetére, csak az Yk, kimenet van 0-án; a többi kimenetek egyaránt logikai 1-es állapotban maradnak. Tab. 1. A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
A2
A1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A0 Y 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
Y1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Y2 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
Y3 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
Y4 Y5 Y6 Y7 Y8 Y9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Például, ha k=0101, tehát A3=0, A2=1, A1=0, A0=1, k2 számjegy decimális értéke: k2=01012= 0 2 3 1 2 2 0 21 1 20 = 0 101 5 100 =510. E képen csak az 5-ös kimenet lesz, 0-án. A táblázat tartalmazza a decimális 0-nak is a megfelelő sort. A CBD 442 5
www.huro-cbc.eu
Two countries, one goal, joint success!
integrált áramkör egy BCD/decimális dekóder. Különböző cégek hasonló áramköröket gyártanak. Például használni lehet a Texas Instruments által gyártott SN74LS42, SN54LS42 integrált áramköröket is. 4. BCD/hétszegmensű dekóder A kijelzők felhasználhatnak LED-eket vagy folyékony kristályt. A LED kijelzők monolitikus struktúrák, amelyeknél a diódáknak egy-egy terminálja közös (az anód vagy a katód). Ha mindegyik katód egy terminálra van kötve, a kijelző közös katódú és a BCD/hétszegmensű dekóder kimenetei 1-es logikai szinten aktívak. A BCD/hétszegmensű dekóder a 2-es. ábrán látható. A dekóder az A3, A2, A1, A0, bemeneteken lévő BCD kódot leolvassa és a megfelelő kimeneteken aktiválja a logikai szintet a hétszegmensű közös katódú egy számjegyű elektronikus LED kijelző számára. A hétszegmensű közös katódú LED kijelző megfelelő vezérlés (a, b, c, d, e, f, g) lehetővé teszi a 0, 1, .., 9 decimális számok megjelenítését. Látható, hogy a tiltott BCD bemeneti kombinációk (amelyek megfelelnek a decimális 10, 11,..., 15 számoknak) gyakorlatilag nincsenek értelmezve.
2. ábra. BCD/hétszegmensű dekóder és a hétszegmensű közös katódú kijelző A Tab.2-ben a BCD/hétszegmensű dekóder igazságtáblázata látható, ha hétszegmensű közös katódú kijelzőt használunk. Tab.2 decimális számjegy 0 1 2 3 4 5 6 7 8 9
bemenet A3 A2 A1 A0 a 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 0 0
0 0 1 1 0 0 1 1 0 0
0 1 0 1 0 1 0 1 0 1
1 0 1 1 0 1 0 1 1 1
b
kimenet c d e
f
g
1 1 1 1 1 0 0 1 1 1
1 1 0 1 1 1 1 1 1 1
1 0 0 0 1 1 1 0 1 1
0 0 1 1 1 1 1 0 1 1
1 0 1 1 0 1 1 0 1 0
1 0 1 0 0 0 1 0 1 0
A CBD 447 integrált áramkör egy BCD/hétszegmensű dekóder. Különböző cégek hasonló áramköröket gyártanak. Például, használni lehet a Texas Instruments által gyártott SN5447A, SN54LS47 integrált áramköröket is. 6
www.huro-cbc.eu
Two countries, one goal, joint success!
5. Multiplexeres kijelzés A multiplexeres kijelzés lehetővé teszi, hogy hatékonyan felhasználják az integrált áramköröket és az ugyanazon adatbuszon lévő adatokat. A 3-as. ábrán látható több számjegy multiplexeres kijelzése közös katódú kijelzők felhasználásával. Egy BCD/hétszegmensű dekóder segítségével a 4-bites adatbuszon lévő (DCBA) információt dekódoljuk. Egy adott időpontban ez az információ a kijelzőnek csak egy számjegy esetében hasznos. Abban az esetben, ha az összes számjegy katódja a földhöz lenne kötve, a dekódolt adatok azonosak lennének az összes számjegy részére. A katalógusban megtalálható, hogy milyen típusú dekóder használható fel egy bizonyos típusú kijelző számára. Például, az MMC4511 (HEF4511B PHILIPS, CD4511BE Texas Instruments) integrált áramkör egy BCD/hétszegmensű dekóder a hétszegmensű közös katódú kijelző számára.
3. ábra. 4 számjegy multiplexeres kijelzése közös katódú kijelzők segítségével. Egy másik integrált áramkör segítségével, egy BCD/decimális dekóder, vezérelni fogja a katódoknak a 0V potenciálra kötését. A két bemeneti változó segítségével, SA és SB, létre lehet hozni a négy különböző kimeneti állapotot, a BCD/decimális dekóder kimenetelén – ezek a 0,1,2,3 kimenetek. Mindegyik számjegy kijelző katódja a testre lesz kötve egymásután, ciklikusan, a megfelelő négy kimenetellel összhangban. Ugyanakkor az SA és SB által kiválasztott számjegy szintén összhangban kell, legyen a megadott szám és az adatbuszon lévő DCBA értékekkel. Például, ha az SA és SB egyaránt 1-es akkor az ezres számjegy lesz kiválasztva, és ennek az értékét a DCBA digitális szintek határozzák meg. A kijelző típusával összhangban az egymás utáni számjegyek vezérlési frekvenciája nagyobb kell legyen, mint 50 Hz, annak érdekében, hogy a számjegy folyamatosan látható legyen. Az ilyen típusú kijelzők szintén integrált áramkörök. A kiválasztott számjegyek számát lehet növelni akár 8-ra is, például 3 változó segítségével, ha felhasználásra kerül egy SC változó jel is. Több számjegy közös anódú kijelző multiplexeres áramköre a 4. ábrán látható. A két integrált áramkör egy BCD/decimális dekóder, illetve egy BCD/hétszegmensű dekóder. Az áramkör működési elve hasonló az előbbi 3-as ábrán bemutatott áramkörével, de ebben az esetben a BCD/hétszegmensű dekóder a közös anódú kijelzőknek megfelelő vezérlést, biztosit. Ezért a kimenetek logikai 0-án lesznek aktívak. Egy ilyen típusú áramkör került felhasználásra a gyakorlati munkához. 7
www.huro-cbc.eu
Two countries, one goal, joint success!
4. ábra. 4 számjegy multiplexeres kijelzése közös anódú kijelzők segítségével.
8
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Tesztkérdések 1. A CDB442 integrált áramkör egy: a. BCD/decimális dekóder. b. 4 bemenetű ÉS/NEM kapu. c. BCD/hétszegmensű dekóder 2. A CDB447 integrált áramkör egy: a. 4 bemenetű ÉS/NEM kapu. b. BCD/hétszegmensű dekóder. c. BCD/decimális dekóder. 3. Az MMC4511 integrált áramkör egy: a. 4 bemenetű ÉS/NEM kapu. b. BCD/hétszegmensű dekóder közös katódú kijelző számára c. BCD/hétszegmensű dekóder a hétszegmensű közös anódú kijelző számára. 4. A multiplexeres kijelzéshez szükségesek a: a. BCD/decimális dekóderek. b. BCD/hétszegmensű dekóderek. c. BCD/decimális dekóderek, és BCD/hétszegmensű dekóderek. 5. 4 számjegy egyidejű kijelzéséhez szükség van: a. 4 BCD/decimális dekóderre. b. 4 BCD/hétszegmensű dekóderre. c. 4 BCD/decimális dekóderre és 4 BCD/hétszegmensű dekóderre. 6. 8 számjegyű multiplexeres kijelzéshez szükség van: a. 8 BCD/decimális dekóderre. b. Egy BCD/decimális dekóderre és egy BCD/hétszegmensű dekóderre. c. 8 BCD/hétszegmensű dekóderre. 7. A 4 számjegyű multiplexeres kijelzés esetében aktív lesz valós időben: a. Mind a 4 számjegy. b. Csak egy számjegy. c. 2 számjegy, azért mert a számjegyek bináris jelekkel vannak vezérelve. 8. A kijelző számjegyei számára az a, b, c, d, e, f, g jelek: a. Külön vannak kötve egy-egy BCD/hétszegmensű dekóderre. b. Közösek és egy BCD/hétszegmensű dekóderhez vannak kötve. c. Attól függ, hogy milyen típusú az áramkör. 9. A kijelző bemenetek az adatok aktiválására: a. Bináris bemenetek. b. Decimális bemenetek. c. Decimális bemenetek egy A/D átalakító felhasználásával. 10. A kijelző számjegyek aktiválására szükséges bemenetek: a. Bináris bemenetek. b. Decimális bemenetek. c. Decimális bemenetek egy A/D átalakító felhasználásával. 9
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Mérés menete 1. Kísérleti áramkör A laboratóriumi gyakorlat a LabVIEW grafikus fejlesztői környezet segítségével készült, ez fizikailag kommunikál az, NI USB-6216 adat gyűjtő kártyával, ami vezérli az adott kísérleti elektronikus áramköröket. Ezen kívül a rendszerbe van csatlakoztatva egy web kamera, amelynek segítségével valós időben látható a kísérleti kártya az integrált áramkörökkel és a kijelzővel. A laboratóriumi gyakorlat elvégzéséhez felhasználásra került: A. Hardware şi software alapeszközök 1. Egy PC (server). 2. a LabVIEW grafikus fejlesztői környezet. 3. NI USB-6216 adat gyűjtő kártya (National Instruments) 4. 5Vdc tápfeszültség. 5. Egy web kamera. B. Hardware şi software eszközök, amelyek a kísérleti áramkörhöz voltak tervezve és előalítva: 1. A hardware modul, amely tartalmazza az integrált áramköröket, a multiplexeres kijelző működéséhez és a 4 számjegyű LED-es kijelzőt. 2. Az interaktív program „multiplexed display with IC.vi”, amely a LabVIEW fejlesztői környezetben lett kifejlesztve a hardware modul tesztelésére. Az interaktív program segítségével lehet vezérelni a digitális elektronikus kártyát. A program lefutása után aktiválni lehet a DCBA gombokat és beállítani a bemeneti digitális jeleket a dekódoló áramköröknek. Az "1-es" állapotot az aktív zöld gomb jelzi (1. ábra.). Továbbá van egy modul, amelynek segítségével elvégezhető az automatikus számolás és a számok 0-tól, ..., 9-ig kerülnek kijelzésre. Ezt az üzemmódot egy különálló gombbal lehet kiválasztani. A multiplexeres kijelzéshez, az kísérleti áramkör tartalmazza a két integrált áramkort, BCD/decimális dekódert és a BCD/hétszegmensű dekódert. A kijelző LED-es közös anódú és 4 számjegyű. 4 BC177 pnp típusú tranzisztor segítségével van táplálva az egy-egy kijelző számjegy, annak a függvényében, hogy milyen állapotban vannak a kimenetei a CDB 442-es BCD/decimális dekódernek. A BCD/hétszegmensű dekóder CDB 447 típusú áramkör. Különböző cégek hasonló áramköröket gyártanak. Például, használni lehet a Texas Instruments által gyártott SN5447A, SN54LS47 integrált áramköröket is. Az interaktív program segítségével, a BCD számok beírhatók a DCBA gombok aktiválásával. Aztán ezeket a számokat az NI digitális bemenet/kimenet interfészen keresztül kiküldi az elektronikus kártyán lévő BCD/hétszegmensű dekóder DCBA bemeneteire. A web kamera segítségével a kijelző on-line látható a gyakorlatot elvégző személy számára.
10
www.huro-cbc.eu
Two countries, one goal, joint success!
1. ábra. A kísérleti áramkör vezérlésére alkalmazott interaktív grafikai felület; az on-line üzemmód ellenőrzésre használt tesztkonfiguráció. A CBD 442 integrált áramkör egy BCD/decimális dekóder (Tab.1.). Különböző cégek hasonló áramköröket gyártanak. Például használni lehet a Texas Instruments által gyártott SN74LS42, SN54LS42 integrált áramköröket is. A BA bemenetekre egy bináris kombináció kerül kiválasztásra. A kijelző 4 számjegye:0,1,2,3. Egy adott pillanatban, a kijelző számjegyei közül csak egy számjegy lesz aktív. Tab.1. A kijelző CDB442 áramkörrel való vezérlése B 0 0 1 1
1. 2.
3. 4.
A 0 1 0 1
3 0 1 1 1
2 1 0 1 1
1 1 1 0 1
0 1 1 1 0
A laboratóriumi gyakorlat elkezdése előtt a következő beálltásokat végeztük el: Bealítottuk a MATRIX tápegységet 5V DC-re. Rá csatlakozattuk a kísérleti kártyát, amely tartalmazza az integrált áramköröket és a multiplex kijelzőt. Össze csatlakoztattuk a kísérleti kártyát az, NI adat gyűjtő kártyával. Az adat gyűjtő kártyától kapják a bemeneti bináris jeleket a BCD/decimális dekóder és a BCD/hétszegmensű dekóder. Az USB kábel segítségével csatlakoztattuk az NI adat gyűjtő kártyát a PC-vel. A menü programból lefuttatjuk a Multiplexed display with IC.vi alkalmazást.
11
www.huro-cbc.eu
Two countries, one goal, joint success!
2. A gyakorlat menete 1. Az alkalmazás (gyakorlat) on-line megjelenése után, demonstrációs célból, aktiválja az automatikus számoló üzemmód kiválasztó gombját. A továbbiakban, az interaktív ablakon és a web kamerán keresztül egyaránt, figyelje meg ezt az üzemmódot és a bemeneti ABCD bináris jelek változását. Látható az összefüggés a kijelző számjegye és annak az elektronikus áramkörön lévő pozíciója között. Alt + PrtSc billentyűk kombinációval mentse le az alkalmazási felület printscreen-ét, amelyen látható a működő automatikus számoló modul és a web kamera által küldött kép is. Végül kapcsolja ki az automatikus számoló üzemmódot, a dekódolás és a kijelzés átvált kézi üzemmódra. Töltse ki a gyakorlat jegyzőkönyvét, és az 1 ponthoz másolja át az előbbi lementet printscreen ábrát. 2. A CBD 442 integrált áramkör egy BCD/decimális dekóder, amelynek a segítségével lesz kiválasztva a kijelzőnek a megfelelő számjegye. Az LED típusú kijelzőnek 4 számjegye van, vezérlésüket a négy tranzisztor biztosítja. Válassza ki a BA bináris bemenetre az 11-es kombinációt. Ily módon a harmadik számjegy kerül kiválasztásra. Ha a BA bináris bemenet 00-ra van állítva, akkor a kijelző 0-ik számjegye lesz aktiválva. 3. A CDB 447 típusú BCD/hétszegmensű dekóder ABCD bináris bemeneteire állítsa az 0101-es kombinációt és ennek megfelelően látható az 5-ös szám. Alt + PrtSc billentyűk kombinációval mentse le az alkalmazási felület printscreen-ét, amelyen láthatók a bináris bemenetek értékei és a kijelzett szám is. Másolja át a 2-es és 3-as pontnál lementett printscreen ábrákat a gyakorlat jegyzőkönyv 2-es pontjához. 4. Válasszon ki három különböző bináris kombinációt a két digitális integrált áramkörnek a bemeneteire és figyelje meg a gyakorlatban a dekódolást és a multiplexeres kijelzést. A jegyzőkönyv 3-es pontjánál írja be a kijelző állását a megfelelő három kiválasztott bemenetre. 5. Válaszon ki, kijelzésre két különböző decimális számot és két aktív számjegyet. Ennek megfelelően állítsa be a két digitális integrált áramkörnek az ABCD illetve az AB bemeneteit. A jegyzőkönyv 4-es pontjánál írja be a különböző bementi kombinációt a kiválasztott számra és számjegyre, a kijelző állásának megfelelően. 6. Aktiválja sorrendben az 1-es és 3-as számjegyet úgy, hogy azokon a 4-es szám legyen látható. Alt + PrtSc billentyűk kombinációval mentse le az alkalmazási felület printscreen-ét, amelyen láthatók a bináris bemenetek értékei és a kijelzett szám is. A jegyzőkönyv 5-ös pontjához másolja át a megfelelő lementett printscreen ábrákat. 7. Aktiválja sorrendben a 0 és 2-es számjegyet úgy, hogy azokon a 7-es szám legyen látható. Alt + PrtSc billentyűk kombinációval mentse le az alkalmazási felület printscreen-ét, amelyen láthatók a bináris bemenetek értéke és a kijelzett szám is. A jegyzőkönyv 5-ös pontjához másolja át a megfelelő lementett printscreen ábrákat.
12
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Mérési jegyzőkönyv A laboratóriumi gyakorlat elvégzése után a következő eredményeket kaptuk: 1. A megfelelő gomb segítségével aktiváltuk az automatikus számoló üzemmódot. Ebben az üzemmódban, megfigyeltük a web kamera által közvetített valós idejű képeket. Az automatikus számoló üzemmód a következő printscreen ábrát eredményezte:
2. A CDB 442 integrált áramkörnek az AB bemenetei 11-es bináris kombinációra voltak beállítva, amely megfelel a 3 jegyű számjegynek, és CDB 447 integrált áramkörnek az ABCD bemenetei 0101 bináris kombinációra voltak beállítva, azért hogy az 5-ös szám látható legyen. Alábbi ábrán látható a megfelelő printscreen: 3. Az integrált áramkörök bemeneteire 3 különböző BCD bináris kombinációt választottunk: ...... ......, ......., és a következő decimális számokat tartalmazta a kijelző: ..., ..., .... 4. Kijelzésre a következő két decimális számot választottuk: …, … és kiválasztottuk a számjegyet: ….., a bináris értékek az ABCD bemenetekre: ….., …… és a számjegynek megfelelő bináris kód az: …… 5. Egymás után aktiváltuk az 1-es és 3-as számjegynek megfelelő kijelzőt, a kijelzett szám az 4-es volt. Az alábbi ábrán láthatók a lementet megfelelő printscreen-ek: 6. Egymás után aktiváltuk a 0 és a 2-es számjegynek megfelelő kijelzőt, a kijelzett szám az 7-es volt. Az alábbi ábrán láthatók a lementet megfelelő printscreen-ek:
13
www.huro-cbc.eu
Two countries, one goal, joint success!
Név: ………………… Kar: …………………. Szak: ………….. Évfolyam: ………………...
14
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 2 A léptetőmotorok alkalmazásai Elméleti leírás 1. Bevezető A szinkronmotorok csoportjában egy külön helyet a léptetőmotor foglal el, aminek a diszkrét működését, vagyis a léptetést, egy megfelelő felépítési és tápellátási rendszer jellemez. Lépcső tipusú feszültségimpulzusok vagy ezek kombinációinak hatására a gép fázistekercsei áramimpulzusokkal vannak ellátva. Ilyen módon a mágneses tér a vasmagban diszkrét elosztást mutat. Egyik pozicióból a másikba való átmenet, ami a motor szögelfordulását jelenti, direkt módon a mágneses tér diszkrét eloszlásának megváltozása hatására történik, vagyis a léptetőmotor a kapott lépcsőformájú impulzust, precízen meghatározott, diszkrét szögelmozdulássá alakítja. Tehát a léptetőmotort meg lehet határozni mint, diszkrét elektromehanikus impulzus/elmozdulás átalakító. A léptetőmotor a szinkron motorok csoportjába tartozik, mert a rotorelfordulás sebessége, az egységidő alatti lépések számával kifejezve, egyenes arányban függ a tápálási (gerjesztési) impulzusok frekvenciájával. Csak a léptetőmotor sajátossága az, hogy a teljes szögelfordulás ami egy jól meghatározott lépésszámból áll, egyhangulag jelképezi a motor fázisaira adott vezérlőimpulzusokat. Ebből következően a léptetőmotort meg lehet határozni mint egy numerikus integrátort, aminek az integrálási állandója egyenlő a vezérlő impulzusok frekvenciájának fordítottjával. A rotor végső helyzete megfelel az utoljára alkalmazott vezérlőimpulzusnak, és ez a helyzet megőrződik és eltárolódik a következő új vezérlőimpulzus megjelenéséig. Az impulzus/elmozdulás konverziójára vonatkozó, egyedi tulajdonság, társítva a pozició megörzésének a képességével, a léptetőmotort egy kitűnő végrehajtó elemmé teszi a helyzetszabályzó rendszerek számára a nyilhurkú rendszerekben, általánosan szólva, pozícióba hajtó rendszerekben. Egy másik tulajdonsága ami a klasszikus szinkronmotoroktól megkülönbözteti az az, hogy a munkatartományban, hirtelen indítást, megállást, irányváltást biztosít információ vesztés nélkül, vagyis lépéskihagyás nélkül. 2. Léptetőmotorok osztályozása Jelenleg a léptetőmotorokat, különböző teljesítménynek és sebességnek megfelelően széles tipustartományban építik. Az építési kritérium a motor mértani alakzatára és a mágneses szerkezetére vonatkozik. A léptetőmotorok szétválaszthatók mint: - változtatható reluktanciájú léptetőmotorok ( 1.a ábra); - állandó mágnesekkel rendelkező léptetőmotorok ( 1.b ábra); - hibrid léptetőmotorok ( 1.c ábra). A hibrid motorok, az első két építési tipus kombinációját képezik, vagyis egyaránt alkalmaznak állandó mágnest és változtatható reluktanciát. Léteznek speciális léptetőmotorok is, mint például a lineáris, az elektrohidraulikus, a piezoelektrikus léptetőmotorok, stb. 15
www.huro-cbc.eu
Two countries, one goal, joint success!
A.
b. 1 Ábra. Léptetőmotorok.
c.
A változtatható mágneses reluktanciájú motor forgórésze lágyvasból készűl , a külső felületén kiemelkedésekkel. Ez a motortipus iparon kívüli alkalmazásokban hasznos, mint pl. egy mikro-slide pozícióba mozgatása. Az 1.a ábra által bemutatott motor 8 állópólust tartalmaz 4 fázistekerccsel AA1, BB1, CC1, DD1, mindegyik 2 azonos féltekercsből alkotva és megfelelően, átlósan a szembenfekvő pólusokra felhelyezve (AA1, BB1, stb.). Egy fázis gerjesztése (pl. AA1) vonzó mágneses kölcsönhatást eredményez az állórész és a rotor között, ami a fogaknak a pólusokhoz való beállásához vezet, az A fázisnak megfelelően. A BB1 fázistekercs betáplálásának hatására a rotor, egy 45-os szögelfordulást végez . A folyamat a CC1, DD1, A1A, B1B,....fázistekercsek betáplálásával folytatódik, az óramutató járásának megfelelően. A fázisok sorrendjének a megfordításával, D-től az A fele, megfordíthatjuk a motor rotorjának a forgásirányát. Az állandó mágnessel rendelkező motrok nagy, 45 vagy 90 -os szögelfordulással, alacsony nyomatékot fejlesztve viszonylag kis sebességgel működnek. Ez a motor ideális megoldás iparon kívüli alkalmazásokban, mint pl. egy nyomtató kerekének a pozícióba való mozgatása. Az 1.b ábrán egy állórészen 4 fázissal rendelkező 90-os szögelfordulású motor van feltüntetve (A-D). A négy fázist sorba betáplálva, a rotor, a mágneses mező változásainak függvényében forog, vagyis az alá a pólus alá áll be, amelyiknek a tekercse táplálva van. (2ábra).
2. Ábra. A motor működése az 1.b ábrából A hibrid motor a változtatható reluktanciájú és az állandó mágnessel rendelkező motor legjobb tulajdonságait ötvözi. Rotorjuk állandó mágnes és az állórészük fogazott pólusokból épűl. Magas dinamikus és statikus nyomatékot fejlesztenek, ezért széles skálán használják ipari alkalmazásokban. 16
www.huro-cbc.eu
Two countries, one goal, joint success!
A léptetőmotornak a s szögelfordulását az alábbi képlettel számoljuk ki : 360 s m Nr ahol m- az állórész fázisainak a számát, Nr pedig a rotor fogainak a számát jelenti.
(1)
3. A léptető motorok tekercsei A következő tekercstipusok léteznek: a. monofiláris – egyetlen tekercs adott állópóluson (3.a Abra); b. bifiláris – két rend azonos tekercs van mindegyik állópóluson. A tekercsekben ebben a konfigurációjában a motor működése, az áramnak, az egyik tekercsről a másikra való átvitelére van leegyszerüsítve. A tekercsek meneteinek ellenkező irányba való tekercselése, a rotorforgásirányának megváltozásához vezet. A monofiláris tekercsekkel rendelkező motorok esetében, a rotor forgásiranyának megváltoztatásához szükség van a tekercsen átfolyó áram irányának a megfordítására. Általában a bifiláris léptetőmotorok 8 véghuzallal rendelkeznek ami rugalmassá teszi a tekercseknek soros vagy párhuzamos kapcsolását. Léteznek még 6 véghuzallal rendelkező léptetőmotorok azokhoz az alkalmazásokhoz ahol a tekercseket sorbacsatolják (3.b Abra).
a.
b. 3. Ábra. Léptető motorok tekercs tipusai.
4. A léptetőmotorok vezérlésének módszerei A léptetőmotor vezérlési módja az alkalmazott meghajtó tipusától függ. A következő vezérlési módszerek léteznek: teljes szöglépés, fél lépés és mikrolépés vezérlés. 4.1. A teljeslépés vezérlés A tekercseknek, sorban egyenként való táplálásával jön létre a teljes szöglépés (4. Ábra) . Következésképpen egy digitális bemenet a meghajtónál egyenértékű a rotornak egy szöglépésével.
a. b. 4. Ábra. A teljes szöglépés vezérlése: a) a tekercsek gerjeszése; b) a tekercsekben folyó áramnak.
17
www.huro-cbc.eu
Two countries, one goal, joint success!
4.2. A féllépéses vezérlés Ebben az esetben megtáplálják az első tekercset, majd két-két tekercset (elsőt a másodikkal), ezt követően a második tekercset, a másodikat a harmadikkal, és így tovább. (5. Ábra).
Figura 5. A féllépéses vezérlés. Ez a vezérlési mód ipari alkalmazásokban előnyös, még akkor is ha a nyomaték kisebb, viszont a járás egyenletesebb. 4.3. Mikrolépéses vezérlés Ez a vezérlési mód a tekercseken átfolyó áramnak a felügyeletén alapul úgy, hogy felosztják a pólusok közötti pozíciók számát (6 Ábra). Így egy 1,8-os szöglépéssel rendelkező motor esetén 1/256 elmozdulást lehet elérni egy szöglépésből, tehát 51200 lépést a rotor teljes elfordulásának esetén.
6 Ábra. Mikrolépéses vezérlés. A mikrolépéseket azokban a nagysebességű alkalmazásokban használják ahol nagyfelbontású precíz pozícióbahajtás szükséges. 5. Léptetőmotorvezérlő kapcsolási rajzok Egy léptetőmotor vezérlőjének a kapcsolási rajza általában egy felhasználói interfészből, egy kontrollerből, egy meghajtóból és egy léptetőmotorból áll (7. Ábra). A kontroller egy mikroprocesszor, ami lépésimpulzusokat és irányjeleket generál a meghajtó számára. A meghajtó (erősítő) a kontrollertől érkező jeleket alakítja át, a motor tekercseinek ellátásához szükséges teljesítmennyé.
18
www.huro-cbc.eu
Two countries, one goal, joint success!
Magasszintű utasítás
Felhasználói interfész
Léptető impulzusok
Kontroller
A motor áramai
Erősítő
Motor
7. Ábra. A léptetőmotor vezérlőjének blokksémája. A léptetőmotor sebességre és nyomatékra vonatkozó teljesítménye az áramnak a meghajtótól a tekercsre való átvitelén alapúl. Az áram értéke és az idő ami alatt az áram a tekercsekre jut, a tekercsek induktivitásának értéke által határolt. Az induktivitás effektus elkerülése végett, a meghajtó áramkörei úgy vannak megtervezve, hogy a táplálásuk magasabb feszültségről történjék mint a normális feszültség. 6. A léptetőmotorok táplálásához használt meghajtók Ipari alkalmazásokban a bipoláris csoppereket használjákleginkább (8 Ábra), amik nagy teljesítményt és hatékonyságot nyújtanak.
8 Ábra. Bipoláris csopper a léptetőmotorok táplálására. A 8-as ábrán szereplő áramkört a motor egy fázisához használják (AA1), egy adott pillanatban T1 és T4 tranzisztorok lévén nyitott állapotban. Az AA1 tekercsen átfolyó áram irányának megfordításához a T2 és T3 tranzisztorokat kivezérlik. A D1 és D2 diódák a tranzisztorok védelmét szolgálják amikor azok záródnak. Az R ellenállás egy irányellenállás melynek szerepe, a motorárammal arányos reakciófeszültség megtartása. Az ellenállás a motor tekercsén átfolyó áramerősség növekedését figyeli mind addig, amíg az a kívánt értéket el nem éri. Ebben a pillanatban a felső tranzisztor lezár, és az áramkör az alsó tranzisztoron és az ennek megfelelő diódán keresztűl zárúl.
19
www.huro-cbc.eu
Two countries, one goal, joint success!
E-Laboratórium 2 A léptetőmotorok alkalmazásai Tesztkérdések 1. A léptetőmotor egy: a. egyenáramú villanymotor, áram impulzusokkal táplálva; b. áramimpulzusokkal táplált speciális szinkronmotor, ami léptetessel működik; c. állandó mágnessel alkotott állórészű, szinkronmotor. 2. A léptetőmotor meghatározható, mint: a. egy numerikus integráló elem, melynek integrálási állandója egyenlő a vezérlő impulzusok frekvenciájának inverzével; b. egy diszkrét, impulzus/elmozdulás, elektromehanikus konverter; c. nyílthurkú rendszerekben, helyzetszabályozó rendszerek számára megfelelő, pozícióba hajtó elem. 3. A léptetőmotor szögelfordulása meghatározható, mint: a. két egymás mellett lévő állórész közötti távolság; b. két egymás mellett lévő forgórészpólus közötti távolság; c. a motor forgórészének elmozdulása egyik helyzetből a másikba, a tekercsekre adott impulzus hatására. 4. A léptető motor szinkron jellege abból következik, hogy: a. a motor elmozdulássebessége egyenesen függ a vezérlőimpulzusok frekvenciájától; b. a tekercsek táplálása, háromfázisu váltakozó áramu hálózatról történik; c. a motor forgórésze állandó mágnesekből készült. 5. A hibrid léptetőmotor: a. egy léptetőmotor, amely egyaránt rendelkezik egyenáramú és váltakozóáramú tekercsekkel; b. egy léptetőmotor, állandó mágnesekkel és változtatható reluktanciával; c. állandó mágnesekkel alkotott állórészü léptetőmotor. 6. Az 1.-es ábrán (Fig.1) szereplő léptetőmotor: a. változtatható reluktanciával rendelkező motor; b. állandó mágnessel rendelkező motor; c. hibrid motor. 7. A 2.-es ábrán (Fig.2) szereplő léptetőmotor szögelfordulasa: a. 90; b. 22,5; c. 45.
Fig.2 20
www.huro-cbc.eu
Two countries, one goal, joint success!
8. A 3.-es ábrán (Fig.3) szereplő léptetőmotor szögelfordulása: a. 90; b. 22,5; c. 45.
Fig.3 9. A 4.-es ábrán (Fig.4) szereplő léptetőmotor: a. állandó mágnessel rendelkező léptetőmotor; b. hibrid; c. változtatható reluktanciával rendelkező léptetőmotor. 10. A 4.-es ábrán (Fig.4) lévő szögelfordulása egy teljes lépésutasításra: a. 15; b. 30; c. 60.
motor
11. Írjátok be a táblázatba az ábrán szereplő motor utasítás szekvenciáit.
Fig.5 12. A léptetőmotor forgásiránya a következő módon változtatható meg: a. a tápfeszültség polaritásának felcserélésével; b. a tekercsek vezérlése sorrendjének felcserélésével; c. az állórész mágneses pólusainak felcserélésével. 13. A léptetőmotor bifiláris tekercsei rendelkezhetnek: a. 2 vezetékkel; b. 6 vezetékkel; c. 8 vezetékkel.
21
www.huro-cbc.eu
Two countries, one goal, joint success!
14. A mellékelt táblázatnak megfelelően tüntessétek fel a léptetőmotor tekercsein átfolyó áramokat.
Fig.6 15. A mikrolépések megvalósítása a következő: a. az állópólusok számának megsokszorozásával; b. a tekercsen átfolyó áramnak a szabályzásával, oly módon, hogy a pólusok közötti poziciók száma osztódjon (sokszorozodjon,); c. a tekercsekre adott impulzusok számának növelésével. 16. A léptetőmotor vezérlési sémája a következőkböl áll: a. felhasználói interfész, kontroller, erősítő, léptetőmotor; b felhasználói interfész, kontroller, léptetőmotor; c. felhasználói interfész, erősítő, léptetőmotor. 17. A kontroller szerepe, hogy: a. felügyelje a léptetőmotor forgórészének sebességét; b. megfordítsa a léptetőmotor rotorjának forgásirányát; c. lépés impulzusokat és irányjeleket generáljon a meghajtó számára. 18. Az erősítő szerepe: a. a léptetőmotor tekercsein átfolyó áram erősítése; b. a kontroller utasitásjeleinek teljesitménnyé való konvertálása, a motor tekercseinek tápellátásához; c. a kontroller verzérlőfrekvenciájának erősítése. 19. A tekercseken átfolyó áram erősséget befolyásolja: a. a tekercsek induktivitása; b. a vezérlőimpulusok frekvenciája; c. a motor forgórészének forgássebessége. 20. A 7.-es ábrán(Fig.7) szereplő kapcsolasi rajzot, ami egy erősítőt ábrázol a léptetőmotor tápellátásához, a helyes működés érdekében ki kell egészíteni: a. 2 tranzisztorral; b. 2 kondenzátorral; c. 2 diódával. Készítsétek el a rajzot a szükséges kiegészítésekkel.
22
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 2 A léptetőmotorok alkalmazásai Mérés menete 1. A kísérleti áramkőr A LabVIEW grafikus programozási felület segítségével megvalósított laboratóriumi alkalmazás, fizikailag, az NI USB-6216-os adat gyűjtőlemezzel kommunikál, ami a maga során vezérlő jeleket ad a léptető motor integrált áramkörökkel ellátott elektronikus vezérlő lemeze számára, valamint az NI USB-6361-es lemezzel, ami a léptetőmotor fázisainak áramellátását biztosítja. Egy webkamera élőképet szolgáltat a léptetőmotorról és a fényjelző diódákról amik a léptetőmotor vezérlőlemezének az áramellátását, valamint a léptetőmotor fázisainak az áramellátását jelzik. A gyakorlat elvégzéséhez a következők lettek felhasználva: A. : Hardware alapkellékek és alapszoftverek: 1. Számítógép 2. LabVIEW 2011 programozási felület 3. NI USB-6216 és NI USB-6361 (National Instruments) adatgyűjtő lemezek 4. MATRIX DSP-3205STK-3 Dupla tápegység (15Vdc és 12Vdc) 5. A4TECH web kamera 6. Az Applied Motion Productions P/N 5023-196D léptetőmotorja, valamint az ennek megfelelő vezérlő és kontroll lemeze. B. : A kísérleti gyakorlat érdekében tervezett hardware és software alapegységek: 1.A léptetőmotor relén keresztüli (KI/BE) feszültségellátására, valamint a szükséges áramnak begyűjtésére szolgáló csatlakozómodul, 2. „Stepper Motor Driving.vi” léptetési módok vezérlésére szolgáló, LabVIEW-ben megvalósított virtuális műszer/alkalmazásprogram.
1.Ábra. A léptetőmotor és vezérlőáramkörei (és web kamera).
23
www.huro-cbc.eu
Two countries, one goal, joint success!
Az 1.ábra bal oldalán látható léptetőmotor négy fázissal rendelkezik, ezek alacsony frekvencián való áramellátása az A B C D égők világítása által észlelhető:
2.Ábra. A léptetőmotorok egyes fázisainak megfelelő fényjelző diódák. 2. A kísérletek megvalósítása A virtuális műszer, Internet Explorer web oldalra való betöltése után, ez a 3-as ábrának megfelelően fog kinézni. A virtuális műszer, a folyamatvezérlés érdekében két típusú grafikus tárgyat állít rendelkezésre: - a léptetőmotor, kívánt paraméterek szerint meghajtásának kiválasztását előresegítő parancsok, - a forgás vizualizálására szolgáló jelzők. A virtuális műszer felügyeletének segítségével az összes vezérlés lehetővé válik. Ezek előre meghatározott értékekkel rendelkeznek, a virtuális műszer weblapba való betöltésekor láthatóak, de lehetőség van más értékek kiválasztására még az első futtatás előtt is. Válasszátok ki a léptetés módját, felhasználva a "Lépésmód kiválasztása"/ "Select Stepping Mode", tab típusú parancsot. Válasszátok ki a "Forgásirány"-t óramutató járásának megfelelő / Clockwise vagy az óramutató járásával ellentétes / Counterclockwise, gyűrű típusú menü paranccsal (menu ring). Válasszátok ki a lépések számát a "Végrehajtott lépésszámok"/ " Number of Steps to execute", szám paranccsal. Válasszátok ki a lépésfrekvenciát "Léptetési frekvencia (másodpercenkénti lépések száma)"/ Step rate (Steps per Second)”. A kép típusú kijelzőben "Összes kép"/ "All Images Out" megfigyelhető a léptetőmotor tengelye és a jelződiódák. A szám kijelző "Mostani lépés"/"Current step" mindig az éppen végrehajtott lépésszámot mutatja. A léptetőmotor fázisaira juttatott feszültséget, az éppen végrehajtott lépes esetén, az egydimenziós boolean mátrix típusú kijelzőn követhetjük nyomon "A,B,C,D adatok"/"Data for A,B,C,D" (viszonylag alacsony lépésfrekvenciánál követhetők a kombinációk). A motor fázisaira juttatott parancs kombinációk folytonossága, minden esetben nyomon követhető a két dimenziós boolean-i mátrix típusú kijelzőben "Tekercsek összes értékei"/"All values to the coils". Mivel ennek a kijelzőnek az új értékekkel való kitöltése a léptetőmotor új mozgatási parancsának lefutása után történik, az értékek vizualizálását hozzárendelt gombok segítségével tehetjük meg.
24
www.huro-cbc.eu
Two countries, one goal, joint success!
Egy mozgatási parancs befejezésekor, a műszer számára elérhetővé válnak a felső és alsó oktet-ek "High byte" és "Low byte" értékei, mely információk feldolgozásra kerülnek a végrehajtott lépésszám ellenőrzésének érdekében a következő összefüggés szerint:
3.Ábra. Virtuális műszer az Internet Explorer weblapon.
Counts Highbyte 256 Lowbyte Counts a kvadrát-dekóder-ben lévő integrátpárnak megfelelő inkrementálások számát jelképezi, amely a léptetőmotor vezérlőlemezén lévő integráltak esetén 1600 inkrementálás egy teljes fordulat alatt. Mivel a különböző léptetési módok esetén a lépéstávolságok különböznek, figyelembe kell venni az egy lépésre eső inkrementálások számát, ily módon: teljes erővel történő teljes lépés esetén "full stepping_half power" a szögfordulás 1.8°, a fél lépés pedig "Half stepping" a szögfordulás 0.9°. A teljes szögelfordulásra eső inkrementálások számát a következő összefüggés adja meg: inkr / teljes _ szög.elfordulás
1600 lépésszög 360
Végrehajtott és ellenőrzött lépésszámok: counts végr.és.ellenörzött.lépésszám inkr / szög.elfordulás Ezt a számot összevetjük a végrehajtandó lépések parancsolt számával, minden egyes végrehajtás kezdeményezésekor. Válasszunk 4-es többszörösű egymást követő lépéseket és jegyezzük be a táblázat két oszlopába a végrehajtásra kiadott léptetési parancsokat és a ténylegesen végrehajtott lépéseket. Néhányszor, kiadunk 4-es többszörösű+1, négyes többszörösű+2, négyes többszörösű+3 léptetési parancsokat. Kitöltjük a táblázatot a kiadott és végrehajtott léptetési parancsokkal az előbbiekben felsorolt esetekre is.
25
www.huro-cbc.eu
Two countries, one goal, joint success!
4.Ábra. A fázisokon átfolyó áramok, teljes erővel történő teljes szögelfordulás esetén. Ilyen módon ellenőrizzük, hogy a fenti esetek melyikénél történhet lépésvesztés mivel nincs betartva a fázisok táplálásának a sorrendje, két mozgatási parancs között, az enkóder dekóder áramkör pár egyik irányú inkrementálódása során. Kövessük minden mozgatási parancs hatására bekövetkező áramváltozásokat. A 4. ábrán bemutatja a teljes erővel történő teljes szögelfordulást. Megfigyelhető, hogy minden időpillanatban be van táplálva két fázis. A képernyő a futtatott virtuális műszerről van kivágva.
26
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 2 A léptetőmotor alkalmazásai Mérési jegyzőkönyv A laborgyakorlat elvégzése során a következő eredményeket találtuk: 1. Az előre meghatározott vezérlési értékekkel futtatjuk a virtuális műszert, figyelve a webkamera által nyújtott képet, és a hullám diagram típusú kijelző négy hullámformáját, a léptetőmotor négy fázisán átfolyó áramának megfelelően. Megfigyeltük a „Tekercsek összes értékei”/”All values to the coils” kijelzőt és megfigyeltük, hogy hány lépésként ismétlődik meg a diódák fényjelzéseinek sorrendje mindegyik léptetési módnak megfelelően. Megváltoztattuk a forgásirányt és megismételjük a kísérletet. 2. Sorra kiválasztottuk a rendelkezésre álló léptetési módot, és megjelenítettük az áramok hullámformáit. Itt beillesztünk három képet (printscreen) a teljes erővel való teljes szögelfordulás, a félerővel történő teljes szögelfordulás és a félfordulat áramainak hullámformáit. Kitöltjük a táblázatot a három léptetési móddal, a betáplált valamint táplálatlan fázisoknak megfelelő áramok értékeivel, négy értéksort a teljes szögelfordulási módra, 8 egymást követő értéksort pedig a fél elfordulás módra. Fázisáram értéke fázisonként: Léptetési mód A B C D Teljes szögelfordulás, teljes erő
Teljes szögelfordulás, fél erő
Fél fordulat
3.
Minden egyes léptetési mód esetén kiadunk 3-3 egymást követő parancsot, 4-es többszörös léptetés számmal, 4-es többszörösű plusz 1, 4-es többszörösű plusz 2 majd 4-es többszörösű plusz 3 lépésszámmal. Elvégezzük a megfelelő számításokat az ellenőrzött és a végrehajtott lépésszámok kiszámításához és feljegyezzük a parancsolt lépésszámokat.
27
www.huro-cbc.eu
Two countries, one goal, joint success!
Lépések száma Parancsolt Végrehajtottként számoltak
Lépés mód 4-es többszörösű
4-es plusz 1 Teljes erővel történő teljes szögelfordulás 4-es plusz 2
4-es plusz 3
4-es többszörösű
4-es plusz 1 Fél erővel történő teljes szögelfordulás 4-es plusz 2
4-es plusz 3
4-es többszörösű 4-es plusz 1 Félfordulat 4-es plusz 2
4-es plusz 3
Vessétek össze a parancsolt értékeket a számított értékekkel, vonjatok le következtetéseket az enkóder - dekóder integrált pár által szolgáltatott inkrementálások számának növelésére 28
www.huro-cbc.eu
Two countries, one goal, joint success!
és csökkentésére vonatkozólag a forgásirány megváltozásakor abban az esetben amikor, a léptetési mód miatt, amelyikben a parancsolt léptetési szám a 4-es többszöröse (vagy nem) az első lépés (szögelfordulás) mint egy nagyobb lépés (szögelfordulás) van vezérelve mint egy vagy két lépés az óramutató járásirányával megegyezően vagy ellentétesen. 4.
Határozzátok meg, mely vezérlések állnak rendelkezésre a virtuális műszer futtatásának az ideje alatt. Ennek érdekében minden futtatás alkalmával módosítsatok egy és csakis egy paramétert. Például, módosítsátok meg a végrehajtandó lépések számát vagy az egy másodpercre eső lépések számát. Készítsetek 2 listát azokkal a parancsokkal amelyeket meg lehet módosítani és azokkal amelyeket nem lehet megmódosítani.
Hallgató neve: ………………… Egyetemi kar: …………………………… Szak: ……………………….. Évfolyam: ……
29
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 3 Az ABB robotok alkalmazásai Elméleti leírás Egy RAPID program bizonyos számú parancsból áll, amik leírják a robot működését. A különböző parancsoknak konkrét utasítások felelnek meg, mint például a robot mozgatása, a kimenet beállítása, stb. Az utasításokhoz argumentumok tartoznak, amik meghatározzák mi fog bekövetkezni egy utasítás során. Például egy kimenet alaphelyzetbe állítására vonatkozó utasítás egy olyan argumentumot tartalmaz, amely meghatározza a használt kimenetet. 1. A program logikája A program szekvenciálisan hajtódnak végre, vagyis utasításonként. Esetenként szükség van utasításokra, amelyik megszakítják a szekvenciális végrehajtást és meghívnak egy másik utasítást az esetlegesen fellépő helyzetek kezelése érdekében. Komplexebb programok esetén érdemes szabályozni, hogy melyik kód legyen végrehajtva, milyen sorrendben, és hányszor. A program menetét a következő elvek alapján lehet irányítani: Egy másik rutin meghívása által, és a rutin végrehajtása után, folytatva a végrehajtást a rutin meghívást követő utasítással. Különböző utasítások végrehajtása által, attól függően, hogy teljesül-e egy adott kondíció. Egy utasítási szekvencia bizonyos számú ismétlése által, vagy egy adott feltétel teljesüléséig. Ugyanazon rutinon belül egy címkéhez történő mozgással. A program végrehajtásának leállításával. 1.1. Egy másik rutin meghívása Instruction
Used to: Meghív (ugrik) egy másik rutint (-hoz) Konkrét nevű meghívási folyamatok Visszalép az eredeti rutinhoz
ProcCall CallByVar RETURN 1.2. Program irányítás a rutinon belül Utasítás
Felhasználás: Egy utasítás végrehajtása csak ha teljesül a feltétel Egy sor különböző utasítás végrehajtása, ha teljesül a feltétel. Egy programszakasz ismétlése bizonyos alkalommal Egy sor különböző utasítás ismétlése amíg az adott feltétel teljesül Különböző utasítások végrehajtása a kifejezés értékétől függően Ugrás egy címkéhez Egy címke megadása (sor név)
Compact IF IF FOR WHILE TEST GOTO Label
30
www.huro-cbc.eu
Two countries, one goal, joint success!
IF Ha a logikai feltétel az IF állításban igaz, akkor a THEN és ENDIF kulcsszavak közti kódszakasz végrehajtódik. Ha az utasítás hamis, nem hajtódik verge a kód, és a végrehajtás az ENDIF után folytatódik. Példa: Ebben a példában a string1 karakterlánc a FlexPendantra íródik ha az nem egy üres karakterlánc. Ha a string1 üres, vagyis nem tartalmaz karaktereket, nem történik semmi. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ENDIF ELSE Egy IF állítás akkor is tartalmazhat végrehajtandó programkódot, ha a feltétel hamis. Ha az IF állításban található logikai feltétel igaz, akkor végrehajtódik a THEN és ELSE kulcsszavak közötti kód. Viszont ha a feltétel hamis, az ELSE és ENDIF közötti kód hajtódik végre. Példa: A string1 karakterlánc a FlexPendantra íródik, ha a string1 nem üres. Ha üres, akkor “A string üres” szöveg lesz kiírva. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ELSE TPWrite "The string is empty"; ENDIF ELSEIF Esetenként több mint két különböző programsorunk van. Ekkor az ELSEIF-et használhatjuk több alternative felállítására. Példa: Különböző szövegeket íratunk ki a változó idő értékétől függően. VAR numtime := 38.7; IF time < 40 THEN TPWrite "Part produced at fast rate"; ELSEIF time < 60 THEN TPWrite "Part produced at average rate"; ELSE TPWrite "Part produced at slow rate"; ENDIF FOR hurok A program menetének egy másfajta irányítására szolgál egy kódsor ismétlése. Példa: A következő kód ötször fogja kiírni azt, hogy “Hello”: FOR i FROM 1 TO 5 DO TPWrite "Hello"; ENDFOR WHILE hurok Egy kódsor ismétlését kombinálni lehet a kódsor feltételes végrehajtásával. A WHILE hurok segítségével a program addig ismétli a kódsor amíg igaz a feltétel. Példa: A következő programkód számokat fog összeadni (1+2+3+...) amíg az eredmény el nem éri a 100-at. 31
www.huro-cbc.eu
Two countries, one goal, joint success!
VAR numsum := 0; VAR numi := 0; WHILE sum <= 100 DO i := i + 1; sum := sum + i; ENDWHILE 1.3. Program végrehajtásának megállítása Utasítás Stop EXIT
Felhasználás: Program végrehajtásának megállítása Program végrehajtásának megállítása amikor nem megengedett a program újraindítása Program végrehajtásának ideiglenes megállítása hibajavítási céllal Program végrehajtásának megállítása és robot mozgatása
Break SystemStopAction
1.4. Jelenlegi ciklus megállítása Utasítás
Felhasználás: A jelenlegi ciklus megállítása, és a program mutatójának a fő rutin első utasításához való mozdítása. Ha a CONT végrehajtási módot kiválasztjuk, a végrehajtás a következő program ciklussal folytatódik.
ExitCycle
2. A szintaxis elemei Az utasítások és alprogramok leírása egyszerűsített és formális szintaxis segítségével történik. Ha a FlexPendant-ot programozásra használjuk, általában csak az egyszerűsített szintaxisra less szükség, mivel a robot automatikusan megbizonyosodik arról, hogy a helyes szintaxis legyen használva. Példa: TPWrite [String’:=’] <expression (IN) of string> [’\’Num’:=’ <expression (IN) of num> ] | [’\’Bool’:=’ <expression (IN) of bool> ] | [’\’Pos’:=’ <expression (IN) of pos> ] | [’\’Orient’:=’ <expression (IN) of orient> ]’;’
A [] szögletes zárójelek közti szöveg elhagyható. Az egymás kölcsönösen kizáró argumemntumokat, vagyis nem szerepelhetnek egyszerre az utasításban, | függőleges vonal választja el. Azok az argumentumok melyek akárhányszor ismétlődhetnek, kapcsos zárójelbe kerülnek { }. A szimbólumok amelyek a helyes szintaxist szolgálják, egyszerű idézjőjelbe tesszük ’ ’. Az argumentum adattípusa és más jellemzők < > jelek közé kerülnek. Részletesebb információt a rutin paraméterek leírásánál találhatunk. 32
www.huro-cbc.eu
Two countries, one goal, joint success!
A !-el kezdődő sorokat a robot controller nem értelmez. A kóddal kapcsolatos megjegyzések írására szolgál. 3. Utasítások Egy RAPID utasítás egy előre elkészített folyamatként működik. Egy utasítás meghívása olyan mint egy eljárás meghívás, amit argumentum értékek követnek. Az utasítások sorban hajtódnak verge, kivéve ha egy program folyamat utasítás, egy megszakítás, vagy egy hiba következtében a végrehajtás máshol folytatódik. A legtöbb utasítást egy pontosvessző zárja “;”. A címkék kettősponttal végződnek “:”. Az utasítások egy része tartalmazhat más utasításokat, és specifikus kulcsszavak zárják őket.. 4. Kifejezések Egy kifejezés meghatározza egy érték kiértékelését. Például a következő esetekben használható: egy hozzárendelési utasításban pl. a:=3*b/c; feltételkémt egy IF utasításban pl. IF a>=3 THEN ... argumentumként egy utasításban pl. WaitTimetime; argumentunként egy függvény meghívásnál pl. a:=Abs(3*b); 4.1. Aritmetikai kifejezések Egy számadat kiértékelésére szolgál.
1) Az eredmény ugyanazt a típust kapja mint az operandus. Ha az operandusnak van egy alias adat típusa, az eredmény kap egy alias “alap” típust (num vagy pos). 2) Integer műveletek, pl. 14 DIV 4=3, 14 MOD 4=2. (A nem-integer operandusok nem megengedettek.) 3) Megtartja az integer képviseletet amíg az operandusok és az eredmények az integer a num típus integer aldomain-jén belül maradnak.
33
www.huro-cbc.eu
Two countries, one goal, joint success!
4.2. Logikai kifejezések A logikai kifejezéseket logikai értékek kiértékelésére használjuk. (IGAZ/HAMIS).
1) Csak érték adattípusok. Az operandusoknak azonos típusaik kell legyenek. 4.3. String kifejezések Stringeken végzett műveleteknél alkalmazhatóak.
4.4. Adatok felhasználása kifejezésekben Egy teljes változó, perszisztens, vagy konstans része lehet egy kifejezésnek. Tömbök Egy tömbként deklarált változót, perszisztenst, vagy konstanst hozzá lehet rendelni a teljes tömbhöz vagy egy eleméhez. Példa:
VAR num row{3}; VAR num column{3}; VAR num value; . value := column{3}; row := column;
csak egy tömb-elem a tömb összes eleme
Rekordok Egy tömbként deklarált változót, perszisztenst, vagy konstanst hozzá lehet rendelni a teljes rekordhoz, vagy egy eleméhez. Egy rekord komponensre a komponens neve által lehet utalni. Példa: VAR pos home; VAR pos pos1; VAR num yvalue;
34
www.huro-cbc.eu
Two countries, one goal, joint success!
.. yvalue := home.y; pos1 := home;
the Y component only the whole position
4.5. Aggregátumok használata kifejezésekben Az aggregátumokat rekord vagy tömb értékeknél használjuk. Példa:
pos := [x, y, 2*x]; posarr := [[0, 0, 100], [0,0,z]];
rekord aggregátum helyzet tömb aggregátum helyzet
Meg kell lehessen határozni egy aggregátum adattípusát a környezetből. Példa:
VAR pospl; p1 :=[1, -100, 12];
aggregátum típus helyzet – p1 által meghatározott
IF [1, -100, 12] = [a,b,b,] THEN
nem megengedett, mivel egyik aggregátum adattípusát sem lehet meghatározni a környezetből.
4.6. Függvények meghívása kifejezésekben Egy függvény meghívása elindítja egy meghatározott függvény kiértékelését, és megkapja a függvény által visszaadott értéket. Példa: sin(szög) Egy függvénymeghívás argumentumai a meghívott függvény irányába (vagy irányából) történő adatátvitelre vannak felhasználva. Egy argumentum adattípusa meg kell egyezzen a megfelelő függvény parameter típusával. A kötelező argumentumokat vessző választ el az előző argumentumtől. A hivatalos parameter neveket nem kötelező leírni. Példa:
Polar(3.937, 0.785398) Polar(Dist:=3.937, Angle:=0.785398)
két kötelező argumentum ... a nevek leírásácal
5. Függvények A RAPID függvények hasonlítanak az utasításokra, azzak a különbséggel, hogy visszaadnak egy értéket, amit hozzá lehet rendelni egy változóhoz. 6. Változó típusok Három adattípus létezik: változók, persistent-ek és konstansok. Egy változó új értéket kaphat a program végrehajtás során. A persistentre tekinthetünk perszisztens változóként. Ez úgy valósul meg, hogy a persistent értékének frissítése a persistent deklarálási értékének frissítését okozza. A konstans statikus érték, amihez nem lehet új értéket rendelni. 6.1. Változók A változókat a VAR kulcsszóval deklaráljuk, a következő szintaxist követve: 35
www.huro-cbc.eu
Two countries, one goal, joint success!
VAR datatype identifier; Példa:
VAR num length; VAR string name; VAR bool finished; 6.2. Persistentek
A persistent változók alapjában véve megfelelnek a hagyományos változóknak, azzal a különbséggel, hogy emlékeznek a legutóbbi értékükre, akkor is ha a program újraindul. A persistenteket nem lehet a rutinon belül deklarálni, csak a modul szintjén. Persistenteket rendszer globálisként, taszk globálisként, vagy lokálisként lehet deklarálni. Példa:
PERS numglobalpers := 123; TASK PERS numtaskpers := 456; LOCAL PERS numlocalpers := 789; 6.3. Konstansok
A konstans, a változóhoz hasonlóan egy értéket tartalmaz, viszont ezt az értéket mindig a deklarációnál adjuk meg, és később nem lehet változtatni. Példa: CONST numpi := 3.141592654; CONST numgravity := 9.81; CONST string greating := "Hello" 7. Adatstruktúrák Sokfajta adattípust tartalmaz a RAPID program. Ezek közül három általános adattípusra fogunk koncentrálni: Adattípus
Leírás Numerikus adat, amely lehet integer, vagy decimális szám. Pl. 10 or 3.14159. Karakterlánc. Pl. "Ez egy string". Maximum 80 karaktert tartalmazhat. Logikai változó. Csak az IGAZ vagy HAMIS értékeket veheti fel.
Num String Bool
7.1. Adat hatásköre Leírja, milyen területen látható az adat. Egy adatdeklarálás opcionális helyi irányelve az adatot lokálisként (modulon belüli) osztályozza, ellenkező esetben az adat globális. A helyi irányelvet nem lehet a rutinon belül használni, csak a modul szintjén. Példa:
LOCAL VAR numlocal_variable; VAR numglobal_variable;
A rutinon kívül deklarált adatot program adatnak nevezzük. A következő hatáskör szabályok érvényesel a program adatokra:
36
www.huro-cbc.eu
Two countries, one goal, joint success!
Az előre meghatározott vagy globális program adatok hatásköre magában foglalhatja bármelyik modult. A lokális program adatok hatásköre tartalmazza a modult amiben elhelyezkedik. A hatáskörén belül a lokális program adatok elrejtik a velük azonos nevű globális adatot, vagy rutint (utasításokat és predefiniált rutinokat és adatokat is). A rutinon belül deklarált adatot rutin adatnak nevezzük. Megjegyezzük, hogy a rutin paramétereit is rutin adatként kezeljük. A következő hatásköri szabályok érvényesek a rutin adatokra: A rutin adatok hatásköre magában foglalja a rutint amelyben elhelyezkedik. A hatáskörén belül, a rutin adat elrejti az összes többi azonos nevű rutint vagy adatot. 7.2. Adat inicializálás Egy konstans vagy változó inicializációs értéke egy állandó kifejezés lehet. Egy persistent inicializációs értéke csak egy konkrét érték lehet Example: CONST numa := 2; CONST numb := 3; ! Helyes szintaxis CONST numab := a + b; VAR numa_b := a + b; PERS numa__b := 5; ! Hibás szintaxis PERS numa__b := a + b; 8. Program modulok Egy RAPID program egy vagy több modulból állhat. Mindegyik modul egy vagy több eljárást tartalmazhat. Egy program modul többfajta adatból és rutinból állhat. Az egyik modul tartalmazza a a bevezető eljárást, egy globális eljárást ami a main (fő) nevet viseli. A program végrehajtása nem más mint a main eljárás végrehajtása. A program számos modult tartalmazhat, de ezek közül csak egynek lesz main eljárása. 8.1 A modul felépítése A program rendszer és program modulokra bontható:
37
www.huro-cbc.eu
Two countries, one goal, joint success!
A modul deklaráció meghatározza a modul nevét és tulajdonságait. Ezeket a tulajdonságokat csak üzemen kívül lehet beállítani, nem a FlexPendant használatával. Néhány példa modul tulajdonságokra: Tulajdonság SYSMODULE
A modul, ha meg van adva: rendszer modul, máskülönben program modul nem lehet megadni a lépésenkénti végrehajtás közben nem lehet megváltoztatni nem lehet megváltoztatni, viszont a tulajdonságokat lehet törölni Nem lehet megtekinteni, csak végrehajtani. A grobális rutinok elérhetőek más modulokból, és mindig NOSTEPIN-ként hajtódnak verge. A globális adatokra vonatkozó jelenlegi értékek más modulokból, vagy a FlexPendant adat ablakból érhetők el. A NOVIEW csak üzemen kívül definiálható egy PC-ről.
NOSTEPIN VIEWONLY READONLY NOVIEW
Példa: MODULE module_name (SYSMODULE, VIEWONLY) !data type definition !data declarations !routine declarations ENDMODULE Egy modulnak nem feltétlenül ugyanaz a neve mint egy másik modulnak vagy globális rutinnak/adatnak.
38
www.huro-cbc.eu
Two countries, one goal, joint success!
8.2. Rendszer modulok A rendszer modulokat általános, rendszer-specifikus adatok és rutinok (pl. eszközök) definiálására használjuk. Nem szerepelnek a program mentésénél, ami azt jelenti, hogy bármilyen frissítése a rendszer modulnak befolyásolni fog minden, a jelenleg, vagy később a memóriába töltött programot. 8.3. Struktúra alrutinok Három fajta rutin (alprogram) létezik: eljárások (procedures), függvények (functions) és csapdák (traps). Az eljárások nem adnak vissza értéket, és az utasítások keretében használjuk őket. A függvények visszadnak egy bizonyos típusú értéket, és a kifejezések keretében használjuk őket. A csapda rutinok egy eszközt biztosít a megszakítások kezelésére. Egy csapda rutint hozzá lehet rendelni egy bizonyos megszakításhoz, és amikor bekövetkezik ez a megszakítás, automatikusan végrehajtódik. Trap routines provide a means of dealing with interrupts. A trap routine can be associated with a specific interrupt and then, if that particular interrupt occurs at a later stage, will automatically be executed. Egy csapda rutint nem lehet explicit módon meghívni a programból. 8.3.1. A rutin hatásköre Leírja, milyen területen látható a rutin. Egy rutindeklarálás opcionális helyi irányelve a rutin lokálisként (modulon belüli) osztályozza, ellenkező esetben a rutin globális. Példa:
LOCAL PROC local_routine (... PROC global_routine (...
A következő hatásköri szabályok érvényesek a rutinokra: Egy globális rutin hatásköréhez tartozhat bármilyen modul a taszkon belül Egy lokális rutin hatásköréhez tartozik a modul amiben elhelyezkedik. A hatáskörén belül, egy lokális rutin elrejt bármilyen azonos nevű. A hatásköréne belül, egy rutin elrejti az azonos nevű utasításokat, előre meghatározott rutinokat és adatokat. 8.3.2. Paraméterek Egy rutin deklaráció parameter listája meghatározza az argumentumokat (valós paramétereket) amelyek meg kell legyenek adva a rutin meghívásánal.. Négy típusú paraméter létezik (a hozzáférési módban): Alapesetben a parameter csak inputként van használva, és rutin változóként van kezelve. A változó megváltoztatása nem változtatja a megfelelő argumentumot. Az INOUT paraméter meghatározza, hogy egy megfelelő argumentum változó kell legyen (teljes, elem vagy komponens) vagy egy teljes persistent amelyet a rutin megváltoztathat. A VAR paraméter leszögezi, hogy egy megfelelő argumentum változó kell legyen (teljes, elem vagy komponens) amelyet a rutin megváltoztathat. 39
www.huro-cbc.eu
Two countries, one goal, joint success!
A PERS paraméter leszögezi, hogy egy megfelelő argumentum egy teljes persistent kell legyen amelyet a rutin megváltoztathat. Ha egy INOUT, VAR vagy PERS paraméter új értéket kap, azt jelenti, hogy az argumentum is új értéket kap, vagyis lehetővé teszi argumentumok használatát értékek visszaadására a meghívó rutinnak. Példa:
PROC routine1 (num in_par, INOUT num inout_par, VAR num var_par, PERS num pers_par)
A switch típust csak opcionális paraméterekhez lehet rendelni, és lehetővé teszi a switch argumentumok használatát (amelyek csak nevek, nem értékek határoznak meg). Egy switch paraméter nem kaphat értéket. Csak a jelenléte ellenőrzésével lehet használni a switch parameter, a present funkció segítségével. Példa:
PROC routine4 (\switch on | switch off) ... IF Present (off ) THEN ... ENDPROC 8.3.3. Rutin lezárása
Egy eljárás végrehajtása vagy explicit módon, a RETURN utasítás segítségével, vagy implicit módon ér véget, amikor eléri az eljárás végét (ENDPROC, BACKWARD, ERROR vagy UNDO). Egy függvény végrehaktásának a RETURN utasítással lehet véget vetni. 8.3.4. Rutin deklarálás Egy rutin tartalmazhatja a következőket: deklarálás (beleértve a paramétereket), adatok, törzs, visszafelé irányuló kezelő (csak eljárások), és hibakezelő. A rutin deklarációk nem lehetnek beágyazva, vagyis van lehetőség rutin deklarálására egy rutinon belül. Eljárás deklarálása Példa: Egy számtömb elemeinek szorzása egy számmal. PROC arrmul( VAR num array{*}, num factor) FOR index FROM 1 TO dim( array, 1 ) DO array{index} := array{index} * factor; ENDFOR ENDPROC Függvény deklarálás Példa: Egy vektor hosszának kiszámítása. FUNC num veclen (pos vector) RETURN Sqrt(Pow(vector.x,2)+Pow(vector.y,2)+Pow(vector.z,2)); ENDFUNC
40
www.huro-cbc.eu
Two countries, one goal, joint success!
Csapda deklarálása Példa: “Feeder empty” megszakításra való válasz. TRAP feeder_empty wait_feeder; RETURN; ENDTRAP 8.3.5. Eljárás meghívása Egy eljárás meghívásánál, az eljárás paramétereinek megfelelő argumentumokat használjuk: - Meg kell adni a kötelező paramétereket a helyes sorrendbenr. - Az opcionális paramétereket el lehet hagyni. - A feltételes argumentumokat fel lehet használni a paraméterek átviteléhez egyik rutinból a másikba.
41
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 3 Az ABB robotok alkalmazásai Tesztkérdések 1. A helyes szintaxis az eljárás definiálasához: a. PROC proc_name(parameters) … ENDPROC b. PROC identifier proc_name(parameters) … ENDPROC c. PROC proc_name … ENDPROC . 2. Az “IF” utasítás helyes szintaxisa: a. VAR string string1 := "Hello"; IF string1 <> "" TPWrite string1; ENDIF b. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; END c. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ENDIF 3. Az if kifejezés lezárása: a. END; b. ENDIF; c. QUIT. 4. Az “ELSE” kifejezés helyes használata a. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ELSE TPWrite "The string is empty"; ENDIF 42
www.huro-cbc.eu
Two countries, one goal, joint success!
b. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ELSE string1 = "" THEN TPWrite "The string is empty"; ENDIF
c. VAR string string1 := "Hello"; IF string1 <> "" THEN TPWrite string1; ELSE ENDIF 5. A “FOR” kifejezés helyes használata: a. FOR i FROM 1 TO 5 DO TPWrite "Hello"; END b. FOR i FROM 1 TO 5 TPWrite "Hello"; ENDFOR c. FOR i FROM 1 TO 5 DO TPWrite "Hello"; ENDFOR
6. While a. VAR num sum := 0; VAR num i := 0; WHILE sum <= 100 i := i + 1; sum := sum + i; ENDWHILE b. VAR num sum := 0; VAR num i := 0; WHILE sum <= 100 DO i := i + 1; sum := sum + i; ENDWHILE c. 43
www.huro-cbc.eu
Two countries, one goal, joint success!
VAR num sum := 0; VAR num i := 0; WHILE sum >= 100 DO i := i + 1; sum := sum + i; ENDWHILE 7. Go to a. GOTO variable_name b. GOTO line_number c.. GOTO label 8. A program futásának hibajavítás céljával történő ideiglenes leállítása: a. EXIT; b. BREAK; c. ENDPROGRAM.
9. A jelenlegi ciklus leállítása, és a mutató első parancshoz (a főprogramban) történő mozgatása: a. ExitCycle; b. EndCycle; c. StopCycle. 10. A helyes hozzárendelés: a. a := 3*b/c b. a == 3*b/c; c. a = 3*b/c. 11. Integer osztása a következő paranccsal történik: a. /; b. DIV; c. MOD.
12. “Nem egyenlő” definíciója: a. <> ; b. !=; c. .NOT=. 13. Stringek összefűzése: a. string1 + string2 b. string1 AND string2 c. string1 & string2. 14. Tömb (array) helyes megadása a. VAR num row{3}; VAR num column{3}; 44
www.huro-cbc.eu
Two countries, one goal, joint success!
VAR num value; . value := column{3}; row := column; b. VAR num row[3]; VAR num column[3]; VAR num value; . value := column[3]; row := column; c. VAR num row(3); VAR num column(3); VAR num value; . value := column(3); row := column; 15. Rekord helyes megadása a. VAR pos home; VAR pos pos1; VAR num yvalue; .. yvalue := home.y; pos1 := home; b. VAR pos home; VAR pos pos1; VAR num yvalue; .. yvalue := home.y; pos1 := home; c. . VAR pos home; VAR pos pos1; VAR num yvalue; .. yvalue := home.y; pos1 := home; 16. Függvény a. Egy RAPID függvény hasonlít egy parancsra, viszont egy string értéket ad vissza; b. Egy RAPID függvény hasonlít egy parancsra, viszont egy numerikus értéket ad vissza; c. Egy RAPID függvény hasonlít egy parancsra, viszont egy értéket ad vissza.
45
www.huro-cbc.eu
Two countries, one goal, joint success!
17. Egy változót a VAR kulcsszóval deklarálunk, a következő szintaxis szerint: a. VAR datatype identifier ; b. VAR parameter identifier ; c. VAR datatype value. 18. Egy “persistent” változó… a. Emlékszik az utolsó megadott értékére, akkor is ha a programot megállítjuk, és újraindítjuk; b. Csak akkor emlékszik az utolsó megadott értékére, ha a programot megállítjuk és újraindítjuk; c. Évényes az összes program modulban; 19. Egy konstans… a. Csak numerikus értékeket tartalmaz; b. Ugyanúgy mint egy változó, egy értéket tartalmaz, azzal a különbséggel, hogy ez az értéket csak a deklarálásnál lehet hozzárendelni, ami után nem lehet megváltoztatni; c. Egy string értéket tartalmaz. 20. Adatok megadása: a. ; CONST numa := 2; CONST numb := 3; PERS numa__b := 5; b. ; CONST numa := 2; CONST numb := 3; PERS numa__b := a + b;
46
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 3 Az ABB robotok alkalmazásai Mérés menete 1. Rendszer leírás -
Programozási nyelv – RAPID az ABB robotoknál. Programozási mód – ASCI fájl átvitel a laboratóriumi felület segítségével. Programozási feladat – A TCP (Tool Center Point) mozgatása egy előre meghatározott útvonalon.
Fig.1. A rendszer felépítése.
2. Működési Mód A laboratóriumi gyakorlat lépései: a. A diák tanulmányozza a RAPID nyelv utasításait és funkcióit b. Kiválasztjuk az egyik útvonal típust, vagy javaslunk egy új útvonal feladatot c. A program fejlesztése d. A fájl elküldése interneten keresztül e. A kezelő elvégzi a biztonsági ellenőrzéseket, betölti a programot az IRC5 kontrollerbe és végrehajtja a programot f. A diák figyelemmel követi a program végrehajtását egy videókamera segítségével g. Sikeres végrehajtás esetén a feladat véget ért h. Ha hibák lépnek fel, a diák megpróbálhatja kijavítani a programot két vagy több alkalommal i. A feladat végrehajtási idejének túllépése esetén, a diák egy másik alkalommal kell megismételje a feladatot j. A diák pontszámát a következők alapján határozzuk meg: szintaxis, logika, és a számolt útvonal pontjainak értéke A következő ábrák bemutatják, hogyan lehet elérni a laboratórium felületet.
47
www.huro-cbc.eu
Two countries, one goal, joint success!
Fig.2. A várakozó programok állapota
Fig.3. Felhasználó bejelentkezése
Fig.4. Jelszó megváltoztatása
Fig.5. A bejelentkezett felhasználó által regisztrált programok 48
www.huro-cbc.eu
Two countries, one goal, joint success!
Fig.6. Program regisztrálása
Fig.7. Regisztrált program szerkesztése
49
www.huro-cbc.eu
Two countries, one goal, joint success!
Fig.8. A felhasználó megtekintheti a program végrehajtását a videó ablakban.
3. Biztonsági kérdések A labor feladatok végrehajtása során jelen kell legyen a robot kezelő (felügyelő). A felhasználó vele fog kommunikálni. 4. További utasítások. a. Minden információ olvasható és módosíthatóközvetlenül egy normál szövegszerkesztővel. A robot a RAPID programokat TXT formátumban (ASCII) tárolja, és képes a DOS és UNIX szövegformátumok kezelésére is. Ha egy szövegszerkeszőt használunk a programok szerkesztésére, ezeket TXT formátumba mentsük. b. A szintaxis hibák kockázatának minimalizálása érdekében (hibás programok), egy mintát használjunk. A minta egy korábban létrehozott program, amely a robot vagy QuickTeach segítségével készült. Ezeket a programokat közvetlenül, konvertálás nélkül képes a szövegszerkesztő beolvasni. 5.
Szintaxis ellenőrzési módszerek
A szintaxis ellenőrzést a robot kezelője fogja végrehajtani, miután megkapta a program fájlt. A következő műveleteket fogja végrehajtani: a. A fájl betöltése a robot kontrollerbe, majd megnyitása.. PGMCPL1.LOG hibaüzenet fájl. b. A fájl megnyitása QuickTeach vagy ProgramMaker-ben. c. Egy PC-s RAPID szintaxis ellenőrző program használata. 50
www.huro-cbc.eu
Two countries, one goal, joint success!
A program ellenőrzés után, ha nem talált hibát, a programot végrehajtja a robot. Ha talál hibákat, a felhsználó hibaüzeneteket kap. 6. Mintaprogram PERS tooldata tPen:= ... CONST robtarget p10:= ... PROC main() ! Call the procedure draw_square draw_square 100; draw_square 200; draw_square 300; draw_square 400; ENDPROC PROC draw_square(num side_size) VAR robtarget p20; VAR robtarget p30; VAR robtarget p40; ! p20 is set to p10 with an offset ! on the y value p20 := Offs(p10, 0, side_size, 0); p30 := Offs(p10, side_size, side_size, 0); p40 := Offs(p10, side_size, 0, 0); MoveL p10, v200, fine, tPen; MoveL p20, v200, fine, tPen; MoveL p30, v200, fine, tPen; MoveL p40, v200, fine, tPen; MoveL p10, v200, fine, tPen; ENDPROC 7. A felhasználó feladata. A felhasználó megváltoztatja a mintát, az egyik feladat végrehajtásával: a. Használjon “FOR” ciklust az eljárás meghívása helyett. b. Használjon “IF ELSE” kifejezést a négy téglalap közül kettő rajzolásánál, egy a program elején definiált változó tesztelése alapján. c. Használjon egy “WHILE” ciklust az eljárás meghívása helyett. d. Téglalapok helyett rajzoljon trapezoid formákat. Megjegyzés: A program megírása előtt, készítsen rajzot, számítsa ki a koordinátákat, és ellenőrízze érvényességüket.
51
www.huro-cbc.eu
Two countries, one goal, joint success!
E- Laboratórium 3 Az ABB robotok alkalmazásai Mérési jegyzőkönyv A laborgyakorlat során a következő feladatokat hajtjuk végre: 1. A robot TCP útvonalának meghatározása.
2. Az útvonal karakterisztikus pontjainak kiszámítása. No. 1 2 3 4 5 6 7 8 9 10 11 12 13
Point P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12
X 0 100 100 0 200 200 0 300 300 0 400 400 0
Y 0 0 100 100 0 200 200 0 300 300 0 400 400
3. A RAPID program megírása. PERS tooldata tPen:= ... CONST robtarget p10:= ... PROC main() ! Call the procedure draw_square draw_square 100; draw_square 200; draw_square 300; draw_square 400; ENDPROC 52
www.huro-cbc.eu
Two countries, one goal, joint success!
PROC draw_square(num side_size) VAR robtarget p20; VAR robtarget p30; VAR robtarget p40; ! p20 is set to p10 with an offset ! on the y value p20 := Offs(p10, 0, side_size, 0); p30 := Offs(p10, side_size, side_size, 0); p40 := Offs(p10, side_size, 0, 0); MoveL p10, v200, fine, tPen; MoveL p20, v200, fine, tPen; MoveL p30, v200, fine, tPen; MoveL p40, v200, fine, tPen; MoveL p10, v200, fine, tPen; ENDPROC 4. A program feltöltése a web felületre. 5. A program elvi és szintaktikai ellenőrzése. 6. A program végrehajtása, és annak megfigyelése videokamera segítségével. Diák neve: ………………… Kar: …………………………… Szakosodás: ……………………….. Év: ……
53
www.huro-cbc.eu
NAGYVÁRADI EGYETEM Oradea, Str. Universităţii nr. 1 Tel. 0040 259 408 204 www.uoradea.ro
Jelen anyag tartalma nem feltétlenül tükrözi az Európai Unió hivatalos álláspontját.
www.huro-cbc.eu