' schrieb:Hallo zusammen !!!
Habe mal wieder ein Problem, bei meinem DAQMx Assi hab ich auf kontinuierliche Auslese eingestellt, und die Speicherung erfolgt über eine Zeitdifferenz.
Wie kann ich nun die Speicherung so machen, dass immer exakt im Speicherintervall von n Sekunden abgespeichert wird.
Die Speicherung erfolg im Moment sehr unregelmäßig und in unterschiedlichen abständen.
Wäre für Tipps sehr dankbar.
Lg
FlorianM
Das Timing der Schleife erfolg mit dem DAQ.vi
Schließe erst mal am DAQ-Assistent Stop=false an.
Mache z.B. diese Enstellungen:
dann arbeitet das DAQ-VI so:
1.) Die Datenerfassung erfolgt kontinuierich.
2.) Bei Aufruf des VI in der Schleife werden immer 100 Werte gelesen. Fall die zum Zeitpunkt des Aufrufs noch nicht im Buffer sind (und davon ist in der Regel auszugehen) wartet das VI solange, bis die 100 Werte erreicht sind.
3.) Die Schleifen-Taktzeit ist #_of_Samples/Samplerate, hier also 100/100 = 1s. Du brachts also nur bei jedem Schleifendurchlauf abzuspeichern.
An Deinen Uhren sehe ich den Versuch, das Speicherintervall variabel zu machen. Hierfür gibt es zwei Möglichkeiten:
1) Speichern nur nach jedem n-ten Schleifendurchlauf, so daß Du dann wie hier im Bespiel alle 1,2,3s,, abspeichern kannst
2) Besser: Den DAQ-Assistenten in eine normale DAQ-Task umwandeln (rechte Maustaste). Damit hast Du dann vom Programm aus Zugriff auf Samplerate, Anzahl der Samples usw.
Anmerkung: Das Abspeichern und und Anzeigen der Werte wird bei Dir ein Mal pro Schleifendurchlauf ausgeführt, und zwar wird dazu (mit den Werten das Beispiels) der jeweils der Letzte der 100 Werte verwendet. Die anderen 99 Werte sind für die Katz. Besser wäre natürlich zumindest ein Mittelwertbildung über alle 100 Werte.