LabVIEWForum.de - Zeitdauer für eine Schleife bei Nutzung Ain/Aout des myDAQ - 40 ms ?

LabVIEWForum.de

Normale Version: Zeitdauer für eine Schleife bei Nutzung Ain/Aout des myDAQ - 40 ms ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich experimentiere gerade mit dem Studentenkit von NI (myDAQ-Karte). Ich möchte herausfinden, wie lange es dauert, bis ein Messwert eingelesen, verrechnet und ein Analogwert wieder ausgegeben wird.
Konkret habe ich nun folgende Schaltung aufgebaut:

--> Auf Ain_0 wird ein Sprung gegeben (1,5 Volt einer AAA-Batterie)
--> In Labview wird dieser Wert mit 3 multipliziert und auf einen Analogausgang gegeben
--> Der Analogausgang wiederum ist direkt auf den Ain_1 geführt
--> Ain_0 und Ain_1 werden auf einem Chart dargestellt, und anhand der Zeitverschiebung lässt sich quasi eine Zykluszeit ablesen

Nun habe ich ja an Rechenoperation wirklich das allersimpelste genommen, das es gibt (Eine Multiplikation mit einer Zahl), was ein Computer sicherlich in einer zu vernachlässigenden Zeit berechnet.
Trotzdem messe ich zwischen Ain_0 und Ain_1 ganze 43 ms!

Meine Frage: Ist das normal dass dies so lange dauert? Wo könnte hier der Flaschenhals sein? Liegt das an den Express-VI, USB-Schnittstelle ....??
Ich hatte darauf gehofft, dass das ganze weitaus schneller läuft...

Im Anhang das VI und mein Anschlussplan sowie die Messwerte.

Ich bin leider absoluter Anfänger in Labview, deshalb würde ich mich über Hilfe freuen!!

Herzlichen Dank!
Hallo Bike,

Zitat:Wo könnte hier der Flaschenhals sein? Liegt das an den Express-VI, USB-Schnittstelle ....??
Die ExpressVIs sind sicherlich nicht hilfreich…

Programmiere das Ganze doch bitte mal mit "normalen" DAQmx-Funktionen (und ohne DDT-Drähte)! Du findest dazu Links in meiner Signatur und mehrere BeispielVIs im Beispielfinder!

Zitat:Ich bin leider absoluter Anfänger in Labview
Wie man an der Schreibweise sieht! Big Grin
Aber auch dafür (oder dagegen) gibt es Links in meiner Signatur!

Nachtrag:
Wenn du jetzt mit LV2016 arbeitest, dann bitte Profil_ergaenzen
Leider kann ich dein VI hier nicht öffnen, sodass ich die Einstellungen deiner DAQ-Assis nicht überprüfen kann…
Hallo GerdW,

herzlichen Dank für die Tips! Ja, mit der Schreibweise bin ich noch lernfähig :-) Die Version im Profil hab ich geändert.

Werde es nun mit einer "normalen" DAQmx-Funktion versuchen, die Express-VI´s sind für den Anfang eben so schön einfach.

Habe gerade nochmals das VI als 2012-er Version abgespeichert, ich hoffe damit kannst Du es öffnen.

Grüße
Hallo Bike,

warum hast du jetzt plötzlich bei der LabVIEW-Nutzungsdauer nicht mehr "ab 2012", sondern "ab 2016" stehen?

Zum VI:
Du hast beide DAQ-Assis auf "1kSamples zu lesen/schreiben bei 100kS/s Samplerate" eingestellt. Also das Lesen dauert damit wenigstens 10ms - und das Schreiben wird auch etwas dauern! Versuch doch für den Anfang mal nur 100 Samples zu lesen und zu schreiben…
Das Updaten deines Charts wird auch Zeit benötigen, wenn du da jedesmal 2000 neue Werte reinschiebst und der Chart dann auch noch 1024 Signalverläufe zwischenpuffern soll!
Ah ok sorry, LV-Version und LV-Erfahrung waren 2 unterschiedliche Felder im Benutzerprofil, das hab ich auf die schnelle übersehen...Big Grin

Eine Umstellung auf 100 Samples lesen und schreiben funktioniert leider nicht, habe ich gerade probiert. Bekomme sofort die Fehlermeldung 200290: The generation has stopped to prevent the regeneration of old samples. Your application was unable to write samples to the background buffer fast enough to prevent old samples from being regenerated."

Danke für die Erklärung, dann wird werden beim Lesen also die "Samples to read" auf der DAQ-Karte gepuffert und dann als Paket mit Zeitstempel über USB verschickt wenn ich es richtig verstanden habe.
Aber wie ist es beim Schreiben? Die Fehlermeldung habe ich noch nicht ganz verstanden
Hallo Bike,

Zitat:Eine Umstellung auf 100 Samples lesen und schreiben funktioniert leider nicht, habe ich gerade probiert. Bekomme sofort die Fehlermeldung 200290
"Sofort" wohl nicht, erst in der zweiten oder dritten Iteration… Big Grin

Du liest 100 Samples, das dauert ziemlich genau 10ms. Dann werden die Daten verarbeitet und zum zweiten DAQ-Assi zum Schreiben weitergeschoben. Dieser DaqmxTask hat dann genau 100 Samples zu verarbeiten und benötigt dazu ebenfalls ziemlich genau 10ms - dein VI wird davon aber nicht blockiert, da der Schreibvorgang im DAQmx-Treiber intern abgearbeitet wird. Soweit läuft die erste Iteration prima ab.
Jetzt kommt die zweite Iteration: du musst wieder 10ms auf einen neuen Datenblock warten - so hast du ja die Samplerate konfiguriert. Dann kommt wieder die Datenverarbeitung und die Darstellung im Chart: beides benötigt auch Zeit. Und in der Zwischenzeit ist der DAQmx-Schreibtask abgearbeit und stellt fest, dass die neuen Daten nicht rechtzeitig bereitgestellt wurden: Fehler -200290… Logisch, oder?

Nochmal der Hinweis:
- Verzichte auf DAQAssis, die machen ein VI nicht schneller.
- Schau dir die BeispielVIs an, da wird das Vorgehen für so ziemlich alle DAQmx-Dinge erläutert!
Referenz-URLs