INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Ringbuffer zu XY-Graph



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

21.02.2013, 00:17
Beitrag #1

eisbrand Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Feb 2013

2012
2007
DE_EN



Ringbuffer zu XY-Graph
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


Angehängte Datei(en) Thumbnail(s)
       

12.0 .vi  MinimalSample.vi (Größe: 16,41 KB / Downloads: 154)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.02.2013, 11:39 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2013 11:42 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ringbuffer zu XY-Graph

Akzeptierte Lösung

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...
   

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

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2013, 12:29
Beitrag #3

eisbrand Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Feb 2013

2012
2007
DE_EN



RE: Ringbuffer zu XY-Graph
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2013, 12:51
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ringbuffer zu XY-Graph
Hallo Christoph,

LabVIEW ist da effizienter, als man vielleicht denkt Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2013, 13:33 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2013 13:35 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Ringbuffer zu XY-Graph
(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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: