Miskolci Egyetem Elektronikai és Elektrotechnikai Tanszéki Intézet
LabView kezdő lépések
Készítette Dr. Füvesi Viktor
2014. november
Labview kezdő lépések
Füvesi Viktor
Tartalomjegyzék Tartalomjegyzék ...................................................................................................................................... 2 Előszó....................................................................................................................................................... 3 1.
Rövid bevezetés............................................................................................................................... 3
2.
Program felépítése .......................................................................................................................... 3
3.
Ablakok ikonsora ............................................................................................................................. 5
4.
Változótípusok ................................................................................................................................. 6
5.
Struktúrák ........................................................................................................................................ 8
6.
5.1.
While ciklus.............................................................................................................................. 8
5.2.
For ciklus .................................................................................................................................. 8
5.3.
Case struktúra.......................................................................................................................... 9
5.4.
Szekvenciális struktúrák ........................................................................................................ 10
5.5.
Képlet megadás Formula Node-val ....................................................................................... 11
Tippek, trükkök .............................................................................................................................. 13
-2-
Labview kezdő lépések
Füvesi Viktor
Előszó Ezzel a segédlettel a LabVIEW-val ismerkedőknek és újrakezdőknek kívánok segíteni. A teljesség igénye nélkül szeretném bemutatni a program legfontosabb elemeit, struktúráit. A bemutatott alapelemekhez szemléletes példákat hozok, melyek segíthetik az olvasót a megértésben és az alapok elsajátításában. A segédletben törekedtem a gyakorlatiasságra és a feladatközpontúságra. A bemutatott programok LabVIEW 2010-ben készültek.
1. Rövid bevezetés A Labview egy grafikus programcsomag, amely alapvetően mérési és vezérlési feladatokat megvalósító programok elkészítéséhez nyújt segítséget. Ebből az alapgondolatból származik a LabVIEW-ban használt „.vi” kiterjesztés is, ami a Virtual Instrumentation rövidítése, vagy más néven VI (ejsd: víáj). Fejlesztői környezet fejlődésével, számos plusz funkcióval egészült ki a programcsomag palettája. Már a 2010-es kiadás is rendelkezik új eszköztárakkal, amelyek szimulációs (pl.: Simulation Toolbox) és fejlettebb vezérlési (pl.: Fuzzy Toolbox) feladatok elvégzését is lehetővé teszik.
2. Program felépítése A programkörnyezet felépítése az 1. ábrán látható. Egy új VI megnyitásakor két ablakot kapunk. Az első ablak, amelyiknek szürke háttere van, a panel (Front Panel), amely a felhasználói felületet tartalmazza (1. ábra/1). Indítható állomány készítése esetén ez a felület fogja várni a felhasználót. Itt lehet azokat a felhasználói elemeket megadni, amelyekkel a felhasználó vezérelheti a programot. Vezérlő elemek, gombok, kapcsolók, legördülő menü, kijelzők vagy akár grafikonok is kerülhetnek ide. A másik, alapállapotban megjelenő, ablak a Blokk diagram (1. ábra/2) ablaka (Block Diagram). Ebben az ablakban lehet magát a programkódot megírni, amihez struktúrákat és korábban létrehozott panel elemek változóit használhatjuk fel. Több eszköztár áll a felhasználó rendelkezésére, amivel programkörnyezet hatékonyabbá tesz a programozást.
-3-
Labview kezdő lépések
Füvesi Viktor
4 1
3
5 2
1. ábra: LabVIEW környezet ablakai és eszköztárai Jobb egérgombra kattintva a panelon vagy diagramon egy-egy eszköztár jön fel, ami tartalmazza a specifikusan lerakható elemeket (1. ábra/3). A panel vezérlőket (Controls), diagram funkciókat (Functions) tartalmazza. Ezekre mutat példát a 2. ábra.
2. ábra: Helyi a menü a panelon – Controls (bal) és a diagramon – Functions (jobb) Az eszköztárakból lerakott elemekkel történő manipulációhoz (pl.: mozgatás, átméretezés, szöveg beírás) illetve a lepakolt elemek összekötéséhez nyújt segítséget az Eszközök paletta (Tools), ami az 1. ábra 4. jelzését kapta. Az eszköztár bármelyik ikonjára kattintva a kurzor megváltozik, más-más funkciót hozhatunk elő az új kurzorral. Az Eszközök paletta és a palettát tartalmazó ikonok részletesen a 3. ábrán láthatók.
3. ábra: Eszközök paletta
-4-
Labview kezdő lépések
Füvesi Viktor
Az egyes palettaelemek funkciói a 3. ábra jelöléseinek felhasználásával a következők: 1: bekapcsolt állapotban automatikusan választ a lenti funkciók közül 2: lerakott vezérlőelem állapotát lehet megváltoztatni (pl.: nyomógomb állapota) 3: objektumok mozgatásának lehetőségét biztosítja 4: szöveget módosító elem 5: összekötő eszköz 6: az objektumhoz tartozó helyi menüt lehet vele előhozni 7: ablak területét lehet mozgatni 8: ennek segítségével helyezhető el megszakítási pont a programban 9: elem értéket lehet benne nyomon követni 10: színeket lehet a felhasználói kiszedni 11: az objektum színeinek átállítását teszi lehetővé A programozás során számos VI-t használhatunk, amelyek különféle típusú bemeneti vezérlőket és konstansokat illetve kimeneti indikátorokat és más működésükhöz szükséges jelvezetéket igényelnek. A Ctrl+h megnyomására megjelenik egy kisebb ablak (1. ábra/5), amely a kurzor alatt lévő VI rövid leírását illetve a be- és kimeneteinek megnevezését tartalmazza, ezzel felgyorsítva a programkód elkészültét.
3. Ablakok ikonsora A Panel és a Diagram ablak ikonsoraiban számos ikon megegyezik, de vannak specifikus ikonok is. A következőkben a 4. ábra jelöléseit felhasználva az ikonok legfontosabb funkcióit veszem sorra.
4. ábra: Ikonsor a Panelon (fent) és a Diagramon (lent) 1: programkód egyszeri futtatása 2: folyamatos futtatás 3: leállítás ikon
-5-
Labview kezdő lépések
Füvesi Viktor
4: felfüggesztés ikon 5: használt betűtípus beállítása 6: ikonok egymáshoz rendezése 7: ikonok egyenletes elrendezése 8: ikonok átméretezése 9: Panelra kirakott vezérlőelemek fedési sorrendjének módosítása 10: adatok vándorlásának követése 11: változó értékék figyelése hibakereséskor 12: lépésenkénti futtatás (belép a VI-ba) 13: lépésenkénti futtatás úgy, hogy belép a hierarchiában alacsonyabban lévő VI-ba is 14: kilépés a subVI-ból 15: diagram ikonjainak automatikus elrendezése
4. Változótípusok A LabView számos változótípust használ. A felkínált lehetőségek között szerepel boolean (zöld), előjeles és előjel nélküli egész (kék), valós (sárga) illetve fix pontos (lila) változó. De szöveg (string) (rózsaszín) illetve jelsorozat (waveform data type) típusok valamint komplex számok is fellelhetők a kínálatban. Ezen változók használatára mutat egy-egy gyors példát az 5. ábra.
5. ábra: Változótípusok használata a panelon és diagramon -6-
Labview kezdő lépések
Füvesi Viktor
Az egyszerűbb adattípusok tömbbe és mátrixba is rendezhetők, de van lehetőség egyedi összetett adatosztály, rekord (claster) létrehozására is.
6. ábra: Numerikus vezérlő elem változótípusának beállítás a helyi menüben A létrehozott objektum változójának típusa (Representation) a vezérlő elem helyi menüjének Representation menüpontjában állítható át vagy Properties/Data Type fülön is elérhető. Ezek a lehetőségeket mutatja a 6. ábra. Lehet állítani a változó nagyságát, vagyis hány byte-on tárolja a változó az értéket. Kétállapotú, boolean vezérlő esetén a helyi menüben elérhető a nyomógomb működésének alapfunkciói, vagyis a lenyomáskor hogyan viselkedjen a kapcsoló. Hat lehetőség ál a felhasználó előtt: 1. 2. 3. 4. 5. 6.
Switch when pressed – Megnyomásra kapcsol és bekapcsolva marad Switch when released – Elengedésre kapcsol és bekapcsolva marad Switch until released – Bekapcsolva marad, amíg a gombot lenyomva tartjuk Latch when pressed – Lenyomás után impulzusszerű értékváltozást valósít meg Latch when released – Felengedés utáni hoz létre impulzust Latch until released – Lenyomástól a felengedés utánig reteszelve marad
A hat eset beállításhoz szükséges ikon jelölések a 7. ábrán láthatók.
7. ábra: Nyomógomb mechanikai viselkedésének beállítása
-7-
Labview kezdő lépések
Füvesi Viktor
5. Struktúrák A LabVIEW több, a C programozási környezetből megismert ciklus típus grafikus megfelelőjével rendelkezik. Ezeket kiegészítve a saját egyedi grafikus elemeikkel egy igen bő és hatékony eszköztár áll a felhasználó rendelkezésére, ahhoz hogy programját elkészítse. Ezekből fogok a következőkben példák kapcsán bemutatni párat a teljesség igénye nélkül.
5.1.
While ciklus
A while ciklus addig fut, amég a benne megadott feltétel teljesül. A ciklusváltozó szintén elérhető és felhasználható. Feladat: Készítsen olyan programot, amely a stop gomb hatására leáll, valamint másodpercenként lépteti a ciklusváltozót és megjeleníti azt. Legyen látható az időzítő értéke is. Megoldás:
Készítsen While ciklust a Diagramon. Jobb klikk a Diagram ablakon majd Functions/Programming/Structures/While Loop Iterációs változó kijelzéséhez hozzon létre egy indikátort. Iterációs változó ikonjára kattintva jobb gombbal, majd Create Indikator. Hozzon létre Wait ikont: Functions/Programming/Timing/Wait (ms) Hozzon létre osztás ikont: Functions/Programming/Numeric/Divide Wait ikon bementén: jobb klikk/Create/Constant Divide ikon: y bemenetén jobb klikk/Create/Constant Divide ikon: x/y kimenetén jobb klikk/Create/Indicator Vezetékelje össze az elem a 8. ábra szerint.
8. ábra: While ciklust bemutató program Panelja és a Diagramja
5.2.
For ciklus
Megadott számú alkalommal futtatja le a ciklust és benne található kódot. Megadható a ciklusok száma és kiolvasható az iterációs változóból. Az iterációs változó 0-tól számol a megadott érték mínusz egyig. -8-
Labview kezdő lépések
Füvesi Viktor
Feladat: Készítsen programot, amely 0-tól 4-ig számol és a számokat megjeleníti. A számok billenése másodpercenként történjen.
Megoldás: For ciklus képezi a program alapját. Az iterátor maximális értéke 5, hogy 0-tól 4-ig számoljon a program. Magát az iterációs változót megkapjuk struktúra megfelelő ikonjából, amit egy indikátoron meg tudunk jeleníteni. Az időzítés eléréshez egy Programming/Timing/Wait (ms) VI megfelelő lehet.
9. ábra: For ciklust bemutató program panelja és a diagramja
5.3.
Case struktúra
A struktúra C nyelvben megismert IF … ELSE IF …. ELSE struktúra helyett áll. A keretben megadott feltétel teljesülése esetén az adott feltételhez tartozó programrészlet fog lefutni.
Feladat Készítsen programot, amely véletlen számokat generál és jelenít meg az idő függvényében. A program stop gomb hatására álljon le, és minden 100. ms-ban frissítse a Chart grafikont, amely a számok megjelenítésére szolgál. Öt különféle tartományon, a tartomány határainak megfelelően generáljon véletlen számokat a program. A határok a következők legyenek: 0-100; 100-200; 300-500; 500-800; 800-1000. Csak ezeket a tartományokat legyen lehetőség kiválasztani a kezelő felületen.
Megoldás: Ahhoz, hogy keretet adjunk a programunknak egy While ciklus kerülhet legkívülre. Az időzítést egy a korábbiakban még nem használt, időzítést megvalósító VI kerül felhasználásra ez pedig a Wait until. A Case struktúra vezérlője lehet egy Enum változó, ami a legördülő menüben tartalmazza a megadott tartományokat. A programkódban pedig az egyes lehetőségekhez, a kívánt tartományban szükséges véletlenszám előállítását kell megvalósítani. Célszerű a véletlen szám generátort és a grafikont a Case cikluson kívül elhelyezni. (11. ábra) -9-
Labview kezdő lépések
Füvesi Viktor
10. ábra: Case ciklust bemutató program panelja
11. ábra: Case ciklust bemutató program diagramja
5.4.
Szekvenciális struktúrák
Két szekvenciális struktúra van, ez egyik a Flat Sequence Structure, a másik a Stacked Sequence Structure. A szekvenciális struktúrák segítségével sorrendiséget lehet adni a programunkat felépítő elemeknek. Balról jobbra történik a végrehajtása, a bal oldali struktúrában lévő elemek fognak végrehajtódni, majd a tőle jobbra lévő. - 10 -
Labview kezdő lépések
Füvesi Viktor
Feladat: Készítsen programot, amelyben egy nyomógomb hatására 15 alkalommal felvillan egy LED lámpa. A lámpa villogása úgy történjen, hogy 500 ms-ig világít az eszköz és 250 ms-ig pedig sötét.
Megoldás: While ciklus egy gombnyomásos indítást tesz lehetővé és nincs szükség folyamatos futtatásra. Case struktúra biztosítja a gombnyomás hatására történő indulást. A For ciklus a villogás darabszámáért felelős. Szekvenciális struktúrán belül az időzítést és a LED lámpa értékadása feladatokat kell megvalósítani.
12. ábra: Szekvenciális futtatást biztosító ciklus használatát bemutató program panelja
13. ábra: Szekvenciális futtatást biztosító ciklus használatát bemutató program diagramja
5.5.
Képlet megadás Formula Node-val
A Formula Node segítségével lehetőség van C programozási nyelvhez hasonló módon, karakteresen megadni egyenleteket és illetve feltételrendszereket. A keret szélére kattintva, a helyi menüben megtalálható a bementi és kimeneti változók megadásának lehetősége.
- 11 -
Labview kezdő lépések
Füvesi Viktor
A keretben hivatkozott új változókat deklarálni kell. Rokon programozási környezetben megismert egyszerűbb matematikai függvényeket is van lehetőség használni pl.: sin, cos, exp, log. A sorokat ;-vel kell zárni.
Feladat: Rajzolja ki a y = A*x2+C egyenletet 0-15 intervallumon. Az x pontok száma legyen beállítható a programban. Az A változó 2 … 10, illetve a C 3 … 6 intervallumokból kikerülő véletlen számok. Egy gomb hatására történjen a számok generálása. Legyen lehetőség a mentésre és betöltésre is.
Megoldás: Külső nagy While ciklussal az egy gombnyomásos leállítást tudjuk megvalósítani. Egy Case struktúrába, amit egy Latch when released beállított gomb vezérel. A használt For ciklus a pontok számáért felelős, aminek a ciklusváltozóját felhasználjuk a Formula Node-ban is. A kimeneti y változót a kereten belül deklarálni kell, hogy a program le tudja kezelni. A kimeneti változó közvetlenül a Chart-ra adható. Mentés és betöltés egy-egy Case struktúrában kaptak helyet. Mindkettő vezérlője impulzusszerű működést megvalósító nyomógomb. A gombokra történő kattintás utána a feljön egy ablak, ami a felhasználandó állomány nevének megadását kéri. Mentéskor a vezeték dzsungel elkerülés érdekében használható a Chart grafikon helyi változója (Local Variable), vagy éppen Property Node/ Value ikon.
14. ábra: Formula Node használatát bemutató program Panelja
- 12 -
Labview kezdő lépések
Füvesi Viktor
15. ábra: Formula Node használatát bemutató program Diagramja
6. Tippek, trükkök Ebben a rövid fejezetben sorra veszek pár billentyűparancsot és módszert, amivel a programunk elkészítéséhez szükséges idő lerövidíthető.
Ctrl + t: panel és a diagram függőleges vagy vízszintes elrendezését valósítja meg Ctrl + b: a diagramon található összes törött vezetékek letörlése lehetséges ezzel a paranccsal Ctrl + ikon húzása: másik példány hozható létre a húzott VI-ból helyi menü + Create: létre hozhatunk a VI kapcsolási pontjának megfelelő állandó (constans), vezérlő vagy indikátor elemet helyi menü + Remove … : egy külső struktúra törölhető le, úgy hogy a benn lévő programkód megmarad
- 13 -