Adatgyűjtő kártya programozása mérésleírás
Az alábbi leírás pdf formátumban is letölthető.
Tartalomjegyzék |
Bevezetés
A mérési gyakorlat célja egy számítógépes adatgyűjtő kártya programozásának megismerése: a kártya analóg kimeneteinek és bemeneteinek programozásával egy oszcilloszkóp jellegű mérőfelületet készítünk, mellyel felvesszük egy LED (Light Emitting Diode) feszültség-áram karakterisztikáját.
A gyakorlat során a National Instruments cég által gyártott USB porton keresztül vezérelhető NI USB-6008 típusú mérőkártyát programozunk. A mérőkártya funkcióit Visual C\# környezetben a NI DAQmx meghajtóprogram segítségével érhetjük el, illetve a kártya működését az NI Measurement & Automation Explorer (MAX) program segítségével ellenőrizhetjük.
A számítógépes mérőkártyák önmagukban számos komplex mérésvezérlési feladat megvalósítását teszik lehetővé: a nagyszámú analóg bemeneti csatornán keresztül különböző kísérleti paraméterek változását vizsgálhatjuk nagy mintavételezési sebességgel; az analóg kimeneti csatornákkal DC vagy időben változó meghajtó jeleket generálhatunk; a digitális csatornákon keresztül logikai áramköröket vezérelhetünk; illetve a trigger bemeneti csatornákon keresztül mérésünket egy külső bemeneti jelhez szinkronizálhatjuk. A mérésen használt NI USB-6008 mérőkártya 8 analóg bemeneti csatornával, 2 analóg kimeneti csatornával, 12 digitális kimeneti vagy bemeneti csatornával és egy számláló csatornával rendelkezik. Az analóg bemeneti csatornák felbontása 12 bit, azaz a maximális, V-os méréstartományban VmV pontossággal mérhetünk. A maximális mintavételezési sebesség 10000 adatpont/másodperc, mely a használt csatornák között szétoszlik, pl. ha 4 csatornát használunk, akkor minden csatornán 10000/4=2000 adatpont/másodperc sebességet érhetünk el. Az analóg kimeneti csatorna és V közötti feszültségeket tud kiadni, felbontása szintén 12 bit, a maximális programozási sebessége 150 adatpont/másodperc.
A mérési gyakorlat során egy analóg kimeneti csatorna segítségével fűrészfog jelet generálunk, melyet egy soros ellenállás segítségével áramjellé alakítunk. Az így kapott áramgenerátorral meghajtott LED-en eső feszültséget egy analóg bemeneti csatornán mérjük (ábra).
A mérőkártya tesztelése
A számítógéphez csatlakoztatott és felismert mérőkártyán található zöld LED ütemesen villog. Ezután az eszközt a NI Measurement & Automation Explorer (MAX) segítségével tesztelhetjük (Start / Programs / National Instruments / Measurement & Automation). A MAX szoftverfelületének baloldali sávjában láthatjuk a számítógéphez csatlakoztatott eszközöket és interfészeket, mérőkártyánkat a My System / Devices and Interfaces / NI-DAQmx Devices / NI USB-6008:"Dev1" menüpont alatt érhetjük el. A kártyára a programozás során az idézőjelben található címke segítségével hivatkozhatunk. A gyakorlat során csak egy eszközt használunk, így a címke minden esetben "Dev1" lesz, több eszköz használata esetén a MAX programban leolvashatjuk az eszközünknek osztott címkét. Az NI USB-6008:"Dev1" menüpontra jobb egérrel kattintva érhetjük el a tesztelő paneleket, melyek segítségével az analóg kimenetek és bemenetek működését ellenőrizhetjük.
A mérőkártya programozása Visual C# környezetben
A csatlakoztatott mérőkártyát a program indulása után inicializálni kell: megadhatjuk a szükséges csatornák feszültségtartományát, a mintavételi frekvenciát. Az egyes funkciókat ún. Task típusú objektumok valósítják meg, amelyekhez AnalogSingleChannelWriter és AnalogSingleChannelReader osztályú objektumokat rendelhetünk a feszültség kiírásához és beolvasásához. A szükséges prototípusokat a NationalInstruments.DAQmx és NationalInstruments.Common függvénygyűjtemény tartalmazza, ezért ezeket adjuk hozzá a project referenciáihoz! A forráskód elején szerepeljen a using NationalInstruments.DAQmx sor is. A létrehozott taskokat a Dispose() metódussal töröljük, amennyiben már nincs rájuk szükség!
A feladat megoldásához két Taskra van szükségünk, melyek közül az egyik olvas a "Dev1/ai0" porton, a másik pedig a mérőjelet generálja a "Dev1/ao0" kimeneten. A mérésleírás végén található melléklet nyújt segítséget a konkrét megvalósításhoz. Ügyeljünk arra, hogy az inicializáláskor megadott minimális és maximális feszültségértéket soha ne lépjük túl!
Feladatok
- Teszteljük a mérőkártya működését Measurement & Automation Explorerben! Növeljük az analóg kimenet feszültségét, és ellenőrizzük hogy megfelelően nagy feszültség esetén elkezd-e világítani a LED!
- Készítsünk mérőprogramot, mely egy Timer esemény segítségével az analóg kimenet feszültségét 100 lépésben 10ms-os lépésközzel 0V-ról 5V-ra növeli, majd az 5V-os szint elérése után visszaugrik 0V-ra, és a feszültség növelését újból kezdi (fűrészfogjel generátor)! A kiadott aktuális feszültség értékből a soros ellenállás értékének segítségével számoljuk ki a LED-en folyó áramot, amit egy TextBox segítségével jelenítsünk meg a mérőfelületen! Helyezzünk el a mérőfelületen a fűrészfogjel generátor futtatására ill. leállítására szolgáló gombot!
- A fűrészfogjel generátor futtatása közben mérjük a LED-en eső feszültséget a mérőkártya analóg bemenetén keresztül! A mért feszültséget jelenítsük meg egy TextBox-ban!
- A ZedGraphControl segítségével jelenítsük meg a mért feszültség-áram karakterisztikát!
- Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utoljára mért feszültség-áram karakterisztikát!
- A fenti funkciók biztonságos működése esetén tegyük lehetővé a mérési paraméterek egyedi beállítását (Timer Interval; fűrészfogjel generátor maximális és minimális feszültsége; egy ciklushoz tartozó adatpontok száma; ZedGpraph ábra skálái; mentendő fájl neve)!
- Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az képlettel! Ha igen, határozzuk meg az szivárgási áram értékét!
- Vizsgáljuk meg, hogy jogosan határoztuk-e meg az áramot a kiadott feszültség és a soros ellenállás hányadosaként! Mi ennek a közelítésnek a feltétele?
A mérésről készített jegyzőkönyv tartalmazzon egy használati utasítást az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben meghatározott felépítést követik. A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját, valamint a jegyzőköny tartalmazza a LED-en végzett feszültség-áram karakterisztika mérés eredményeit és azok diszkusszióját is.