LabVIEWForum.de - Wie Buffer erhöhen bei DAQ-Ausgabe im Non-Regeneration-Modus?

LabVIEWForum.de

Normale Version: Wie Buffer erhöhen bei DAQ-Ausgabe im Non-Regeneration-Modus?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich gebe Spannungen aus und nutze folgendes Beispiel als Grundlage:
Beispiele/DAQmx/Signnalerf.. ..Hardware/Erzeugung.../Spannung/Cont Gen Voltage Wfm-Int Clk-Non Regeneration.VI

Wichtig ist hier der Non-Regeneration-Modus mit Sample-Clock, den ich benötige. Nach jeder Waveform-Ausgabe wird immer ein neuer Waveform eingelesen. Das Problem das im Non-Regeneration-Modus (aber nicht im Regeneration-Modus) auftritt, ist, dass die Spannungsausgabe sehr sensibel auf Belastungen des Computers reagiert. Ich muss also irgendwie den Buffer erhöhen, so dass die Ausgabe sicher verläuft. Wie kann ich hier den Buffer einstellen?

LV 8.51
Ds hat man normalerweise kaum ein Chance das herauszufinden. Es sei denn, man ist ein gewissenhafter fleißiger Bürokrat und liest immer das Kleingedruckte bis auf die letzte Zeile.
In der Hilfe zu "DAQmx Timing" stehet also geschrieben:
[attachment=17486]

Also wenn es richtig bedienerfreundlich wäre, müßte das DAQmx Timing eigentlich so funktionieren: Wenn am Eingang "Sample Mode" "Continuous" angeschlossen ist, müßte der Eingang "Samples per Channel" automatisch umbenannt werden in "Buffer size". Aber leider ist dem nicht so.
Ich kann es gerade nicht ausprobieren, deswegen eine Frage zur Klarstellung: Wenn ich eine Samplerate von 20000 und 3 Kanäle habe und dem DAQmxTiming-Knoten 200000 Samples/Channel übergebe, dann müsste der Buffer 10s überbrücken, oder?
Wodurch ist die Obergenze des Buffers bestimmt?

Ich möchte außerdem ergänzen, dass ich das erwähnte Beispiel so abgeändert habe, dass ich nicht den Funktionengenerator benutze, sondern meine Funktion wird anderweitig manuell berechnet und liegt als Waveform vor. Ich denke das macht keinen Unterschied.
' schrieb:Ich kann es gerade nicht ausprobieren, deswegen eine Frage zur Klarstellung: Wenn ich eine Samplerate von 20000 und 3 Kanäle habe und dem DAQmxTiming-Knoten 200000 Samples/Channel übergebe, dann müsste der Buffer 10s überbrücken, oder?
Wodurch ist die Obergenze des Buffers bestimmt?

Ich möchte außerdem ergänzen, dass ich das erwähnte Beispiel so abgeändert habe, dass ich nicht den Funktionengenerator benutze, sondern meine Funktion wird anderweitig manuell berechnet und liegt als Waveform vor. Ich denke das macht keinen Unterschied.
Ja, genau so ist es. Es gilt also immer die einfache Formel Bufferzeit = Buffergröße / Samplerate. Unabhängig von der Anzahl der Kanäle oder vom Datenformet der Samples. Der Wert "Buffergröße" hat also nichts mit dem am PC dafür belegtem Speicherplatz zu tun. Korrekt dürfte die Buffergröße eigentlich gar nicht so genannt werden, sondern es müßte richtig heißen "Bufferzeit bei Samplerate 1"
Die Obergrenzen des Buffers sind die Obergrenzen des PCs. Wie man das mitbekommt, wenn man an diese Grenze stößt, weiß ich nicht. Normalerweise ist das aber angesichts der Memoryausrüstung heutiger PCs kein Thema.

Im Beispiel wurde ein Funktionsgenerator genommen, weil das ein einfach zu erzeugendes Signal ist und um das Ganze nicht mit Nebensächlichkeiten kompliziert zu machen. Da der Funktionsgenerator aber ein periodisches Signal liefert, macht das Beispiel gar kein echten Sinn: man könnte das dann einfacher machen. Sinn macht es erst, wenn man den Funktionsgenerator durch einen nicht periodichen Signal- Lifestream ersetzt - und genau das hast Du wohl getan.
Korrektur: Auch der Funktionsgenarator macht im Beispiel Sinn. Man kann ja am Generator während des Runs herumspielen.
Ok, ich denke so sollte ich es hinkriegen. Kann es aber erst in ein paar Wochen ausprobieren. Vielen Dank erstmal.
Es gibt 2 Arten vom DAQmx Timing, die beide im ersten Bild zu sehen sind. Einmal diesen Eigenschaftsknoten (im ersten Bild, links), wo ich den Bufferwert 200000 übergebe. Andererseits gibt es DAQmx Timing (im ersten Bild, rechts, Symbol mit der Uhr), wo ich die Waveform-Taktung einstelle. Wenn ich aber auf Waveform stelle, dann gibt es hier keine Möglichkeit samples per Channel einzustellen. Hierzu siehe die beiden kleinen Bilder. D.h. scheinbar sieht LV keine Möglichkeit vor bei Waveform-Timing den Buffer einzustellen, bei Sample Clock-Timing geht es aber. Man kann damm nur über den Eigenschaftsknoten den Bufferwert einstellen. Aber ich frage mich, ob dieser Wert dann überhaupt von LV regisitriert wird.
[attachment=18106]
[attachment=18107][attachment=18108]
Kann denn keiner weiterhelfen?
Referenz-URLs