LabVIEWForum.de - Zoomen in Signalverlaufsgraph bei noch laufender Messung?

LabVIEWForum.de

Normale Version: Zoomen in Signalverlaufsgraph bei noch laufender Messung?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi liebe Leut,
ich hab die nächste Frage. Die Situation:

Es handelt sich um eine Messung über mehrere Stunden. Alle zwei Sekunden wird ein Messwert aufgezeichnet und in einem Signalverlaufsdiagramm mit automatisch skalierter X-Achse geplottet. Das Diagramm hat eine sehr hohe "Historie-Länge" und zeigt letztendlich sämtliche Messdaten gleichzeitig an.

Die Frage:
Gibt es irgendwie die Möglichkeit noch bei laufender Messung in das Diagramm hineinzuzoomen, ohne dass die Ansicht dauernd wieder zurückspringt, wenn der nächste Messwert erfasst und geplottet wird wird.

Also man müsste es z.B. irgendwas hinkriegen, dass bei Verwendung der Zoomtools die Aktualisierung des Diagramms kurzzeitig unterbrochen wird. Keine Ahnung ob das eine gute Lösung wäre bzw. ob es so funktionieren würde und erst Recht nicht wie man es machen würdeWink- aber des wäre meine Idee
Hi,

ich skaliere bei sowas das Verlaufsdiagramm neu, dass man immer die letzten ca. 1000 Messwerte sieht. Dann sieht man immer die aktuellen Werte, für Auswertung brauch ich ja tendentiell den ganzen Datensatz, den ich irgendwann ja speichere...

Wäre das vielleicht eine Lösung für Dein eigentliches Problem? Wenn man es so machen willst wie Du oben schreibst: Producer-Consumer-Struktur mit Daten, dann kann man das Zoomereignis abfangen und die Daten während des zoomens in der Queue puffern...

ch
Zitat:ich skaliere bei sowas das Verlaufsdiagramm neu, dass man immer die letzten ca. 1000 Messwerte sieht. Dann sieht man immer die aktuellen Werte, für Auswertung brauch ich ja tendentiell den ganzen Datensatz, den ich irgendwann ja speichere...

Das funktioniert leider nicht, wenn man Messwerte die früher in der Zeit liegen sehen will. Wenn z.B. gerade Messwert 2000 aufgenommen wird und ich mir gerne 100 - 200 anschauen will, dann springt er sofort wieder hoch auf 1900 -2000 wenn der nächste Wert da ist.

Zitat:dann kann man das Zoomereignis abfangen und die Daten während des zoomens in der Queue puffern...
Das ist prinzipiell eine gute Idee, aber als ich das Programm gebaut habe, habe ich keine Event-Struktur verwendet. Ich fürchte es ist ein recht großer Akt, das jetzt alles umzubauen, weil das Programm doch recht umfassend ist. Aber ich fürchte es ist echt die einzige Möglichkeit...
Morgen!

' schrieb:Das funktioniert leider nicht, wenn man Messwerte die früher in der Zeit liegen sehen will. Wenn z.B. gerade Messwert 2000 aufgenommen wird und ich mir gerne 100 - 200 anschauen will, dann springt er sofort wieder hoch auf 1900 -2000 wenn der nächste Wert da ist.
Klar, ich konnte aus Deinem Post nur nicht wirklich erkennen, ob du wirklich Werte 100-200 brauchst oder ob tatsächlich vielleicht die letzten 50 langen - und das mit dem neu skalieren ist deutlich einfacher als was mit Zoomen etc. Hätte ja funktioneren können...Wink

' schrieb:Das ist prinzipiell eine gute Idee, aber als ich das Programm gebaut habe, habe ich keine Event-Struktur verwendet. Ich fürchte es ist ein recht großer Akt, das jetzt alles umzubauen, weil das Programm doch recht umfassend ist. Aber ich fürchte es ist echt die einzige Möglichkeit...
Naja, du musst doch nur an der Stelle, wo du die Daten in dein Diagramm schreibst statt des Diagramms eine Queue setzen. In einer parallelen Schleife baust Du 'ne State-Machine mit 'ner Event-Struktur. Dann noch überlegen, ob du manuell Daten aktualisieren willst oder doch automatisch (z.B. per Timeout der Eventstruktur)...

Viel Erfolg,

ch
Zitat:In einer parallelen Schleife baust Du 'ne State-Machine mit 'ner Event-Struktur

Du meinst eine, mit den beiden Zuständen: Daten aktualisieren bzw. Daten nur in Queue ablegen und nichts aktualisieren?

Ich hab es jetzt mit der Timeout Variante gemacht. Also nach einer Minute geht das Aktualisieren automatisch weiter.
Momentan wird lediglich das "Skalieren" Event abgefangen. Also wenn ich manuell andere Achsenwerte an der X-Achse eintrage. Wie würde ich denn das "Zoom in Diagramm" mit den Zoom-Tools als Event abfangen können? Das hab ich nicht gechecktSad

Wäre es irgendwie möglich, das mir das einer als zusätzlichen Eventcase mit einbaut bzw. erklärt? Oder geht das nicht so einfach?

Wie auch immer, hier ist jedenfalls mein VI :]
Lv09_img2
[attachment=29500]

Und vielen Dank dir, chrissy
Ok, anders gefragt:
Wie krieg ich raus ob bei einem Maus-Click Event der Klick auf dem Zoom Tool stattgefunden hat? Irgendwie mit nem Methodenknoten und dann Koordinaten -> XY umwandeln lassen und dann testen ob es innerhalb des Quadrates des Zoom-Buttons liegt? Das ist ein bisschen umständlich fürchte ich. Aber wenn dass denn die einzige Möglichkeit wäre: Wie finde ich heraus, welche XY Werte der Zoom-Button hat?
Es gibt ein Ereignis, das dir mitteilt, ob gezoomt wurde mitsamt den Koordinaten etc.:

[attachment=29525]

Meinst du sowas?
Das ist allerdings kein Filter-Event. D.h. du kannst das Zoomen damit nicht unterdrücken.
ah, perfekt. Ich hatte das zuvor in meinem VI hier schon verwendet. Dachte aber das geht nur, bei manueller Werteingabe. Hätte es nur mal probieren sollen. Danke dirWink
Sorry, noch was hierzu:
Ich verstehe nicht, warum das Stoppen der Messdatenerfassung immer erst beim zweiten mal Zoomen funkioniert. Beim ersten mal geht es munter weiter. Hat da jemand eine Erklärung dafür?

Lv09_img2
[attachment=29566]
Da beisst sich wahrscheinlich Verschiedenes.
1. Das Zoomen kann auch 2 Events auslösen: 1x x-Scale + 1x y-Scale, je nachdem welche Zoom-Operation du auswählst.
2. Deine Achsen stehen auf Autoscale, und so wie es aussieht, wird da nochmal ein irgendein Autoscaling ausgeführt.
Ich habe das jetzt mal per Hand (sprich per Setzen der entsprechenden PropertyNodes gemacht) - nach dem Motto, wenn es nicht automatisch geht, dann muss man es halt selber machen.
Lv09_img2[attachment=29572]
Gruß, Jens
Seiten: 1 2
Referenz-URLs