Erledigt - oder auch nicht
Was Du gemacht hast - nicht warten, bis alle Daten im Buffer sind und dann alles auf einmal auslesen, sondern schon vorher in kleineren Portionen schon erzeugte Daten aus dem Puffer zu holen -, ist absolut üblich. Nur muß man dann natürlich DAQmxRead mehrfach aufrufen, d.h in eine For-Schleife stecken. Also in Deinem VI ganz konkret: bei 1000 Samples insgesamt und Auslesen zu je 100 Samples gehört DAQmxRead in eine For-Schleife mit N=10.
[
attachment=48577]
(19.02.2014 23:37 )Lucki schrieb: [ -> ]Erledigt - oder auch nicht
Was Du gemacht hast - nicht warten, bis alle Daten im Buffer sind und dann alles auf einmal auslesen, sondern schon vorher in kleineren Portionen schon erzeugte Daten aus dem Puffer zu holen -, ist absolut üblich. Nur muß man dann natürlich DAQmxRead mehrfach aufrufen, d.h in eine For-Schleife stecken. Also in Deinem VI ganz konkret: bei 1000 Samples insgesamt und Auslesen zu je 100 Samples gehört DAQmxRead in eine For-Schleife mit N=10.
Vielen Dank Lucki. Nur im Moment erkenne ich den Unterschied in meinem speziellen Fall vermutlich noch nicht
Ich versuche mich mal in einer Erklärung. Verbessere mich bitte!
Wenn ich die Daten kontinuierlich mittels For-Schleife aus dem noch nicht gefüllten Buffer lese, spare ich dadurch Zeit, dass die For-Schleife schon währen der Buffer-Befüllung ausließt. Korrekt?
An der eigentlichen Verarbeitung ändert sich dadurch ja nichts. In beiden Fällen werden die Messdaten erst an das HauptVI übergeben wenn alle 1000 Samples ausgelesen sind. Meine Graphen im HauptVI zeigen also in beiden Fällen keinen kontinuierlichen Vorgang sondern auf einmal alle 1000 Samples.
Vielen Dank für die Verbesserungen an meinem VI
Gruß
Hallo samuel,
Zitat:In beiden Fällen werden die Messdaten erst an das HauptVI übergeben wenn alle 1000 Samples ausgelesen sind. Meine Graphen im HauptVI zeigen also in beiden Fällen keinen kontinuierlichen Vorgang sondern auf einmal alle 1000 Samples.
Das aufgrund von DATAFLOW deine Daten erst nach Abarbeitung des subVI im MainVI angezeigt werden, liegt nicht an DAQmx, sondern an deiner Programmierung.
Du kannst durchaus deinen Graph öfter aktualisieren, musst dir dann aber andere Methoden der Datenübergabe überlegen. "Producer-Consumer" wäre das Stichwort dazu…
Zitat:Das aufgrund von DATAFLOW deine Daten erst nach Abarbeitung des subVI im MainVI angezeigt werden, liegt nicht an DAQmx, sondern an deiner Programmierung.
Du kannst durchaus deinen Graph öfter aktualisieren, musst dir dann aber andere Methoden der Datenübergabe überlegen. "Producer-Consumer" wäre das Stichwort dazu…
Mir ist klar das dies meiner Programmierung geschuldet ist. Ich wollte damit nur ausdrücken, dass sich Lucki's Änderungen ausschließlich auf die Geschwindigkeit des SubVI's auswirken (was natürlich klasse ist).
Die Producer Consumer Methode mit Queue hatte ich mir Anfangs überlegt. Allerdings ist die kontinuierliche Anzeige bei meiner Anwendung nicht nötig da meistens sowieso niemand zuschaut (Die gespeicherten Daten werden sowieso mit Matlab noch einmal angeschaut, gefiltert usw.)
Gruß