LabVIEWForum.de - Wert von numer. Bedienelement kontinuierlich erhöhen (Sprung vermeiden)

LabVIEWForum.de

Normale Version: Wert von numer. Bedienelement kontinuierlich erhöhen (Sprung vermeiden)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich möchte den Benutzer an einem numerischen Bedienelement einen Wert (neuer Sollwert) einstellen lassen. Mein Programm soll dann diesen Wert langsam (kontinuierlich) anfahren ohne dass ein harter Sprung entsteht. Ich hatte einige Ideen aber keine davon war erfolgreich. Kann mir jemand einen Hinweis geben?

Beispiel: Es ist an einem numer. Bedienelement der Wert 1 eingestellt. Der User gibt nun als neuen Sollwert 10 ein. Das Programm soll dann in z.B. 5 Sekunden langsam den Wert 10 anzeigen und das ohne das übrige Programm z.B. durch eine While Schleife anzuhalten.

danke schon mal für eure Mühe


LV-Version 2010
(28.04.2011 13:11 )lemmo schrieb: [ -> ]Das Programm soll dann in z.B. 5 Sekunden langsam den Wert 10 anzeigen
Siehe Muster.
Zitat:und das ohne das übrige Programm z.B. durch eine While Schleife anzuhalten.
"ohne das übrige Programm durch eine While Schleife anzuhalten" ist relativ. Da LV eine Multitasking-Umgebung ist, kann du (beliebig) viele While-Schleifen parallel laufen lassen, ohne dass der Rest des Programmes (wesentlich) gestört wird. Einfach das angehängte VI parallel zu allem anderen laufen lassen.

Dieses VI ist lediglich ein Vorschlag, der erheblich optimiert werden kann. Dazu sollte man aber modular (z.B. OOP) programmieren. Propertys der verwendeten Art sind für diesen Anwendungszweck eigentlich ungeeignet. In das Modul gehört eine Event-Steuerung, die auf Änderungen (im Eingabeelement) reagiert. Ob per User-Event oder Queue sei mal dahin gestellt. Das Modul würde z.B. einen Melder zur Verfügung stellen, der den sich langsam anpassenden Wert enthält. Durch ein Modul würde eine Entkopplung zwischen Berechnung (= While-Schleife) und Eingabe-/Anzeige-Element erreicht werden.

Natürlich gilt auch in diesem Falle, wenn so reicht ...
Gibt es von NI eigentlich Analoge Hardware die genau so ein Einstellverhalten erlaubt?

Sprich: Ich stelle nicht diskrete Schritte ein die ich dann eben entsprechend der maximalen Taktrate der Hardware halten muss, sondern gebe vor, dass eine Rampe ausgegeben werden soll (analog) die in einer bestimmten Zeit vom Minimalwert zum Maximalwert läuft.

Aktuell realisiere ich eine Anwendung die so etwas braucht auf einem Fieldpoint System - jedoch erlaubt das eben auch nur alle ca. 0,3 - 0,5 ms ein neues setzen des Wertes, weshalb man mit der Rampe um die Vernünftig darzustellen auf Frequenzen deutlich unter 2kHz beschränkt ist. Wäre schon schick stattdessen gleich vorzugeben, dass das Gerät eine Rampe fahren soll.

Gruß Kiesch

p.S: Genaugenommen ist das Musterprogramm ja auch nur ein digitales Simulieren eines kontinuierlichen Verfahrens.
Hier noch Variante mit Ereignisbehandlung. (Den Beitrag #4 habe ich nicht berücksichtigt)
[attachment=33548]
Referenz-URLs