DAQmx címkéhez tartozó bejegyzések

Megjelent: Mérés és adatgyűjtés laboratóriumi jegyzet

A TÁMOP-4.1.2.A/1-11/1-2011-0104 pályázat keretében elkészített Mérés és adatgyűjtés laboratóriumi jegyzet megjelent a tankönyvtár oldalán. A jegyzetet itt lehet elérni: http://www.tankonyvtar.hu/hu/tartalom/tamop412A/2011_0104_SZTE-3_Meres_es_adatgyujtes/adatok.html 

A jegyzet témakörei:

  • A LabVIEW programozási környezet
  • Multiméterek és oszcilloszkópok használata
  • Műszerek vezérlése LabVIEW környezetből
  • Mérések végzése és mérési adatok feldolgozása
  • Szenzorok és távadók vizsgálata
  • Kommunikációs protokollok, távmérés
  • Valós idejű rendszerek programozása

A magyar nyelvű jegyzet mellett megjelent egy angol nyelvű kiegészítő is, elsősorban külföldi hallgatók számára, ez itt érhető el: http://www.tankonyvtar.hu/hu/tartalom/tamop412A/2011_0104_SZTE-4_Measurement_supplement/adatok.html

DAQmx - mintavételezéses mérések

Hardware-timed mérések esetén a mintavételezés vezérlését nem a számítógép, hanem maga a mérőhardver végzi el. Az aktuális hardver képességei határozzák meg, hogy az egyszerre hány mérési feladat (Task) végrehajtására képes, mekkora memória áll rendelkezésre az adatok ideiglenes tárolására, illetve, hogy milyen adatátviteli sebességgel rendelkezik. A legtöbb mérőeszköz mindössze egyetlen SW vagy HW timed feladat végrehajtására alkalmas. STC3 vezérlőt tartalmazó eszközök esetén (pl cDAQ) már három feladatot is használhatunk párhuzamosan, különböző időzítések mellett, azonban egy-egy modulhoz csak egy-egy feladat rendelhető.

Mintavételezéses méréseknek két fő típusát különböztetjük meg: véges hosszúságú mérés, és folytonos mérések. Előbbiek esetén a megadott mennyiségű adat mérését követően befejezzük a mintavételezést, esetleg a mérést később megismételjük (pl. egy ciklusban). Egy egyszerű mintaprogram a következő ábrán látható:

DAQmx HW-Timed A In

A csatorna kiválasztását követően megadjuk a mintavételi sebességet, valamint azt is, hogy hány pontot szeretnénk mérni egy-egy mérés során. A ciklusban mindig újraindítjuk a mérést, majd pedig beolvassuk a mintavételezett adatokat. Több csatorna mérése esetén az NChan NSamp opciót kell kiválasszuk. Folytonos mérések esetén a DAQmx Timing.vi sample mode bemenetére a Continuous Samples opciót kell bekössük, ezt követően a cikluson kívül (egyszer) indítjuk a mérést, a ciklusban pedig beolvassuk a szükséges adatmennyiséget:

DAQmx - Continuous A In

A mintavételi sebesség megadásakor a driver felülbírálhatja kérésünket, és a hardver képességeihez igazodó mintavételi sebességet fog beállítani. Amennyiben kíváncsiak vagyunk a végeredményre, a DAQmx Timing Property Node.vi segítségével kérdezhetjük le:

 DAQmx  -Actual Sample Clock

DAQmx - Analóg bemenet mérése

A National Instruments által gyártott USB műszerek nagy része a DAQmx driver segítségével programozhatók. A LabVIEW programozásról valamint a műszerek kezelésének alapjairól a hamarosan megjelenő „Mérés és adatgyűjtés laboratóriumi jegyzet” című jegyzetben írok részletesebben. A most elkezdett post-sorozatban néhány, ott nem szereplő módszert és valamint hasznos javaslatokat mutatok be.

Műszerek egyszerű kezelésére a DAQ assistant nevű eszközt is használhatjuk, mely segítségével, egyszerűen, varázslószerűen tudjuk konfigurálni a mérési vagy vezérlési feladatot. Összetettebb mérési feladatok esetén viszont a DAQ assistant használata már nem kézenfekvő, célszerű magunknak megírni az adatgyűjtésre használható kódot.

A driver használata során a következő alapfogalmak ismeretére van szükségünk:

  • Physical channel: az eszközön lévő bemenet vagy kimenet
  • Virtual channel: a fizikai csatorna reprezentációja
  • Task: egy mérési feladat, mely több virtuális csatornát tartalmaz
  • On demand/ Software timed: a mintavételezést a PC szoftver frissítési rátája dönti el. Nem determinisztikus, alacsony sebességnél használható
  • Hardware timed: maga a hardver végzi a mintavételezés vezérlését, determinisztikus

A következő egyszerű programban egy csatorna mérését mutatom be.

DAQmx Software Timed Analog Input 1 Ch

A program elején konfiguráljuk a kiválasztott csatornát. Az input terminal configuration bemenet esetén a következő fő választási lehetőségeink vannak:

  • RSE (referenced single ended): a bemenő feszültséget a műszer földjéhez képest mérjük
  • NRSE (non referenced single ended): a bemenő feszültséget a műszer az AI-sense bemenethez képest méri
  • Differential: két (általában szomszédos) bemenet közötti feszültségkülönbséget méri
  • Default: az adott csatorna alapértelmezett beállítását használja. Ez általában differenciális beállítást takar, kivéve a magasabb sorszámú csatornák esetén amennyiben azok valamely bemenet negatív párja lennének differenciális mérés esetén.

A DAQmx Start Task.vi indítja el magát a mérést, ezt követően a DAQmx Read.vi segítségével olvashatjuk ki az adatokat. A vi alatt lévő Polymorphic VI Selector segítségével választhatjuk ki az adatok típusát, egyetlen csatorna és egyetlen mért minta esetén választhatunk DBL (egyetlen skalár) valamint a Waveform között. A Waveform a minta mellett tartalmazni fogja a csatorna időzítési értékeit is (pl. mérés ideje).

A mérés egy ciklusban történik, ennek frissítési gyakorisága 100 ms. Az adatok egy Waveform Chart-on kerülnek megjelenítésre. A ciklus a Stop gomb megnyomásakor, vagy hiba esetén leáll. A program végén az erőforrások felszabadítása zajlik.

Szükség esetén egyszerre több csatornát is mérhetünk. Ekkor a physical channels mező Browse opcióját használhatjuk egyszerre több, azonos tulajdonságokkal rendelkező bemenet kiválasztására. A DAQmx Read.vi esetén ki kell válasszuk az NChan1Samp opciót.

DAQmx Software Timed Analog Input n Ch

Amennyiben különböző beállításokkal rendelkező csatornákat szeretnénk hozzárendelni egy-egy mérési feladathoz, akkor több DAQmx Start Task.vi-t kell meghívnunk a következő ábrának megfelelően:

 DAQmx multiple physical channels

Megjegyzés: csak azonos típusú csatornákat (pl. analóg bemenet) tudunk egy feladathoz hozzárendelni.

Rövid LabVIEW képzések

A CEFAIC pályázat keretein belül három rövid LabVIEW képzést indítunk. A képzések a LabVIEW programozás alapjait tekinti át, valamint bemutatják, hogyan lehet különböző adatgyűjtő eszközöket programozni. A kurzust az egyetemen dolgozó kollégáknak, valamint diákoknak ajánljuk.

Mindhárom képzés 2x3 órás, csütörtökönként 14:00 és 16:30 között, a helyszín pedig az Irinyi 116-os laboratórium.

A kurzusok:

  • Bevezetés a LabVIEW használatába, április 10. és 17.
  • NI adatgyűjtők programozása LabVIEW segítségével, április 24. és május 8.
  • Valós idejű (cRIO) rendszerek programozása, május 22. és 29.

A képzések ingyenesek, további részletek itt:
http://www.inf.u-szeged.hu/~mingesz/Education/CLV/