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!
25.09.2009, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2009 14:23 von dimitri84.)
ich habe 4 Kanäle, die ich in einem Stapelplot (Signalverlaufsdiagramm) anzeige. Ich möchte nun die "Autoskalierung" selbst basteln damit:
1) ... die y-Skalierung für alle 4 plots gleich ist, um die Signale besser vergleichen zu können. Der kanal mit der größten Amplitude gibt die Skalierung vor.
2) ... ich eine Mindestgröße für den Bereich wählen kann, um zu verhindern, dass in den Ruhetonus (=Rauschen+kleiner offset) ewig weit reingezoomt wird.
Beim Rumprobieren mit den Eigenschaftsknoten hatte ich das Problem, dass nur der erste plot angesprochen wird. Die anderen kann ich zwar über Eigenschaften -> Skalierung einzeln einstellen, aber eben nich prgramatisch. Jedenfalls weiß ich nicht wie.
Zweite Frage: Gibts ne property Node zum löschen/reseten eines diagrams/graphs? find da nix ...
also sowas wie "RechtsClick" -> "Diagramm löschen" ... aber eben wieder programatisch
Achja und wenn ich schon dabei bin:
Wie stelle ich ein, ob ich ein "gleitendes fenster" vom Signal anzeigen möchte oder das Signal immer in voller Länge angezeigt werden soll, sprich das Signal kontinuierlich gestaucht wird. Hab das zwar hinbekommen, kann es aber nicht reproduzieren ... anders: hab keine Ahnung wie ich das gemacht hab.
EDIT: ok für die erste Frage hab ich jetzt dochn Ansatz ... Stichwort aktive y-Skala ... oder gehts besser?
Beste Grüße
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
PropertyNode mit der Maus einfach nach unten aufziehen. Mit Links-Klick auf eine Property kannst du eine andere Eigenschaft auswählen, mit Rechtsklick geht wie üblich eine Kontextmenü auf, darin kannst du z.B. von Lesen auf Schreiben ändern.
Die Properties werden hierbei seriell von oben nach unten abgearbeitet, also z.B. erst ActiveScale setzen, dann Property Maximum auslesen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:EDIT: ok für die erste Frage hab ich jetzt dochn Ansatz ... Stichwort aktive y-Skala ... oder gehts besser?
Due fragst obs besser geht ohne das VI zu posten - und leider bin ich kein Spezialist zur Online-Durchsuchung deines PCs.
So ungefähr würde ich es machen: Skalieren.vi (Größe: 15,84 KB / Downloads: 234)
Bei mir wurden allerdings nach ein paar Versuchen die Y-Achsen von den Skalenfenstern verdeckt. Hat zwar mit dem Problem hier nichts zu tun, es scheint sich hier um einen ekelhaften Bug von LabVIEW zu handeln. Habe das Problem provisorisch gelöst, indem ich dem linken Rand das Plotfensters weit weg von der Y-Skala platziert habe.
Zitat:Wie stelle ich ein, ob ich ein "gleitendes fenster" vom Signal anzeigen möchte oder das Signal immer in voller Länge angezeigt werden soll, sprich das Signal kontinuierlich gestaucht wird
Probiers doch mal mit X-Achse Autoscaling Ein/Aus. Die Datenrate muß dann allerdings niedrig sein, es verbraucht viel Rechenleistung, wenn wegen jedes neu hinzukommenden Datenpunktes neu skaliert wird. Aus diesem Grund ist Autoscaling X-Achse auch nicht die Standardeinstellung bei SV-Diags.
' schrieb:also ich habe deinen Vorschlag aus Platzgründen in eine subVI gepackt. Mein Problem ist nun, dass die plots unheimlich stark flimmern.
Es ist immer ungünstig, wenn wegen jedes neu hinzugekommene Datenpunkes neu skaliert wird. Deshalb ist Autoskaling bei SV-Diags standardmäßig abgeschalten. Darüber hinaus war aber auch mein Beispiel in dieser Hinsicht Shit. Im ungünstigsten Fall wird wegen jedes neuen Punkts das Diag 3 mal skaliert: 1. weil Autoscaling aktiviert ist --> abschalten! 2. Weil einmalig über Eigenschaftknoten autoscaliert wird. 3. Weill alle Diagramme wie gewünscht skaliert werden.
Deshalb sollte der Y-Bereich Max/Min nicht über vorherige AutosKalierung ermittelt werden, sondern direkt aus den Arrays. Habe mal das Bespiel entsprechend geändert. Und Autoscalierung abschalten nicht vergessen!
Wenn das noch nicht reicht, dann sind weitere Tricks im Köcher.
Es klappt! Flimmert nix! Tricks können fürs nächste mal aufgespart werden!
Ist in der Tat sehr rechenintensiv (das in die Jahre gekommene Dell notebook kommt an seine Grenzen)... aber für nen Kurzen Blick, um die Signale subjektiv zu vergleichen reichts locker aus.
Warum ist denn die Autoskalierung von LV nicht so rechenintensiv? Die skaliert doch auch für jeden Wert neu, oder nicht?
Und zum splitten des Signals in 4 dbl hab' ich die VI inlv82nicht gefunden ...
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)