„Adatgyűjtő kártya programozása mérésleírás” változatai közötti eltérés
(→Febr. 22. - Márc. 3. (2014)) |
|||
2. sor: | 2. sor: | ||
[[Kategória:Szerkesztő:FulopGergo]] | [[Kategória:Szerkesztő:FulopGergo]] | ||
<wlatex> | <wlatex> | ||
− | [[Fájl: | + | [[Fájl:myDAQ_photo.png|right|thumb]] |
− | + | ||
− | + | ||
__TOC__ | __TOC__ | ||
15. sor: | 13. sor: | ||
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 | 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 myDAQ mérőkártya 2 analóg bemeneti csatornával, 2 analóg kimeneti csatornával, 8 digitális kimeneti vagy bemeneti csatornával rendelkezik. Az analóg bemeneti csatornák felbontása | + | 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 myDAQ mérőkártya 2 analóg bemeneti csatornával, 2 analóg kimeneti csatornával, 8 digitális kimeneti vagy bemeneti csatornával rendelkezik. Az analóg bemeneti csatornák felbontása 16 bit, azaz a maximális, $\pm10\,$V-os méréstartományban $20\,$V$/2^{16}\approx0.3\,$mV pontossággal mérhetünk. A maximális mintavételezési sebesség 200000 adatpont/másodperc. Az analóg kimeneti csatorna $-10$ és $+10\,$V közötti feszültségeket tud kiadni, felbontása szintén 16 bit, a maximális programozási sebessége 200000 adatpont/másodperc. |
[[Fájl:CSharp_LED_IV.png|right|thumb]] | [[Fájl:CSharp_LED_IV.png|right|thumb]] | ||
23. sor: | 21. sor: | ||
== A mérőkártya tesztelése == | == A mérőkártya tesztelése == | ||
− | A számítógéphez csatlakoztatott és felismert mérőkártyán található | + | A számítógéphez csatlakoztatott és felismert mérőkártyán található kék LED világítani kezd. 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 myDAQ:"myDAQ1"'' 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 ''"myDAQ1"'' lesz, több eszköz használata esetén a MAX programban leolvashatjuk illetve módosíthatjuk az eszközünknek osztott címkét. Az ''NI myDAQ:"myDAQ1"'' 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 mérőkártya programozása Visual C# környezetben == | ||
29. sor: | 27. sor: | ||
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 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 ''" | + | A feladat megoldásához két Taskra van szükségünk, melyek közül az egyik olvas a ''"myDAQ1/ai0"'' porton, a másik pedig a mérőjelet generálja a ''"myDAQ1/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 == | == Feladatok == | ||
36. sor: | 34. sor: | ||
# 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! | # 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 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 | + | # A ZedGraphControl segítségével jelenítsük meg a mért oljfeszültség-áram karakterisztikát! |
− | # Egy "mentés" gomb megnyomása után mentsük el egy fájlba az | + | # Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utá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; mentendő fájl neve)! | # 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; mentendő fájl neve)! | ||
# Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az $$I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right)$$ képlettel! Ha igen, határozzuk meg az $I_0$ szivárgási áram értékét! | # Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az $$I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right)$$ képlettel! Ha igen, határozzuk meg az $I_0$ szivárgási áram értékét! |
A lap 2014. április 2., 14:47-kori változata
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, kifejezetten oktatási célra gyártott NI myDAQ típusú mérőkártyát programozunk. A mérőkártya USB porton keresztül vezérelhető, 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 myDAQ mérőkártya 2 analóg bemeneti csatornával, 2 analóg kimeneti csatornával, 8 digitális kimeneti vagy bemeneti csatornával rendelkezik. Az analóg bemeneti csatornák felbontása 16 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 200000 adatpont/másodperc. Az analóg kimeneti csatorna és V közötti feszültségeket tud kiadni, felbontása szintén 16 bit, a maximális programozási sebessége 200000 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ó kék LED világítani kezd. 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 myDAQ:"myDAQ1" 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 "myDAQ1" lesz, több eszköz használata esetén a MAX programban leolvashatjuk illetve módosíthatjuk az eszközünknek osztott címkét. Az NI myDAQ:"myDAQ1" 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 "myDAQ1/ai0" porton, a másik pedig a mérőjelet generálja a "myDAQ1/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 oljfeszültség-áram karakterisztikát!
- Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utá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; 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.