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

A Fizipedia wikiből
50. sor: 50. sor:
 
For this exercise, we are using an NI myDAQ card designed specifically for educational purposes by National Instruments. The data acquisition card (DAQ) can be connected via a USB port and it can be controlled from the Visual C # environment using the NI DAQmx driver, which can be downloaded free of charge from [http://www.ni.com/dataacquisition/nidaqmx.htm DAQmx]. The DAQ card can be tested and controlled using the NI Measurement & Automation Explorer (MAX) program.
 
For this exercise, we are using an NI myDAQ card designed specifically for educational purposes by National Instruments. The data acquisition card (DAQ) can be connected via a USB port and it can be controlled from the Visual C # environment using the NI DAQmx driver, which can be downloaded free of charge from [http://www.ni.com/dataacquisition/nidaqmx.htm DAQmx]. The DAQ card can be tested and controlled using the NI Measurement & Automation Explorer (MAX) program.
  
Computer controlled DAQ cards alone allow for a number of complex measurement and control tasks: a large number of analog input channels can be used to investigate changes in various experimental parameters at high sampling rates; analogue output channels can generate DC or time-varying drive signals; digital circuits can be used to control logic circuits; trigger input channels can be used to synchronize our measurement to an external input signal. The NI myDAQ measurement card used in this exercise has 2 analog input channels, 2 analog output channels, 8 digital output or input channels. The resolution of the analog input channels is 16 bits. It means, that in the maximum $ \ pm10 \, $ V measurement range, it has a bit resolution of $ 20 \, $ V $ / 2 ^ {16} \approx 0.3 \, $ mV. The analog input channels operate in differential mode: the voltage between the + and - terminals is measured (e.g. AI0 and AI0 +). The maximum sampling rate is 200,000 sample/second. The analog output channel can output voltages between $ -10 $ and $ + 10 \, $ V, its resolution is also 16 bits and its maximum refresh rate is 200,000 Hz.
+
Computer controlled DAQ cards alone allow for a number of complex measurement and control tasks: a large number of analog input channels can be used to investigate changes in various experimental parameters at high sampling rates; analogue output channels can generate DC or time-varying drive signals; digital circuits can be used to control logic circuits; trigger input channels can be used to synchronize our measurement to an external input signal. The NI myDAQ measurement card used in this exercise has 2 analog input channels, 2 analog output channels, 8 digital output or input channels. The resolution of the analog input channels is 16 bits. It means, that in the maximum $\pm10\,$ V measurement range, it has a bit resolution of $20\,$V$/2^{16}\approx0.3\,$mV$. The analog input channels operate in differential mode: the voltage between the + and - terminals is measured (e.g. AI0 and AI0 +). The maximum sampling rate is 200,000 sample/second. The analog output channel can output voltages between $ -10 $ and $ + 10 \, $ V, its resolution is also 16 bits and its maximum refresh rate is 200,000 Hz.
  
 
</wlatex>
 
</wlatex>

A lap 2018. február 16., 14:13-kori változata


MyDAQ photo.jpg

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 driver segítségével érhetjük el, ez ingyenesen letölthető a következő linken: DAQmx. 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. Az analóg bementek differenciális módban működnek, a + illetve - csatlakozó közötti feszültséget mérik (pl. AI0- és AI0+). 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 10V-ra növeli, majd a 10 V-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 feszü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 valamint az \setbox0\hbox{$U_\textrm{T}$}% \message{//depth:\the\dp0//}% \box0% feszültség értékét!
  8. Vizsgáljuk meg, hogy valóban szükség van-e az ellenálláson eső feszültség mérésére? Mekkora hibát vétünk akkor, ha az áramot a kiadott feszültség és a soros ellenállás hányadosaként számítjuk? Mikor lehet alkalmazni ezt a közelítést?

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.

Syllabus in English

Introduction

The objective of this measurement exercise is to learn out how to program a computer data acquisition card. By programming the analogue outputs and inputs of the card, we create an oscilloscope-like user interface to measure the voltage-current characteristic of an LED (Light Emitting Diode).

For this exercise, we are using an NI myDAQ card designed specifically for educational purposes by National Instruments. The data acquisition card (DAQ) can be connected via a USB port and it can be controlled from the Visual C # environment using the NI DAQmx driver, which can be downloaded free of charge from DAQmx. The DAQ card can be tested and controlled using the NI Measurement & Automation Explorer (MAX) program.

Computer controlled DAQ cards alone allow for a number of complex measurement and control tasks: a large number of analog input channels can be used to investigate changes in various experimental parameters at high sampling rates; analogue output channels can generate DC or time-varying drive signals; digital circuits can be used to control logic circuits; trigger input channels can be used to synchronize our measurement to an external input signal. The NI myDAQ measurement card used in this exercise has 2 analog input channels, 2 analog output channels, 8 digital output or input channels. The resolution of the analog input channels is 16 bits. It means, that in the maximum \setbox0\hbox{$\pm10\,$}% \message{//depth:\the\dp0//}% \box0% V measurement range, it has a bit resolution of \setbox0\hbox{$20\,$}% \message{//depth:\the\dp0//}% \box0%V\setbox0\hbox{$/2^{16}\approx0.3\,$}% \message{//depth:\the\dp0//}% \box0%mV\setbox0\hbox{$. The analog input channels operate in differential mode: the voltage between the + and - terminals is measured (e.g. AI0 and AI0 +). The maximum sampling rate is 200,000 sample/second. The analog output channel can output voltages between $}% \message{//depth:\the\dp0//}% \box0% -10 \setbox0\hbox{$ and $}% \message{//depth:\the\dp0//}% \box0% + 10 \, $ V, its resolution is also 16 bits and its maximum refresh rate is 200,000 Hz.