Zu diesem Thema hätte ich noch eine Frage:
ich nehme 8bit digitale signale auf. Alle 250ms kommt ein neues Signal.
Also setze ich bei der Erfassung der Daten eine For-Schleife die alle 250ms ein Signal in die "Write to sprad sheet file" aufzeichnet.
Problem: alle 7-10 Signale bekomme ich eine doppelnennung eines Signals. Das soll natürlich nicht sein, denn wenn ich ein Signal auswerte das ich nicht kenne hab ich ein Problem
Woran liegt das bzw wie kann ich das beheben?
Hallo redhand,
Zitat:Also setze ich bei der Erfassung der Daten eine For-Schleife die alle 250ms ein Signal in die "Write to sprad sheet file" aufzeichnet.
Diese FOR-Loop ist nicht im angehängten VI enthalten, kann also nicht beurteilt werden...
Und du nutzt auch nicht "WriteToSpreadsheetFile"...
Allgemeine Hinweise:
- der DAQ-Assistent und das andere ExpressVI benötigen Zeit. Dies kann dir dein Schleifentiming stören...
- Windows kann dir dazwischenfunken und dein Schleifentiming stören...
Wenn man unter Windows ein möglichst genaues Samping der Messwerte haben will, sollte man das Timing dem DAQmx-Treiber überlassen (wenn die Hardware dies unterstützt) und außerdem das Producer-Consumer-Schema einsetzen, um zeitkritische Prozesse (DAQ) von unkritischen (Speicherung) zu trennen...
P.S.:
Woher weißt du, dass die Signale sich alle 250ms ändern? Wie genau ist der externe Taktgeber?
(23.09.2013 10:37 )GerdW schrieb: [ -> ]Zitat:Also setze ich bei der Erfassung der Daten eine For-Schleife die alle 250ms ein Signal in die "Write to sprad sheet file" aufzeichnet.
Diese FOR-Loop ist nicht im angehängten VI enthalten, kann also nicht beurteilt werden...
Und du nutzt auch nicht "WriteToSpreadsheetFile"...
Sorry ich habe eine komplett alte datei angehängt, mein Fehler, anbei die aktuelle!
[/quote]
P.S.:
Woher weißt du, dass die Signale sich alle 250ms ändern? Wie genau ist der externe Taktgeber?
[/quote]
Das ist die Vorgabe von meinem Gruppenleiter. Er gab uns die Steuerung.
Wenn ich die Zeit in der For-Schleife variiere, zb 280 oder 300ms werden die Fehler weniger, wobei irgendwann, wenn das Intervall zu groß wird, wieder Werte fehlen. Ist es dann überhaupt zu garantieren, dass ich alle Werte richtig bekomme?
Hallo redhand,
Zitat:Wenn ich die Zeit in der For-Schleife variiere, zb 280 oder 300ms werden die Fehler weniger, wobei irgendwann, wenn das Intervall zu groß wird, wieder Werte fehlen. Ist es dann überhaupt zu garantieren, dass ich alle Werte richtig bekomme?
Solange du dir keine Gedanke zu den Hrn. Nyquist und Shannon machst, wohl eher nicht:
Wenn du Werte sicher erfassen willst, musst die Samplerate mindestens doppelt so groß wie die höchste Signalfrequenz sein (Shannon/Nyquist-Kriterium)!
Zitat:Das ist die Vorgabe von meinem Gruppenleiter. Er gab uns die Steuerung.
Tolle Angabe...
Hintergrund: wenn die "Steuerung" ungenau arbeitet, könnte sie z.B. schon nach 249,5ms die Lichter umschalten. Du misst dagegen mit 250ms Takt (und Jitter) - irgendwann wirst du da Signale "verpassen"...
Deshalb die Frage nach dem Taktgeber! Nichtsdestotrotz: Nyquist und Grundlagen der Messtechnik/Signalverarbeitung beachten! Oder alternativ einen Triggereingang nutzen, wenn möglich...
Außerdem ist die gewählte Wartefunktion hier die falsche: du wartest "x1" ms. Dann (DATAFLOW!) rufst du noch die Speicherfunktion auf, die ihrerseits wieder Zeit "x2" benötigt. Die Schleife braucht also x1+x2 ms zum Durchlauf und startet dann erneut... Deshalb gibt es die Wartefunktion "Warten bis Vielfache"!