LabVIEWForum.de
DAQmx Abtastung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Weitere NI Software (/Forum-Weitere-NI-Software)
+---- Forum: LabWINDOWS/CVI (/Forum-LabWINDOWS-CVI)
+---- Thema: DAQmx Abtastung (/Thread-DAQmx-Abtastung)



DAQmx Abtastung - goeck - 07.01.2010 15:58

Hallo und frohes Neues,

ich bin seit ein paar Wochen dabei mit einer NI-6035E Karte, die ich unter Qt mit C++ und den entspr. Header Einbindungen anspreche, auf vier Kanälen zu messen und die Ausgabe grafisch darzustellen. Soweit funktioniert das auch hervorragend. Allerdings habe ich arge Performanceprobleme dabei. Ich lese mittels DAQmxReadAnalogF64 je 100 Wert ein, also insg. 4x100, und mittele diese dann. Diesen Vorgang wollte ich ca. 50 Mal/Sekunde ausführen. Ich komme aber lediglich auf ca 15Hz.

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>int32 DAQmxReadAnalogF64 (TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[],
uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);</div>

Jetzt denke, ich hab den Lesemechanismus vielleciht noch nicht ganz verstanden. Ich sehe das so: Ich stelle mittels DAQmxCfgSampClkTiming das Timing und die Abtastrate ein. Da habe ich bsp. jetzt 8kHz eingestellt. (Meine Überlegung war, dass bei 8000Hz/400Samples rechnerisch noch reale 50Hz Wiederholungsrate möglich sind. Das legt zu Grunde, dass die 400Samples nacheinander eingelesen wurden. Hat jeder Kanal seinen eigenen Puffer und muss ich somit nur durch 100 teilen?) Ab dann wird der Puffer der Karte laufend befüllt - FIFO?
Nun kann ich mittels DAQmxReadAnalogF64 ein Array befüllen. Bei mir ist das 400 Samples groß, 100Samples für jeden Kanal und nacheinander angeordnet mittels des DAQmx_Val_GroupByScanNumber Arguments. Ist das wirklich nur eine Anordnung oder gibt das auch einen Hinweis auf die zeitliche Reihenfolge der Werte?

Ich hoffe, ich bin nicht in zu viele Details ausgebrochen und jemand tut sich diesen Text an. :-)
Herzlichen Dank

Grüße
Stefan


DAQmx Abtastung - jg - 07.01.2010 16:25

:verschoben12:
Hallo,

ich habe deinen Beitrag verschoben, wobei er auch nicht so recht in die Kategorie LabWINDOWS passt.

Du bist hier nämlich im Forum zur Programmiersprache LabVIEW gelandet. Wir beschäftigen uns NICHT damit, DAQmx-Aufrufe aus C++ heraus zu programmieren, das machen wir lieber über die entsprechende LabVIEW-Schnittstelle. Somit passt deine Frage überhaupt nicht ins Subforum LabVIEW->Datenerfassung(DAQ).

LabWINDOWS als C-Variante hat wohl noch am ehesten mit C++ was zu tun, ob du allerdings hier viele Antworten bekommst, das wage ich zu bezweifeln (ich lasse mich aber gerne eines Besseren belehren).

Gruß, Jens


DAQmx Abtastung - IchSelbst - 07.01.2010 17:13

Eine Antwort kann ich geben: Nie wieder DAQmx mit was anderem als LabVIEW!

Ich hab mal unter Delphi ein größerer Projekt mit diversen NI-PCI-Karten gemacht. Geklappt hat das schon alles. Da gibt es eine DLL, die man einbinden kann (nämlich die DAQmx). Ich hab die Daten allerdings kontinuierlich eingelesen, nicht blockweise. Dumm nur, dass der asynchrone Interrupt nicht dokumentiert ist - und deswegen nicht zur Verfügung steht. (Mit AddiData ging das sehr gut: einfach asynchronen Interrupt - und die Daten werden übernommen, wenn sie anliegen, und nicht erst wenn die Anwendung den Fokus hat). Der synchrone Interrupt hat bewirkt, dass gelegentlich Datenpakete verschwunden sind.

Außerdem hab ich mit der NI-6035E selbst unter LabVIEW schon große Probleme gehabt. Nach Umstieg auf eine entsprechende PCI-Karte waren die Probleme eliminiert.


DAQmx Abtastung - goeck - 08.01.2010 08:17

Morgen zusammen,

sorry für den Falschpost, Jens. Ich dachte ich bin bei DAQ ganz gut aufgehoben.

Nun gut, das ist für mich jetzt nicht sonderlich hilfreich, "nie wieder DAQmx ohne LabVIEW". :-) Alles andere funktioniert hervorragend und auch die Datenerfassung funktioniert ja. Nur in der Tiefe komm ich nicht zurecht, weil ich nicht genau weiss, was die Funktionen machen und dies der Doku nicht entnehmen kann. Unter LabVIEW hätte ich bei gleicher Herangehensweise das gleiche Problem. Nähme ich also unter LabVIEW auch die DAQmx Funktionen würde ich mich sicherlich auch fragen müssen, wie die Daten geordnet sind usw. Na mal sehen, was ich heute rauskriegen kann. Werde am Ball bleiben und Erkenntnisse hier posten.

Grüße und Danke!


DAQmx Abtastung - Achim - 13.01.2010 12:08

http://zone.ni.com/devzone/cda/tut/p/id/5409



Edit: Post #3300