LabVIEWForum.de - Zweite y-Achse mit skalieren

LabVIEWForum.de

Normale Version: Zweite y-Achse mit skalieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich habe in meinem chart-Diagramm ein zweite y-Achse erzeugt und ihr einen Skalierungsfaktor gegeben damit ich dort eine andere Einheit habe. Nun muss ich öfters das Maximum der anderen Achse ändern. Das Problem nun ist das die zweite Achse sich nicht mitändert. Ich müsste das neue Maximum quasi bei beiden Achsen per Hand ändern. Das muss doch auch automatisch gehen oder?
Was ich schon versucht habe ist per Property-Nodes: activate y-Achse 0, Maximum auslesen, mal Skalierungsfaktor, activate y-Achse 1, und neues Maximum setzten. Nur bekomm ich Fehlermeldungen da mein Timing vom Rest überhaupt nicht mehr klappt. Also statt einer Schleifendauer von 4 ms lande ich bei weit in den Hundertern ms. Gibt es dafür nicht eine unkomplizierte Lösung?
Hm...du darfst die PropertyNodes nicht ständig beschreiben...das kostet Performance...also nur schreiben, wenn sich tatsächlich was geändert hat!

Ansonsten: VI posten!

A.
Mmm also im kleinen Rahmen geht es nun, also wenn ich es aus meinem HauptVI rausnehme und einzeln laufen lasse. Aber auch nur wenn ich die Zeit (X-Achse) klein genug halte...ich wollte mir eigentlich einen größeren Bereich angucken. Aber da geht das Programm in die Knie...
Wenn du das nur annähernd so machst wie in diesem Minimalbeispiel dann ist es kein Wunder das dein Programm in die Knie geht.

1. While-Schleife ohne Timing führt maximalem CPU-Verbrauch. Mehr als 25 Aktualisierungen je Sekunden sind nicht wahrnehmbar und auch das ist oftmals schon mehr wie notwendig. Ansatz ist hier natürlich Begrenzung auf ein sinnvolles Maß.
2. Dein Monitor hat meist ne maximale horizontale Auflösung von unter 2000 Pixel. Mehrere Hunderttausend Punkte sind somit nicht darstellbar! In deinem Beispiel zeigst du 1024 * 250 Datenpunkte maximal an. Resultat ist eine extrem langsame Aktualisierung ohne das du die riesige Anzahl überhaupt sehen kannst. Hier gibt es verschiedenste Ausdünnansatze um einen sinnvollen Teil der Daten anzuzeigen.

Dein Ansatz mit der Eventstruktur die Skaleneinstellungen abzufangen ist prinzipiell richtig nur muss das ist eine While-Schleife weil sonst funktioniert es genau 1 mal. Wenn du in deinem VI ähnlich mit dem Graph umgehst ist es nicht verwunderlich das es nicht funktioniert. Sollte die Verwendung nicht vergleichbar sein wäre es sicher interessant wie du es in deinem eigentlich Programm programmiert hast.
(24.06.2013 17:01 )Zhara schrieb: [ -> ]Mmm also im kleinen Rahmen geht es nun,
Wie kommst Du darauf? Das kann gar nicht gehen, denn die Ereignsistruktur reagiert primär nur auf Bedienereignisse. Automatische Änderung der Skala an der Graphik ist kein Bedienvorgang!
In meinem Bespiel fehlt noch die automatische Skalierung beim Start. Schaffts Du das allein?

[attachment=45098]
(24.06.2013 19:16 )Lucki schrieb: [ -> ]Wie kommst Du darauf? Das kann gar nicht gehen, denn die Ereignsistruktur reagiert primär nur auf Bedienereignisse. Automatische Änderung der Skala an der Graphik ist kein Bedienvorgang!
In meinem Bespiel fehlt noch die automatische Skalierung beim Start. Schaffts Du das allein?

Automatische Änderung der Skala ist zwar kein Bedienvorgang es gibt aber trotzdem einen Event dafür Big Grin
Hab Lucki sein Beispiel dahingehend nochmal angepasst.
(24.06.2013 19:29 )Holy schrieb: [ -> ]Automatische Änderung der Skala ist zwar kein Bedienvorgang es gibt aber trotzdem einen Event dafür Big Grin
Hab Lucki sein Beispiel dahingehend nochmal angepasst.

Die von Dir hinzugefügten beiden Events reagieren aber ebenfalls nur auf Bedieneingriffe, d.h wenn jemand manuell an der Skala herumfummelt oder im Kontextmenü das Item "Autoskalierung" anklickt. Deshalb musstest Du auch, damit es weiterhin funktioniert, "meine" Events (Amplitude und Offset) beibehalten.
Die Hinzufügung "Deiner" Events halte ich für überflüssig, denn es ist ja gerade Sinn und Zweck der Autoskalierung, eine manuelle Anpassung der Y- Skala überflüssig zu machen. Letztlich muss das aber Zhara entscheiden.
(25.06.2013 08:28 )Lucki schrieb: [ -> ]Die von Dir hinzugefügten beiden Events reagieren aber ebenfalls nur auf Bedieneingriffe, d.h wenn jemand manuell an der Skala herumfummelt oder im Kontextmenü das Item "Autoskalierung" anklickt. Deshalb musstest Du auch, damit es weiterhin funktioniert, "meine" Events (Amplitude und Offset) beibehalten.
Die Hinzufügung "Deiner" Events halte ich für überflüssig, denn es ist ja gerade Sinn und Zweck der Autoskalierung, eine manuelle Anpassung der Y- Skala überflüssig zu machen. Letztlich muss das aber Zhara entscheiden.

Muss ich dir vollkommen Recht geben. Mein obiger Beitrag hat sich damit komplett erledigt. Lucki hat hier Recht das die Events für das was du erreichen willst eigentlich nix bringen. Entschuldigt die Verwirrung die ich dadurch gestiftet habe.
Was mich aber interessieren würde ist, was macht der Event dann überhaupt? Hab jetzt nochmal getestet und der reagiert noch nichtmal auf ein aktivieren oder deaktivieren der AutoskalierungHuh
(25.06.2013 10:49 )Holy schrieb: [ -> ]Was mich aber interessieren würde ist, was macht der Event dann überhaupt? Hab jetzt nochmal getestet und der reagiert noch nichtmal auf ein aktivieren oder deaktivieren der AutoskalierungHuh
Das hatte ich einfach so behauptet, weil das die einzige Form von manueller Bedienung war, die ich mir denken konnte. Habe jetzt keine Lust, das zu erforschen. Lehnen wir uns doch einfach entspannt zurück und warten ab, ob sich eine Koryphäe meldet, die dazu etwas zu sagen hat. Big Grin
Hier noch mal an Alle die Frage:
Wann feuert dieses Event: "Änderung der Autoskalierung für Bereich" ?
Aus der Hilfe:
Generated when the minimum or maximum value of the scale of a graph or chart is changed through autoscaling. This event is useful if you want to register user changes and then adjust the functionality of the graph based on those changes.

Sollte also automatisch ein Event erzeugen, wenn sich Min/Max zwecks Autoscaling einer Skala ändern.

Ein Versuch bestätigt das, einfach das folgende VI starten, und dann z.B. die Eingabe "Amplitude [V]" ändern. Vor allem beim Verkleinern des Wertes erkennt man, dass das Autoscale-Event einige Zeit nach Eingabe einer neuen Amplitude auslöst.
[attachment=45119]

Gruß, Jens
Seiten: 1 2
Referenz-URLs