13.02.2008, 11:44
Hallo,
mein Programm besteht aus einer Mainloop, welche mit ca. 20Hz durchlaufen wird.
Innerhalb dieser werden Analogsignale mit einer kleineren Frequenz eingelesen (5Hz). Um das Signal/Rausch Verhältnis zu verbessern bilde ich den Mittelwert aus 50 Einzelmessungen (Konfiguration: 6 Kanäle single-ended, kontinuierliche Abtastung, rate=50*5=250SpS) und lese entsprechend 50 Werte mit dem DAQ-Lesen aus. Damit das funktioniert und die Hauptschleife nicht durch das DAQ-Lesen ausgebremmst wird, habe ich das TimeOut des DAQ-Lesen auf 0 gesetzt, so dass nur die angegebene Datenmenge gelesen oder ein Fehler ausgegeben wird, falls noch keine 50 Samples durchgeführt wurden. Die Schleife kann sich somit mit einer höheren Frequenz wiederholen. Es werden also bei ca. jedem vierten Schleifendurchlauf analoge Daten ausgelesen, ansonsten gibt die Funktion den Fehler -200284 aus.
Dies funktioniert, jedoch liefert das DAQ-Lesen manchmal nur noch diesen Fehler (-200284) und es können keine Daten mehr gelesen werden. Erst nach einem DAQ-Stop funktioniert dies wieder. Meist tritt der Fehler auf, wenn andere Programme geöffnet wurden, welche zu Beispiel USB-Ressourcen nutzen (ich verwende einen USB-Hub).
Ist dieser Fehler zu beheben oder gibt es eine andere Möglichkeit analoge Daten mit einer festen, aber kleineren Abtastrate innerhalb einer schnellen Schleife auszulesen (evtl. ein DAQ Ereignis oder so)?
Vielen Dank!
s
PS.: ich verwende ein NI-USB6009 mit NI DAQmx8.6 in LabVIEW8.5
mein Programm besteht aus einer Mainloop, welche mit ca. 20Hz durchlaufen wird.
Innerhalb dieser werden Analogsignale mit einer kleineren Frequenz eingelesen (5Hz). Um das Signal/Rausch Verhältnis zu verbessern bilde ich den Mittelwert aus 50 Einzelmessungen (Konfiguration: 6 Kanäle single-ended, kontinuierliche Abtastung, rate=50*5=250SpS) und lese entsprechend 50 Werte mit dem DAQ-Lesen aus. Damit das funktioniert und die Hauptschleife nicht durch das DAQ-Lesen ausgebremmst wird, habe ich das TimeOut des DAQ-Lesen auf 0 gesetzt, so dass nur die angegebene Datenmenge gelesen oder ein Fehler ausgegeben wird, falls noch keine 50 Samples durchgeführt wurden. Die Schleife kann sich somit mit einer höheren Frequenz wiederholen. Es werden also bei ca. jedem vierten Schleifendurchlauf analoge Daten ausgelesen, ansonsten gibt die Funktion den Fehler -200284 aus.
Dies funktioniert, jedoch liefert das DAQ-Lesen manchmal nur noch diesen Fehler (-200284) und es können keine Daten mehr gelesen werden. Erst nach einem DAQ-Stop funktioniert dies wieder. Meist tritt der Fehler auf, wenn andere Programme geöffnet wurden, welche zu Beispiel USB-Ressourcen nutzen (ich verwende einen USB-Hub).
Ist dieser Fehler zu beheben oder gibt es eine andere Möglichkeit analoge Daten mit einer festen, aber kleineren Abtastrate innerhalb einer schnellen Schleife auszulesen (evtl. ein DAQ Ereignis oder so)?
Vielen Dank!
s
PS.: ich verwende ein NI-USB6009 mit NI DAQmx8.6 in LabVIEW8.5