LabVIEWForum.de
mehrere Graphen im XY Graph - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: mehrere Graphen im XY Graph (/Thread-mehrere-Graphen-im-XY-Graph)



mehrere Graphen im XY Graph - seuk - 09.01.2019 15:29

Hallo Zusammen,

ich habe ein Minimalbeispiel (4 plots xy Graph.vi) erstellt, in dem ich die Erfassung von vier analogen Eingängen mit je 10 Samples pro Lesevorgang mit Zufallszahlen simuliere. Ein Array aus 10 Y-Werten wird jeweils mit einem durchnummerierten Array von X-Werten in einem Cluster gebündelt.
Diesen Lesevorgang simuliere ich 10 mal und übergebe das Array in eine Anzeigeschleife. In der Anzeigeschleife kommen also 10x die 4x 10 Wertepaaren an, welche im XY Graphen angezeigt werden sollen.

Um die Historie zu speichern, befülle ich ein Schieberegister mit dem verknüpften Array. Leider zeigt der XY Graph keine vier zusammenhängen Graphen in vier Farben an.

Nach sehr langem hin und her, habe ich nun eine Lösung zusammengekriegt: Ich gehe die vier Channels durch und entnehme aus dem ankommenden Cluster die X und Y Arrays mit den 10 Samples eines Lesevorganges. Beim Hinzufügen in das jeweilige Schieberegister muss ich die Arrays transponieren, damit rechts anstatt von unten hinzugefügt wird. Schließlich erstelle ich aus den Arrays wieder ein Array aus Clustern zur Anzeige im Graphen und nun zeigt mein Graph 2 an, was eigentlich Graph 1 ohne viel Mühe schon hätte tun sollen :-)

[attachment=59680]

Gibt es vielleicht einen eleganteren, einfacheren Weg, um in der Anzeigeschleife zum gewünschten Ergebnis mit einem XY Graphen zu gelangen?

Eigentlich möchte ich live die Werte einer analogen Messung anzeigen, d.h. in der richtigen Anwendung kommt ein 1D Array aus Waveforms in der Anzeigeschleife an. An der Stelle muss ich das Signal also nochmal eine Stufe komplexer auseinandernehmen (siehe 4 plots xy Graph - waveform.vi).

[attachment=59684]

Meine "schönste" Lösung bisher ist, die Autoskalierung der x Achse zu deaktivieren und die X-Werte fest vorzugeben, d.h. durchzunummerieren. Dadurch "steht" die Anzeige und der Graph wächst von links nach rechts. Auch brauche ich so nur ein Schieberegister (siehe 4 plots xy Graph - waveform const x values.vi). Leider fallen so die Zeitangaben weg - ich kann ja die Zeitpunkte der Messung schlecht voraussagen ;-)

Falls es mit dem XY Graphen nur so geht, dient es vielleicht jemanden als Hilfe :-) Wenn man das Array der Y Werte in ein Waveform Chart gibt, erhält man auch ohne Schieberegister und viel hin und her die gleiche Anzeige.
Ich konnte nicht mehr als fünf Anhänge hinzufügen, daher hier noch ein Folgeeintrag mit dem fehlenden Screenshot und den drei VIs für ältere LV Versionen.

[attachment=59685]


RE: mehrere Graphen im XY Graph - GerdW - 09.01.2019 15:52

Hallo seuk,

Zitat:Gibt es vielleicht einen eleganteren, einfacheren Weg, um in der Anzeigeschleife zum gewünschten Ergebnis mit einem XY Graphen zu gelangen?
Garantiert!
Einfach die Daten sinnvoll zusammenpacken:
[attachment=59689]
Falls die X-Daten immer gleich sind, kann man dort auch mit einem 1D-Array arbeiten…

Zitat:Eigentlich möchte ich live die Werte einer analogen Messung anzeigen, d.h. in der richtigen Anwendung kommt ein 1D Array aus Waveforms in der Anzeigeschleife an. An der Stelle muss ich das Signal also nochmal eine Stufe komplexer auseinandernehmen (siehe 4 plots xy Graph - waveform.vi).
Für Waveforms gibt es die Funktion WDTAppendWaveforms.
Und für Waveforms verwendet man auch einen WaveformGraph statt eines XYGraph!

Zitat:Leider fallen so die Zeitangaben weg - ich kann ja die Zeitpunkte der Messung schlecht voraussagen ;-)
Wenn du mit Waveforms arbeitest, hast du eigentlich eine feste Samplerate und kannst sehr wohl die Zeitpunkte der Samples vorhersagen!

Zitat:Ich konnte nicht mehr als fünf Anhänge hinzufügen
Es gibt wohl schon länger ein Programm mit "ZIP" im Namen…


RE: mehrere Graphen im XY Graph - seuk - 10.01.2019 10:30

Hallo GerdW,

Danke für deine Antwort.

(09.01.2019 15:52 )GerdW schrieb:  Einfach die Daten sinnvoll zusammenpacken:

Falls die X-Daten immer gleich sind, kann man dort auch mit einem 1D-Array arbeiten…

Im linken Teil simuliere ich ja nur mein Analog Read - das VI um meine Messkarte auszulesen erzeugt nun mal ein 1D Array aus Waveforms, worauf ich keinen Einfluss habe.

(09.01.2019 15:52 )GerdW schrieb:  Für Waveforms gibt es die Funktion WDTAppendWaveforms.
Und für Waveforms verwendet man auch einen WaveformGraph statt eines XYGraph!

Mit der Waveform weiter zu arbeiten, macht das ganze deutlich eleganter. Vielen Dank für den Hinweis! So kann ich die Historie für den XY-Graphen sehr viel leichter erzeugen. Ich muss das Append Waveforms nur beim ersten Aufruf überspringen (bzw. wenn das Schieberegister leer ist) und das erste ankommende Array alleine weiter verwenden.

[attachment=59691]

Nun habe ich den XY Graph sowie das Waveform Chart hübsch - doch im Waveform Graph werden mir noch Daten aus 1904 angezeigt, obwohl die Zeitstempel korrekt sind. Hast du an der Stelle vielleicht auch noch einen Hinweis für mich?

(09.01.2019 15:52 )GerdW schrieb:  Wenn du mit Waveforms arbeitest, hast du eigentlich eine feste Samplerate und kannst sehr wohl die Zeitpunkte der Samples vorhersagen!

Wo du Recht hast, hast du Recht ;-)


RE: mehrere Graphen im XY Graph - GerdW - 10.01.2019 10:43

Hallo seuk,

Zitat:Nun habe ich den XY Graph sowie das Waveform Chart hübsch - doch im Waveform Graph werden mir noch Daten aus 1904 angezeigt, obwohl die Zeitstempel korrekt sind. Hast du an der Stelle vielleicht auch noch einen Hinweis für mich?
1. Rechtsklick auf den WaveformGraph.
2. Properties anzeigen -> Scales
3. Das Häkchen bei "ignore waveform time stamp" für die X-Achse entfernen…

Zu deinem VI:
[attachment=59693]
Ein paar kleine Anpassungen…


RE: mehrere Graphen im XY Graph - seuk - 10.01.2019 13:06

Fantastisch, so ist es wirklich sehr schön!