LabVIEWForum.de - Ringbuffer zu XY-Graph

LabVIEWForum.de

Normale Version: Ringbuffer zu XY-Graph
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe ein Messsystem welches kontinuierlich Messdaten mit zugehörigen Timestamps liefert. Ich möchte diese Daten nun gerne in einem Ringbuffer speichern und zusätzlich in einem Graphen darstellen. Zur Zeit verwende ich dazu einen XY Graphen weil dieser mir erlaubt, Werte mit zugehörigen (unregelmässigen) Timestamps darzustellen. Ich habe den Code sowie ein Screenshot davon angehängt.

Das Problem ist nun, dass durch die Verwendung des Ringbuffers der erste Array-Eintrag nicht dem (zeitlich) ersten Eintrag im XY-Graphen entspricht und dieser somit eine gerade Linie vom letzten zum ersten Element zieht (siehe angehängte Grafik). Dies ist sehr unschön und ich möchte das gerne vermeiden - nur weiss ich nicht wie man das am besten macht? Die Verwendung eines Wavefrom Charts scheint mir nicht geeignet zu sein da die Timestramps nicht regelmässig verteilt sind. Eine Alternative wäre wohl, die Elemente des Ringbuffers jedes mal neu anzuordnen aber das scheint mir zu ineffizient zu sein.

Hat jemand von euch eine gute Lösung parat?

Danke und Gruss,
Christoph
Hallo Christoph,

vorweg: ich urteile anhand des Bildes, das VI kann ich nicht öffnen.

Ringbuffer:
- Man initialisiert das Schieberegister mit einem Array gewünschter Größe
- man fügt ersetzt neue Elemente mittels eines mitgeführten Index in diesem Array

Ringbuffer mit Element0=neuestes Element:
- man rotiert das Array um eine Position und ersetzt immer Element 0...
[attachment=43670]

Tipp zu deiner FGV:
Der "Action"-Anschluss sollte außerhalb aller Strukturen liegen. NI empfiehlt dies für bessere Compiler-Ergebnisse...
Hallo Gerd,

danke für die Hilfe. Ist es nicht etwas ineffizient, wenn ich jedesmal das ganze Array rotieren muss? Oder macht Labview das intern effizient (Pointer-Liste oder so ähnlich)?

Gruss,
Christoph
Hallo Christoph,

LabVIEW ist da effizienter, als man vielleicht denkt Smile
(21.02.2013 00:17 )eisbrand schrieb: [ -> ]ich habe ein Messsystem welches kontinuierlich Messdaten mit zugehörigen Timestamps liefert. Ich möchte diese Daten nun gerne in einem Ringbuffer speichern und zusätzlich in einem Graphen darstellen. Zur Zeit verwende ich dazu einen XY Graphen weil dieser mir erlaubt, Werte mit zugehörigen (unregelmässigen) Timestamps darzustellen.
Das sieht aber ganz danach aus, dass dein aufwändiges Programm mit XY-Grapch und selbsgestricktem Ringpuffer nur aus mangelhaften Labview-Wissen heraus so entstanden ist.
Denn: für die Aufgabe ist das Signalverlaufsdiagramm massgeschneidert. Viele wissen allerdings nicht, dass es sich auch für die Darstellung nicht äquidistanter Zeitverläufe eignet. Das ist wohl auch Dein Problem.
Referenz-URLs