LabVIEWForum.de - XY Graph mit fortlaufender Zeit

LabVIEWForum.de

Normale Version: XY Graph mit fortlaufender Zeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe vermutlich kein sehr großes Problem aber komme nicht wirklich weiter. Ich möchte einen XY-Graph sowohl mit 2D-Werten (Array) als Y-Werte speisen als auch mit einem Zeitstempel, der auf der X-Achse die absolute Zeit anzeigt. Zeitstempel lassen sich aber nicht als dynamische Daten darstellen, wie also bekomme ich diesen auf die X-Achse gebannt?

Zudem wüsste ich gerne noch folgendes: Wie liest der Graph die 2D-Daten aus? Spalten- oder Zeilenweise? Mom ist jede Zeile eine zeitlich fixe Darstellung mehrerer Graphen, dh je weiter man nach unten in den Spalten wandert desto weiter läuft auch die Zeit.

Vielen Dank für die Hilfe im Vorraus. Habe mit der Suchfunktion leider nicht passendes gefunden. Ansonsten bitte ich den Admin den Thread zu schließen oder zu verlinken.
Wenn ich dich richtig verstehe, dann geht das so, wie du willst, nicht. Ein Datenformat "1D-Array X-Werte" und "2D-Array y-Werte" für mehrere Plots versteht der XY-Graph nicht.

Du musst jeden Plot einzeln aufbauen, z.B. in der Form Cluster, bestehend aus 2 1D-Arrays (1x X-Werte, 1x Y-Werte). Dann ein Array of Cluster für Multiplot.

Am besten suchst du mal im NI-Examplefinder nach den Beispielen zum XY-Graph, da siehst du Datenformate, die kompatibel sind.

Gruß, Jens
Fantastisch schnelle Antwort. Hatte mir in der Zwischenzeit auch schon die Beispiele angeschaut. Ich vermute mal, dass bei solchen Problemstellungen die Expressbausteine eher ungeeignet sind. Bin erst seit knapp 2 Monaten mit LabVIEW zugange und tue mir an manchen Sachen schwer, da sind die Expressbausteine oft eine Hilfe.

Edit: Ich habe verstanden was das Problem ist, Jens. Wenn ich die Dimension eines Arrays herabsetze, wie funktioniert das? Gehen dabei Informationen verloren?
Mein Hauptproblem bleibt es aber dennoch die Systemzeit auf der X-Achse mitlaufen zu lassen. Wie erstelle ich denn ein Array aus dem Zeitstempel? Ich finde das bisher alles recht umständlich gelöst in LabVIEW und steige nicht so ganz dahinter.
' schrieb:Fantastisch schnelle Antwort. Hatte mir in der Zwischenzeit auch schon die Beispiele angeschaut. Ich vermute mal, dass bei solchen Problemstellungen die Expressbausteine eher ungeeignet sind.
Gut erkannt, die sind Sch...
' schrieb:Bin erst seit knapp 2 Monaten mit LabVIEW zugange und tue mir an manchen Sachen schwer, da sind die Expressbausteine oft eine Hilfe.
Fehleinschätzung, lieber LV richtig lernen ohne zuviel Express...
' schrieb:Edit: Ich habe verstanden was das Problem ist, Jens. Wenn ich die Dimension eines Arrays herabsetze, wie funktioniert das? Gehen dabei Informationen verloren?
Du sollst nicht die Dimension des 2D-Array herabsetzen, sondern eine Zeile (bzw. Spalte - je nachdem wie die Daten in deinem 2D-Array angeordnet sind) auswählen. Das geht über die Funktion "Index Array"
' schrieb:Mein Hauptproblem bleibt es aber dennoch die Systemzeit auf der X-Achse mitlaufen zu lassen. Wie erstelle ich denn ein Array aus dem Zeitstempel? Ich finde das bisher alles recht umständlich gelöst in LabVIEW und steige nicht so ganz dahinter.
Das kommt auf die Sichtweise an. Mit der Erfahrung wird das schon.
Woher kommen eigentlich deine Daten? Sind die Zeitschritte mglw. äquidistant, sprich, hast du immer dasselbe Delta T. Dann bietet sich der Waveform-Graph zur Darstellung an, da brauchst du das 2D-Array nicht aufsplitten.

Gruß, Jens
Hier mal als Übersicht die 4 möglichen Datenformate, die man einem XY-Graphen anbieten darf. (Statt der Zeit sind natürlich auch normale Werte möglich)
[attachment=22105]

Das untere Format geht von Datenpunkten aus. Ein Datenpunkt P[x;y] ist ein Cluster, der entsprechende Plot ist ein Array von Datenpunkten. Das ist ein Format, das den reinen Mathematikern und Logikern am meisten gefallen dürfte.

Dummerweise ist dieses Format aber in den meisten Anwendungen umständlicher zu erzeugen als das Fomat oben. Deshalb wird das fast ausschließlich benutzt. Bei diesem Fomat sind die Inputs getrennte Arrays für x- und y-Werte.

Eine gemeinsame x-Achse für mehrere Plots vebietet sich selbstverständlich beim XY-Graphen, denn das Besondere des XY-Graphen ist ja gerade, daß zu jedem Plot ganz andere x-Werte gehören können. Und nun für den Spezialfall, daß das mal nicht der Fall ist, noch ein spezielles Format zu implementieren, wäre wohl keine gute Idee.
Das hat mir schon mal weitergeholfen Lucky. Nun habe ich eine Vorstellung welche Formate LabVIEW erkennt und wie man sie verknüpfen kann für einen XY-Graphen. In meinem Fall sind die Punkte aber nicht äquidistant. Es handelt sich um eine Langzeitmessung, die Kurzzeitmessergebnisse immer anfügt. Ergo können zwischen zwei Messungen auch mal 5 Tage vergehen, wenn die Maschine nicht läuft. Meine Vorstellung war, dass die x-Achse mit der Zeit "mitwächst", sodass immer der komplette Messzeitraum sichtbar ist. Wenn ich also ein Jahr lang messe, hätte ich gerne das komplette Jahr auf der x-Achse. Dass das mit der Zeit unübersichtlich wird weiss ich, es geht erstmal nur darum ob und wie ich das implementieren könnte.

Vielen lieben Dank für die Hilfe bisher. Ich habe nun schon einiges schaffen können.
' schrieb:Meine Vorstellung war, dass die x-Achse mit der Zeit "mitwächst", sodass immer der komplette Messzeitraum sichtbar ist. Wenn ich also ein Jahr lang messe, hätte ich gerne das komplette Jahr auf der x-Achse. Dass das mit der Zeit unübersichtlich wird weiss ich, es geht erstmal nur darum ob und wie ich das implementieren könnte.
Da hast Du ausgesprochenes Glück. Das "Mitwachsen der X- Achse" ist ja überhaupt kein Problem, dafür gibt es Autoscale.
Und beim Sigalverlaufsdiagramm hat man die Möglichkeit, auch nicht äquidistante Werte aufzuzeichnen, allerdings ist das Eingabeformat dann etwas tricky.
[attachment=22200]
Lv80_img[attachment=22201]
Mit dem Code in der While-Schleife habe ich versucht, das Gesetz des radioaktiven Zerfalls (Die Tickfolge beim Geigerzähler) nachzuahmen.
(Frage an die Experten: Geht das auch anders, etwa mit einer LV-Funktion?)
Vielen Dank. Nun funktioniert alles bestens. Ich habe ein bisschen gebraucht aber es läuft. Jetzt weiss ich auch wo man vernünftige, schnelle Hilfe bekommt. :-)
Referenz-URLs