' schrieb:Die Idee mit dem Schleifenzähler ist mir auch schon mal gekommen. Was genau meinst du mit der Erfassungsrate? Die Samplerate der Messkarte? Hat diese denn direkten Einfluss auf die Dauer eines Schleifendurchlaufs?
Ja natürlich, denn das Lesen der DAQ-Werte erfolgt ja in der Schleife, und die Schleifendurchlauf-Dauer muß sich ja mit der Samplerate synchronisieren. Unprofessionell oder falsch ist es, in so einer Schleife Wartezeiten vorzusehen, die Synchronisation besorgt das DAQ-Lesen selbst.
Ich gehe mal von kontinuierlicher Datenerfassung aus. Die Schleife synchronisiert sich so:
1) DAQmx Lesen Anzahl der zu lesenden Werte: -1
Es werden alle Werte aus dem Buffer gelesen. Wenn allerdings noch kein Wert im Buffer ist, dann wartet das Vi Lesen, bis ein Wert im Buffer ist. Die Schleifen- Durchlaufrate kann als nicht schneller sein, als die Samplerate.
2) DAQmx Lesen, Anzahl der zu lesenden Werte: 1
Es ist das gleich wie 1.), allerdings ist hier ein Buffer-Überlauf nicht ausgeschlossen. Wenn beispielweise bei 1kHz Abtastrate die Verarbeitungszeit in der Schleife größer asl 1ms ist (oder wenn Anfänger darin eine sowieso überflüssige Wartezeit von >= 1ms einprogrammiert hat), dann sammelt sich im Buffer natürlich mehr an, als abgeholt wird, und je nach Buffergröße kommt es nach Sekunden oder Stunden zum Überlauf. (Allerdings mit Fehlermeldungen und nicht wie bei Dir ohne)
3.) DAQmx Lesen, Anzahl der zu lesenden Werte: 10
Das DAQnx Lesen wartet, bis 10 Werte im Buffer sind. Die Schleifen-Durchlaufzeit ist hier 10mal größer als die DAQ-Abtastzeit. Uhren zur Synchronisation braucht man aber auch hier nicht, da, wie gesagt, das Lese-VI wartet.
Zitat:Okay. und nun das wichtigste. Angenommen es liegt wirklich am Schleifenzähler: Was kann ich denn machen, um dieses Problem zu beseitigen? Einen Zähler benötige ich nicht zwingend....
Du hättest wenigsten verraten könne, ob Deine Abtastrate 5kHz ist, wie ich vermutet habe. Jede While-Schliefe hat einen Zähler, den kannst Du nicht herauslöschen. Wenn Du ihn nicht brauchst, dann schließe ihn doch einfach nicht an. Wie gesagt, bei LV8.2 bleibt das i bei 10^31 stehen, aber es passiert sonst nichts, die Schleife läuft weiter. Und wie gesagt, man kann auch die anfallenden Werte z.B 1000-Stückweise in der Schleife abholen, dann ist die Zeit bis zum Überlauf des Schleifenzälers 1000 fach größer.