LabVIEW mérési jegyzőkönyv Mérést végezte: Farkas Viktória, Csutak Balázs Mérés helye és ideje: PPKE-ITK 320-as terem, 2016. február 15. (1-3 feladatok) PPKE-ITK 320-as terem, 2016. május 9. (4-6 feladatok) A mérés célja: Ismerkedés a Labview programmal és a egyszerű periodikus jelek (szinuszosan váltakozó áram) feldolgozásával. Alkalmazott mérőeszköz: National Instruments LabView 2015 Mérőeszköz adatai: 1 A LabView egy virtuális műszerek kialakítására alkalmas programcsomag, mellyel számos laboratóriumi mérés modellezhető. Segítségével könnyedén létrehozhatunk bármilyen programozásban használatos struktúrát, legyen az elágazás, ciklus, gomb, kijelző, vagy diagramm. A LabvView programok készítése főként két grafikus felület használatával lehetséges, ezek a Front Panel (előlap, itt kapnak helyet a különböző kijelzők és vezérlő szerkezetek) és a Block Diagram, ahol a Front Panel elemeinek működését állíthatjuk be. Feladatok: 1. Sebesség átalakítás Körülmények: első lépésként létrehozzuk a Front Panelen a szükséges elemeket: egy kapcsolót, LED-et, egy numerikus kijelzőt és egy Numeric Control elemet. Ezután ezeket összekötöttük a Block Diagram panelen a következőképpen: a kapcsoló kimenetét a LED bemenetére kötöttük, a Numeric Control kimenetét átvezettük egy szorzás műveleten (konstans 3.6-al), majd rákapcsoltuk a kijelzőre. Eredmény: a kapcsolót bekapcsolva a LED lámpa felgyulladt, kikapcsolva pedig elaludt. A m/s jelzésű mezőbe beírva a m/s-ról átváltandó mennyiséget, a fenti kijelzőn megjelent a sebesség értéke km/h mértékegységben. Magyarázat: a kapcsoló kimenete egy boolean típusú érték, amely közvetlenül kapcsolható a LED kijelző bemenetére. A LED igaz érték esetén gyúl fel. A két mértékegység közti váltószám 3.6, hiszen 1m/s = 3600m/3600s = 3600m/h=3.6km/h 1 http://www.ni.com/labview/ (Hozzáférés 2016. május 10.)
2. Feltételes sebesség átalakítás Körülmények: Módosítjuk az előző feladatban összeállított rendszert, úgy, hogy az átváltás alprogram (subvi) végezze. Az alprogram be- és kimenete is egy-egy valós szám. Emellett létrehozunk egy case struktúrát, melyet a kapcsolóval összekötve a feladatnak megfelelően módosítjuk a program futását. Eredmény: a kapcsoló bekapcsolt állapotában nem történik átváltás, a kijelzőn a bevitt érték jelenik meg (m/s-ban). A kapcsolót kikapcsolva a LED kialszik, az órán pedig km/h-ban jelenik meg a sebesség. Magyarázat: A case struktúra hamis ágába helyeztük az átváltást végző alprogramot, a true ágban köztvetlenül kötöttük össze a kijelzőt és a Numeric Controlt. Így csak a kapcsoló hamis állásában történik átváltás. Ugyancsak a case struktúrába helyezett szövegdoboz határozza meg a kiírt mértékegységet.
3. Dobókocka Körülmények: Ismét a Front Panel elkészítésével kezdjük: egy kapcsolóra, egy LED-re és egy kijelzőre van szükségünk. A kapcsolót Latch when pressed módra állítjuk, hiszen a kapcsoló megnyomásakor egyetlen kockadobást várunk. Ezután a Block Diagramban is létrehozzuk a szükséges elemeket, először egy véletlenszámgenerátort, amelyik a [0,1) intervallumból ad értéket, egyenletes eloszlással. Ezt a számot megfelelő aritmetikai műveletekkel előbb az [1,7) intervallumba, majd kerekítéssel az {1,2,3,4,5,6} halmazba képezzük, vigyázva, hogy az egyes értékek azonos valószínűséggel szerepeljenek. A kimenetet egy Equal? szerkezettel összekötve ellenőrizzük, hogy hatost dobtunk-e, az összehasonlítás eredményét a LED-hez csatoljuk. A kockadobás kimenetét a kijelzőhöz is csatlakoztatjuk. Végül a generátort, a számoláshoz szükséges struktúrákat, a LED-et és a kijelzőt is egy elágazásba true ágába tesszük, a kapcsolót rákötve az elágazás bemenetére. Ezzel biztosítjuk, hogy csak egyetlen kockadobás történjen. Eredmény: A gombot megnyomva a program generál egy 1-6 közötti egész számot,ami megjelenik a kijelzőn. Ha a kockával dobott szám 6-os, kigyullad egy zöld LED. Magyarázat: A kapcsoló megnyomva annak boolean típusú kimenete egyetlen futtatás idejére igazzá válik, így a program belép az elágazás igaz részébe. A generált r véletlenszámból a dobás értékét a dobás=[6r + 1] képlettel számoljuk (ahol az [x] jelölés az x szám alsó egészrészét jelenti). Az átalakítás után egy egész számot kapunk az [1,6]-ból, ezt közvetlenül kapcsoljuk a kijelző bemenetére. Az Equal struktúra egyik bemenetére a kapott számot, a másikra a 6 konstanst kapcsoltuk, így ennek kimenete egy boolean típusú érték (true, ha a dobás hatos), ezt ismét közvetlenül kapcsolhattuk a LED bemenetére.
4. Futási sebesség Körülmények: A Front Panelen megtartjuk a 2. feladatban szereplő eszközöket, kiegészítve két numerikus kijelzővel, amelyek a teljes futásidőt illetve az egy átalakításhoz szükséges időt mutatják. Ezután módosítjuk a Block Diagramot is. A kapcsoló és a LED vezetékeit első lépésként töröljük. A LabVIEW help részében találtak alapján a feladat megoldásához egy Flat sequence struktúrát használunk, mely három részből áll: az első és harmadik részben egy Tick Count elem kap helyet, a középsőben egy for ciklus, melynek magja tízmillió alkalommal fut le. A ciklusmagba helyezzük a mérni kívánt, átalakításhoz használt SubVI-t és a működéséhez szükséges kijelzőt és numeric controlt. A mért időt (a két tick count különbségét - magyarázat lennebb) közvetlenül az egyik kijelzőhöz kapcsoljuk. Ezután a futásidőt elosztjuk a ciklus futásainak számával (tízmillióval), az így kapott adatot a másik kijelző bemenetéhez vezetjük. Mivel ez nanomásodperces nagyságrendű adat, átalakítjuk a mértékegységet (egy 10 6 konstans szorzó beiktatásával).végül az egész eddig leírt részt belehelyezzük egy case struktúra true ágába, a bemenethez pedig a kapcsoló kimenetét kötjük. A Front Panelen a kapcsoló típusát Latch when pressed-re állítjuk (visszaugró gomb). A LED-et a kapcsoló kimenetéhez kötjük. Eredmény: A gombot megnyomva felgyullad egy kék LED, amelyik égve marad a mérés során. Amint a számítógép elvégezte a mérést (lefuttatta a for ciklust), a kijelzőn megjelennik a mért futási idő, illetve az egy átalakításhoz átlagosan szükséges idő is (amit a feladat kér). Magyarázat: A LabView Help-ben olvasottak alapján a Flat Sequnce biztosítja, hogy bizonyos események egymást követően történjenek a futás során. A Tick Count elemek rögzítik a program indítása óta eltelt ezredmásodpercek számát. Könnyedén belátható, hogy a Flat Sequence első és utolsó részébe helyezett Tick Count-ok kimenetének különbsége így a középső rész futási idejét adja. Mivel egy átalakítás ideje jóval kisebb a Tick Count által mérhető legkisebb időnél, a mérést több ismételt átalakításra végezzük el (ehhez szükséges a for ciklus), és ebből számítjuk ki a kívánt mennyiséget. Bár a mérési utasításban csak tízezer futás szerepelt, a mérés során úgy tapasztaltuk, hogy ennyi átalakítás 2-3 ezredmásodperc alatt lefut. Tekintve, hogy a LabView ezredmásodperc pontossággal méri az eltelt időt, ez elfogadhatatlan nagyságrendű mérési bizonytalanságot eredményez. Több próbálkozással megállapítottuk, hogy tízmillió futtatás esetén a futásidő másodperces nagyságrendű, így a mérési bizonytalanság 0.2% alá csökken.
Megjegyzés: A berendezés összeállítása során észrevettük, hogy a kapcsolót Switch when pressed módra állítjuk, és így azt bekapcsolva a gép gyors egymásutánban többször is elvégzi a mérést, az egy átalakításhoz használt idő csaknem megduplázódik. 5. Időérzékelés Bár sok időbe telt, végül ennek is megtaláltuk a módját. A műszer alapvetően egy flat sequence struktúrát tartalmaz, ebben kap helyet egy-egy while ciklus, és két időmérő eszköz (Tick Count). A gomb lenyomásakor az egyki tick count rögzíti az eltelt időt (milliszekundumban), elengedésig egy while ciklus magja ismétlődik újra és újra. A gomb elengedésekor ismét megnézzük az órát, a két tick count értékét kibonva megkapjuk az eltelt ezredmásodpercek számát. Ebből ezret kivonva, a kapott szám abszolút értéke jelzi az egy másodperctől való eltérést ha ez nem haladja meg a 100 ms-ot, akkor kigyúl a lámpa. 6. Periodikus jelek Egy periodikus jel tanulményozásához alapvetően egy függvénygenerátorra (Simulate Signal) és egy Waveform Chartra van szükségünk: előbbi előállítja, a chart pedig (oszcilloszkóphoz hasonlóan) megjeleníti a vizsgálni kívánt jelt. A program futása közben változtatható feszültség, frekvencia és eltolásértékek változtatásához jelenként egy-egy számbeállítót hoztunk létre. Mivel követelmény a jelek effektív- és csúcsértékének megjelenítése, ehhez létrehozunk még egy-egy kijelzőt a műszer előlapján. Eredmény: A létrehozott műszeregyüttes az elvárásoknak megfelelően működik, segítségével a szinuszos, a négyszög és a háromszögjel is megtekinthető, különböző frekvencia- és feszültségértékeken. Összefoglalás A mérés során megismerkedtünk a LABVIEW program nyújtotta lehetőségekkel, a virtuális műszerek létrehozási módjával. A mérési utasításban szereplő feladatokat (úgy hisszük) hogy sikeresen megoldottuk, ezek kódját becsomagolva küldjük a jegyzőkönyv mellett, csatolva.