Hallo,
ich möchte aus einer Reihe von Messung den Maximalwert bestimmen. Dabei möchte ich diesen mit dem Maximalwert und dem der Nummer der dazugehörigen Messung anzeigen.
Mein Problem ist, das ich nicht weiß wie ich den Maximalwert kurzfristig speichern soll um dann denn gespeicherten Maximalwert mit dem neuen zu vergleichen.
Wenn der neue größer ist als der Alte, soll dieser gespeichert werden und mit dem nächsten Maximalwert verglichen werden.
Habe mir schon ein paar Gedanken gemacht, aber wie gesagt das kurzfristige Speichern fehlt mir noch. Vielleicht hat hier jemand ein Tip?
Gruss und Danke
Abfrage des bereits gespeicherten Wertes entweder mit Shiftregister oder mit lokaler Variablen
Ich als Anfänger würde es mit Eigenschaftsknoten, Wert überführen wie hier. (Zufallszahl steht für das Maximum)
[
attachment=10353]
' schrieb:Ich als Anfänger würde es mit Eigenschaftsknoten, Wert überführen wie hier. (Zufallszahl steht für das Maximum)
Sehe gerade, daß Du in einem anderen Thread nach Lokalen Variablen fragst und daß dort auch schon von einigen Bedenkenträgern Antworten kamen. Wahrscheinlich glaubst Du nun, wie hier im Beispiel, mit dem Eigenschaftsknoten "Wert" deren Verwendung umgehen zu können. Dieser Eigenschaftknoten spielt aber in einer ganz anderen Geschwindigkeitsliga, er ist mehr als 100 mal langsamer als die entsprechende lokale Variable.
' schrieb:Sehe gerade, daß Du in einem anderen Thread nach Lokalen Variablen fragst und daß dort auch schon von einigen Bedenkenträgern Antworten kamen. Wahrscheinlich glaubst Du nun, wie hier im Beispiel, mit dem Eigenschaftsknoten "Wert" deren Verwendung umgehen zu können. Dieser Eigenschaftknoten spielt aber in einer ganz anderen Geschwindigkeitsliga, er ist mehr als 100 mal langsamer als die entsprechende lokale Variable.
Gut zu wissen! Danke! Nein,ich habe nicht absichtlich versucht dies zu umgehen, mir war nur nicht klar, dass Eigenschaftsknoten langsamer sind. Wie gesagt bin neu in LabVIEW, über Geschwindigkeit und Speicherbelastung habe ich mir noch nicht so viel Gedanken gemacht.
Aber manche Eigenschaften kann man eben nur über Eigenschaftsknoten bearbeiten (Sichtbarkeit etc.) oder gibt es da auch eleganteres? Verwende da einige, aber nur für unwichtige Durchläufe, Eigenschaften des XY Graphen etc.
gruß weeswenig
' schrieb:Gut zu wissen! Danke! Nein,ich habe nicht absichtlich versucht dies zu umgehen, mir war nur nicht klar, dass Eigenschaftsknoten langsamer sind. Wie gesagt bin neu in LabVIEW, über Geschwindigkeit und Speicherbelastung habe ich mir noch nicht so viel Gedanken gemacht.
Aber manche Eigenschaften kann man eben nur über Eigenschaftsknoten bearbeiten (Sichtbarkeit etc.) oder gibt es da auch eleganteres? Verwende da einige, aber nur für unwichtige Durchläufe, Eigenschaften des XY Graphen etc.
gruß weeswenig
Da wir beim Thema Property Node / Local Variable sind:
http://digital.ni.com/public.nsf/allkb/74E...6256BE30074EC47
http://www.LabVIEWforum.de/index.php?showtopic=5804
http://www.LabVIEWforum.de/index.php?showtopic=3516
http://www.LabVIEWforum.de/index.php?showtopic=1022
Dann nochmal meine Sicht zu Local Variable:
Wenn mgl. vermeiden, da:
-Datenflusskonzept von LV unterbrochen wird.
-eine local Variable ein "Funktionsaufruf" ist, der eine Kopie des Wertes im Speicher anlegt, vor allem schlecht bei großen Arrays.
-langsamer als direktes Verbinden (aber immer noch schneller als Property Node->Value)
Deswegen sollte man das Konzept aber nicht verteufeln, es gibt auch genügend Beispiele, wo es Sinn macht (besser lesbarer Code, übersichtlicher, o.ä.). Man sollte halt immer überprüfen, ist eine Local Variable wirklich nötig (z.B. in Schleifen oder zeitkritischen Anwendungen).
Die Verwendung einer PropertyNode->Value ist noch x-mal langsamer als eine local Variable, da sie im UI-Thread läuft und ein Update des FP erzwingt. PropertyNode->Value ist nur dann sinnvoll, wenn gleichzeitig andere Eigenschaften des Controls (z.B. Visible o.ä.) gesetzt oder gelesen werden.
Und zum Frage, eleganteres, Nein, wenn man seine Anwendung entsprechend aufwändig gestalten will (Setzen von Achsen, Deaktivieren von Controls, Setzen von Captions, usw. usw.), dann muss man PropertyNodes verwenden.
MfG, Jens
Danke für die Antworten,
werde mich jetzt nochmal hinsetzten. Wobei ich viele lokale Variablen in meinem VI nutze und mir PropertyNodes eigentlich nichts sagt.
Danke für die Arbeit
' schrieb:Da wir beim Thema Property Node / Local Variable sind:
http://digital.ni.com/public.nsf/allkb/74E...6256BE30074EC47
http://www.LabVIEWforum.de/index.php?showtopic=5804
http://www.LabVIEWforum.de/index.php?showtopic=3516
http://www.LabVIEWforum.de/index.php?showtopic=1022
Dann nochmal meine Sicht zu Local Variable:
Wenn mgl. vermeiden, da:
-Datenflusskonzept von LV unterbrochen wird.
-eine local Variable ein "Funktionsaufruf" ist, der eine Kopie des Wertes im Speicher anlegt, vor allem schlecht bei großen Arrays.
-langsamer als direktes Verbinden (aber immer noch schneller als Property Node->Value)
Deswegen sollte man das Konzept aber nicht verteufeln, es gibt auch genügend Beispiele, wo es Sinn macht (besser lesbarer Code, übersichtlicher, o.ä.). Man sollte halt immer überprüfen, ist eine Local Variable wirklich nötig (z.B. in Schleifen oder zeitkritischen Anwendungen).
Die Verwendung einer PropertyNode->Value ist noch x-mal langsamer als eine local Variable, da sie im UI-Thread läuft und ein Update des FP erzwingt. PropertyNode->Value ist nur dann sinnvoll, wenn gleichzeitig andere Eigenschaften des Controls (z.B. Visible o.ä.) gesetzt oder gelesen werden.
Und zum Frage, eleganteres, Nein, wenn man seine Anwendung entsprechend aufwändig gestalten will (Setzen von Achsen, Deaktivieren von Controls, Setzen von Captions, usw. usw.), dann muss man PropertyNodes verwenden.
MfG, Jens
Hallo,
hier noch meine Lösung für das Maximalwert problem.