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!
12.07.2010, 08:12 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 08:28 von Yantit.)
Innerhalb meines Projektes möchte ich die Achse eines waveform graph skalieren. Die X-Achsenskalierung funktioniert bei mir einwandfrei (abhängig von den Eingangswerten wird die Schrittweite berechnet und von Start nach Stop die Achse aufgeteilt, so das ich 10 Skalenteile bekomme).
Das habe ich nun auch bei der Y-Achse versucht, indem ich die gleiche Systematik darauf übertragen habe.
Folgender Sachverhalt liegt vor: Der "Startwert" (sprich der Wert im Ursprung) soll immer fest -100 betragen. Der Endwert ist variabel (ändert sich gelegentlich) und liegt im Bereich < 0 (also auch negativ).
Wenn ich das Verfahren jetzt so anwende, habe ich das Problem, dass die Skala nicht in 10 Teile geteilt wird, sondern immer unterschiedlich, abhängig vom Endwert.
Grundsätzliche Frage von mir: Hat die "Reihenfolge" der Parameter in dem Eigenschaftsknoten einen Einfluss darauf?
Weiterhin hänge ich hier noch mal den Abschnitt an, der von Interesse ist, vielleicht habe ich auch nur einen grundsätzlichen Fehler übersehen.
Danke & Gruß
EDIT: Ich sehe gerade, dass das Bild nicht sonderlich gut ist, da beim Abschnitt erstellen der Eigenschaftsknoten breiter geworden ist und die Leitungen überdeckt:
Also, an Start und Minimum sind als Konstante die -100 angeschlossen, an Schrittweite das Ergebnis der Division durch 10 und an Maximum das Ergebnis der Addition des Eingangswertes in das Case mit der 10.
Also, bei mir tut es das irgendwie nicht, entweder bin ich zu doof oder ich verstehe was falsch (zumal ja die gleiche Vorgehensweise bei der X-Achse funktioniert)
Ich gebe mal ein Beispiel, wie es gerade bei mir aussieht:
Minimum = -100
Maximum = -20
-> Minimum - Maximum = -80
-80 / 10 = -8
Daraufhin müsste ja der Abstand, ausgehend von meinen -100, ja (-)8 sein, bedeutet: die nächste Unterteilung (von unten aus gesehen) sollte bei -92 liegen, die nächste dann bei -84 usw.
Aber hier:
sind die Abstände ja immer 10
Lese ich den Eigenschaftsknoten aus (bzw. das Element Inkrement), so kommen da auch teilweise sehr merkwürdige Werte an, die sich in der Graphendarstellung gar nicht wiederfinden (z. B. bekomme ich mit dieser Einstellung einen Inkrement von 2,5 angezeigt?)
Ich glaube, ich verstehe irgendwas nicht richtig...
12.07.2010, 10:27 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 10:27 von GerdW.)
versuch's doch mal mit positiven Werten für's Increment...
Auch das habe ich schon probiert (mittels Negieren-Funktion), allerdings ohne Erfolg.
Ich habe mir den Datenverkehr ja auch schon mal mit einer Probe angeschaut, um auch sicherzugehen, dass die richtigen Werte an dem Eigenschaftsknoten ankommen, was sie auch tun.
GerdW, ich habe im Prinzip genau die gleiche Struktur bei mir vorliegen, bis auf, dass die Werte vorher berechnet werden statt als Konstanten übergeben. Ändere ich meine Werte jetzt auch auf Konsanten um, bleibt das Verhalten identisch. Das ist auch das erste Mal, dass in dem Programm überhaupt auf die Eigenschaften der Y-Achse zugegriffen wird. Ich habe auch schon die anderen Eigenschaften, die möglicherweise damit zu tun haben (Achsanpassung, gleichmäßige Unterteilung, etc.) hinzugefügt und die Parameter davon geändert.
Leider hat in diesesm Fall nichts das erhoffte Ergebnis gebracht.
Gibt es evtl. noch weitere Ideen? Ich bin nämlich bald mit meinem Latein am Ende.
probier es doch erstmal mit einem neuen VI aus - so wie ich es auch gemacht habe. Wenn es dort funktioniert, kanst du damit rumspielen (evtl. spielt die Reihenfolge der Properties eine Rolle) und Berechnungen einfügen. Wenn es dann immer noch funktioniert, schaust du dir dein eigentliches VI wieder an!
Die beiden Parameter GerundeteAnpassung und UnterteilungGleich sollten beide auf True stehen, dann tut mein Graph, was er soll...
Warum der vermeintliche "Fehler" nicht schon bei der X-Achse auftaucht, wo die beiden nicht gesetzt sind, aber der Knoten sein Werk vollbringt, vermag ich jetzt nicht zu sagen.
Danke & Gruß
12.07.2010, 12:59 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 13:10 von Yantit.)
Ich nehme alles von meinem letzten Beitrag zurück und behaupte das Gegenteil:
Das war leider doch nicht der Weg zur Lösung. Das Inkrement wird doch irgendwie nicht in Übereinstimmung mit meinen Vorgaben festgelegt, sondern LV macht dies scheinbar selbständig.
In meinem momentan vorliegenden Beispiel geht die Skala von -100 bis -30 (soweit so gut), allerdings taucht als Inkrement nicht (-)7 auf, sondern ich lese 2 aus...
Warum legt LV das selbst fest, wenn ich doch in den PropertyNode einschreibe?
Oder muss das konstant eingeschrieben werden, da ja mein Case nur ausgeführt wird, wenn sich der Maximalwert der Y-Achse um mehr wie +-3 verändert.
Aber was geschieht dann während des normalen Schleifendurchlaufs?
Gruß
EDIT: Anbei nochmal das gesamte Hauptprogramm, damit man auch den gesamten Kontext für den Graphen sieht...
Ja, das das Snippet nicht funktioniert war mir bewusst (dürfte sowieso bei niemandem laufen, da ja erst auf Daten von einer COM-Schnittstelle gewartet wird).
Mir ging es nur drum, quasi den Kontext zu zeigen, woher die Werte für die Skalierung kommen.
Ausprobiert habe ich schon viele Dinge in dem neuen VI. Allerdings funktioniert es nicht in meinem Programm. Das Hauptproblem scheint darin zu bestehen:
- Wenn sich der Maximalwert ändert (auf den sich ja im Prinzip alle Berechnungen stützen), dann verändert sich sofort die Skalierung, allerdings nicht mit neu berechneten Inkrement-Werten, sondern scheinbar mit einer Art Standard-Einstellung (es werden nur Werte von 2 & 2,5 angenommen??)
Die Irritation auf meiner Seite besteht ja im Prinzip nur darin, dass meine Skalierung der X-Achse einwandfrei funktioniert, während die Y-Achse rumzickt.
Gebe ich einen festen Maximalpegel vor, so ist ja alles kein Problem...
Nur muss das Programm auf Änderungen im Maximalpegel mit einer Änderung der Skalierung reagieren. Da muss ich wohl oder übel noch den Rest des Tages drüber grübeln...