„Adatgyűjtő kártya programozása mérésleírás” változatai közötti eltérés

A Fizipedia wikiből
(Febr. 22. - Márc. 3. (2014))
2. sor: 2. sor:
 
[[Kategória:Szerkesztő:FulopGergo]]
 
[[Kategória:Szerkesztő:FulopGergo]]
 
<wlatex>
 
<wlatex>
[[Fájl:USB6008_photo.png|right|thumb]]
+
[[Fájl:myDAQ_photo.png|right|thumb]]
 
+
Az alábbi leírás pdf formátumban is [[:Fájl:DAQMX.pdf|letölthető]].
+
  
 
__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 12 bit, azaz a maximális, $\pm10\,$V-os méréstartományban $20\,$V$/2^{12}\approx5\,$mV 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 $0$ és $+5\,$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.
+
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ó 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 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 ''"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!  
+
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 feszültség-áram karakterisztikát!
+
# 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 utoljára mért feszü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)!
 
# 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, \setbox0\hbox{$\pm10\,$}% \message{//depth:\the\dp0//}% \box0%V-os méréstartományban \setbox0\hbox{$20\,$}% \message{//depth:\the\dp0//}% \box0%V\setbox0\hbox{$/2^{16}\approx0.3\,$}% \message{//depth:\the\dp0//}% \box0%mV pontossággal mérhetünk. A maximális mintavételezési sebesség 200000 adatpont/másodperc. Az analóg kimeneti csatorna \setbox0\hbox{$-10$}% \message{//depth:\the\dp0//}% \box0% és \setbox0\hbox{$+10\,$}% \message{//depth:\the\dp0//}% \box0%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.

CSharp LED IV.png

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

  1. 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!
  2. 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!
  3. 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!
  4. A ZedGraphControl segítségével jelenítsük meg a mért oljfeszültség-áram karakterisztikát!
  5. 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!
  6. 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)!
  7. 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 \setbox0\hbox{$I_0$}% \message{//depth:\the\dp0//}% \box0% szivárgási áram értékét!
  8. 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.