LabVIEWForum.de - Analog Output eines 1D-DBL-Arrays

LabVIEWForum.de

Normale Version: Analog Output eines 1D-DBL-Arrays
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Problem:
Aus einem 2D-Array erhalte ich einen via DAQmx auszugebenden zeitlichen Spannungsverlauf. Die Spannungsrampen varieren in ihrem zeitlichen Verlauf von wenigen Millisekunden bis mehreren Stunden.
Beispiel:
0 5 0 7 -5 Spannung in [V]
0 1 1 600 6000 Zeitspanne in [s] (Differenz zwischen Anfangs- und Endzeit einer Rampe)

Dieser gewünschte Spannungsverlauf wird nun mit der Rampenfunktion auf Zwischenwerte im zeitlichen Abstand von 1 ms interpoliert und in ein 1D-DBL-Array gespeichert.
Dieses 1D-DBL-Array möchte ich nun mit einer Samplingrate von 1kHz (getaktet) über DAQmx ausgeben.

Als Ausgang verwende ich das Beispielprogram von NI: NI DAQmx: Continuously Generate Waveform - Non Regeneration - Rapidly Updating
http://www.ni.com/example/25370/en/

Hierin habe ich nun den Waveform-Generator durch ein beispielhaft ansteigendes 1D-DBL-Array bestehend aus 50000 Werten ersetzt.
Es können im Puffer bei einer Samplingrate von 1kHz allerdings nur 10000 Samples gespeichert werden. Meine Frage ist also, wie ich jeweils die nächsten 10000 Samples in den Puffer "nachschieben" kann, sobald die vorherigen Samples alle ausgegeben wurden.
Desweiteren ergibt sich natürlich das Problem, dass bei längeren Zeitspannen meine Array-Größe aus dem Ruder läuft und zu einem Speicherüberlauf führt. Hat hier jemand eine Idee, wie die beiden Probleme elegant gelöst werden könnte?

Ich bin relativer Neuling was LabVIEW anbelangt und bedanke mich recht herzlich für hilfreiche Tipps!
Hallo Kyuuu,

Zitat:Meine Frage ist also, wie ich jeweils die nächsten 10000 Samples in den Puffer "nachschieben" kann, sobald die vorherigen Samples alle ausgegeben wurden.
Probiere doch mal das Beispiel-VI "DAQmx: Voltage (non regeneration) - Continuous Output", das sollte das machen, was du suchst…

Zitat:Hat hier jemand eine Idee, wie die beiden Probleme elegant gelöst werden könnte?
Wie wäre es mit einer Statemachine, die deine Abläufe in kleineren Steps abarbeitet? Einen 600s/6000s-Step kann man doch auch in 60 oder 600 Steps mit 10s Länge unterteilen…

Ansonsten: Profil_ergaenzen, LV8.2 ist wohl nicht mehr aktuell!
Was spricht denn eigentlich dagegen, nach jedem Ablauf einer Zeitspanne einfach die neue Spannung als Einzelwert auszugeben?
Referenz-URLs