INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DAQmx Abtastung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.01.2010, 15:58 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2010 16:21 von jg.)
Beitrag #1

goeck Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jan 2010

2009
-
de

53424
Deutschland
DAQmx Abtastung
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.01.2010, 16:25
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
DAQmx Abtastung
: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

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.01.2010, 17:13
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DAQmx Abtastung
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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2010, 08:17
Beitrag #4

goeck Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jan 2010

2009
-
de

53424
Deutschland
DAQmx Abtastung
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!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2010, 12:08 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2010 12:13 von Achim.)
Beitrag #5

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
DAQmx Abtastung
http://zone.ni.com/devzone/cda/tut/p/id/5409



Edit: Post #3300

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: