LabVIEWForum.de - Nur alle 100 Iterationen neuer Messwert

LabVIEWForum.de

Normale Version: Nur alle 100 Iterationen neuer Messwert
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich benutze die USB-6210 Box. Ich habe ein einfaches Potentiometer angeschlossen und möchte nun den Spannungsverlauf aufzeichnen.
Dazu erstelle ich mir manuell ein XY Graph und lese dafür in einer While Schleife alle X ms per DAQmx Read den aktuellen Spannungswert aus.

Jedoch egal was ich in der While Schleife für eine Wait Time ausführen lasse, der aktuelle Spannungswert wird immer alle 100 Iterationen aktualisiert. Das heißt bei einer wait von 100ms sind das stolze 10sek pro Aktualisierung. Wo kann man das denn einstellen, dass der Wert nicht alle 100 Iterationen ausgelesen werden soll?

Hier mal noch der Quelltext bzw. meine VI

Danke im Voraus an die fleißigen Helfer

Ich benutze Labview 2011
Der Task scheint als virtueller Task im MAX konfiguriert zu sein. Das ist gut so, hat aber den Nachteil, das wir hier trotz gepostetem VI nichts über die Konfiguration wissen und zu Deiner Frage nichts sagen können. Vielleicht änderst Du das noch und konfigurierst alles im VI. Dann lässt sich bestimmt helfen.
Hallo Martin,

du solltest den Task auch ordentlich konfigurieren. Man sieht bei deinem VI leider nicht, wie der Task arbeiten soll: welches Timing ist eingestellt, etc. Außerdem vermisse ich jegliches Fehlerhandling im VI... Schon mal die Beispiele zu DAQmx angeschaut?

Außerdem:
- Dein Füllen der Buffer sieht "innovativ" aus. Du startest mit einem leeren Array. Dann fügst du Werte per InsertIntoArray am Anfang ein: warum nimmst du nicht einfach BuildArray?
(17.09.2012 15:13 )GerdW schrieb: [ -> ]Hallo Martin,

du solltest den Task auch ordentlich konfigurieren. Man sieht bei deinem VI leider nicht, wie der Task arbeiten soll: welches Timing ist eingestellt, etc. Außerdem vermisse ich jegliches Fehlerhandling im VI... Schon mal die Beispiele zu DAQmx angeschaut?

Außerdem:
- Dein Füllen der Buffer sieht "innovativ" aus. Du startest mit einem leeren Array. Dann fügst du Werte per InsertIntoArray am Anfang ein: warum nimmst du nicht einfach BuildArray?

Hallo ihr beiden und danke für eure Hilfe.

Zuerst: was macht denn "BuildArray" anders? Ich denke da passiert am Ende das gleiche oder nicht?

Zum Problem: das Timing war im Max falsch eingestellt. Es war "zu lesende Werte" auf 100 gestellt, was meinen Iterationen entsprach. Ich habe es auf den kleinstmöglichen Wert, nämlich 2 gestellt und es funktioniert nun wie gewünscht. Ich habe nebenbei gesagt nicht gewusst, dass es da überhaupt Einstellmöglichkeiten gibt, da ich dachte dass immer die schnellstmögliche Frequenz wünschenswert ist und somit auch ausgeführt wird. Sicher gibt es auch Fälle bei denen das nicht gewollt ist, sonst wäre diese Einstellmöglichkeit nicht vorhanden.

Danke

Gruß Martin
(18.09.2012 10:26 )MartinLoreck schrieb: [ -> ]Ich habe es auf den kleinstmöglichen Wert, nämlich 2 gestellt und es funktioniert nun wie gewünscht. Ich habe nebenbei gesagt nicht gewusst, dass es da überhaupt Einstellmöglichkeiten gibt, da ich dachte dass immer die schnellstmögliche Frequenz wünschenswert ist und somit auch ausgeführt wird.

Die Anzahl der zu lesenden Werte hat nichts mit der (Abtast-)Frequenz zu tun. Es handelt sich dabei nur um die Anzahl von Werte die im HW-Puffer der Karte auflaufen müssen/sollen, bis die SW die Werte abholt. Wenn die (Auslese-) Frequenz der SW allerdings zu langsam ist, dann gibts nen Überlauf/Fehler

A.
Referenz-URLs