' schrieb:Ich versteh' da was nicht ...
Parallele While-Schleife zu was denn? Wenn er 20k Samples in 10 Sekunden haben will, warum stellt er nicht einfach den Modus auf endliche Anzahl, die Anzahl der Samples beim 'DAQTiming VI' auf 20k und beim 'DAQRead VI' auf z.B. 50 Samples und die Sampling-Rate auf 2kHz und fertig. Wozu braucht man jetzt 'ne Queue oder Melder?
Ich muss auch noch meinen "Senf" dazugeben. Entstanden ist der Hinweis mit parallele Schleifen/Queues etc. aus der anfangs unvollständigen Beschreibung des Thread-Starters. Da stand nur was von "Einlese-VI", das hätte sonstwas sein können, z.B. irgendein DLL-Aufruf für eine Nicht-NI-Hardware, wo man sich jeden Messwert einzeln abholen muss. Dann muss die Einlese-Loop natürlich "so schnell wie möglich" laufen. Aber dann sollte man nicht noch das Abspeichern der Werte in einem File in dieselbe Loop setzen, das kostest schließlich Zeit und bringt die beschriebene "Timed Loop" mglw. nur unnötig aus dem Takt. Wenn das Abspeichern auch noch schlecht programmiert ist, wird in jedem Schleifendurchlauf "File geöffnet -> Wert geschrieben -> File geschlossen". Alles so Anfängerfehler, die bei Verwendung von Express-VIs oder des High-Level-VI "Write To Spreadsheet-File" gerne gemacht werden.
Deshalb, DAQ und File-IO in diesem Fall lieber trennen.
Da wir inzwischen bei der Datenerfassung bei DAQmx sind, sieht die Sache wieder anders aus. Jetzt kann ich den Datenerfassungstakt der DAQ-Karte überlassen, das Aufsammeln der erfassten Daten dem DAQmx-Treiber, und mir immer Pakete von Daten holen. Wenn diese Abholschleife nur noch mit z.B. 10 Hz läuft, ist auch der gleichzeitige File-IO nicht mehr kritisch.
Gruß, Jens