' schrieb:Wie man im Screenshot sieht, werden die Messdaten nicht kontinuierlich aufgenommen sondern immer in einem Puffer von x Samples.
Die Ausdruckweise "nicht kontinuierlich aufgenommen" würde ich hier nicht verwenden. Sie ist im gegebenen Zusammenhang misverständlich.
Die Daten selbst werden natürlich kontinuierlich aufgenommen. Dafür sorgt der DaqMX (resepktive der MAX). Der hat nämlich selber einen Zwischenpuffer, der von deinem Puffer der Größe 400 völlig unabhängig ist. Das bedeutet letztendlich, dass die Daten für sich gesehen nie einen Sprung haben können!
Zitat:Nach dem "DAQmx - Lesen" sollen die Signalverlaufsdaten "aneinander gereiht" werden, so dass für die Verarbeitung keine separierten 400-Sample-Stückchen anfallen.
Genau so mach ich das auch immer. Nicht mit Signalverlauf, sondern nur mit 2DArr. Die Zeitbezug ergibt sich relativ zur ersten Datensatz.
Zitat:Damit der Graf trotzdem nicht immer länger wird und man überhaupt nichts mehr sieht, werden nur jeweils die letzten 400 (oder eben x vom User eingestellten) Samples im Graf gezeichnet.
Würde ich auch so machen - wenn meine Messungen nicht nach maximal 3 Minuten von selbst beendet wären.
Zitat:Das Problem hier ist zum einen natürlich der Speicher, der bei einer langen Messung extrem groß sein müsste.
Sehe ich überhaupt kein problem drinn. Solange eine annehmbare Maximalzeit (bei einem Raster von 1ms) nicht überschritten wird. Das (2D-)Array wird für die maximale Auslastung initialisiert. Ein mitlaufender Zähler zeigt die tatsächliche Anzahl der Elemente an.
Zitat:Also müsste man sozusagen 'nacheilend' das Array, in dem alles aneinander gerieht wird, auch wieder löschen...?
Im Prinzip auch kein Problem (nur eine Arbeit): Einfach einen Ringpuffer verwenden. Die Daten, die vom DaqMX gelesen werden, werden in den Ringpuffer, der ein 2DArr ist, geschrieben. Dieses Array wird mit wenigen (LV-)Befehlen in zwei Teile zerlegt, die hintereinander gesetzt werden. Grenze für die beiden Teile ist die Schreibposition des Ringpuffers.
Zitat:Problematisch ist aber auch wie man überhaupt wieder sauber einen Signalverlauf erzeugt.
Ich verwende keinen Signalverlauf. Nur 2DArr. Der zeitliche Zusammenhang ist durch das Abtastraster im MAX fetsgelegt.
Zitat:Hier frage ich mich eh: Wieso gibt es nur EINEN Zeitstempel alle 400 (bzw x) Samples? Sollte es nicht zu jedem Sample einen Zeitstempel geben?
Der Abstand der Messwerte innerhalb eines 400er-Samples ist konstant(!) und festgelegt(!). Es ist also ausreichend, den Start der 400 Samples zu wissen. Beachte, dass der Zeitstempel Datum und Uhrzeit angibt - was aber für manche Messungen überhaupt nicht relevant ist.