LabVIEWForum.de - Vergleich eines Messwertes mit oberer/unterer Schranke

LabVIEWForum.de

Normale Version: Vergleich eines Messwertes mit oberer/unterer Schranke
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
<div align="left">Hallo zusammen,

ich habe ein Programm geschrieben, welches eine Temperaturrampe steuert. Die Temperaturwerte werden nacheinander aus einer Datei ausgelesen und als setpoints an einen T-Controller übergeben. Wenn der jeweilige Temperaturwert erreicht ist, startet eine innere Schleife, die eine Strom-Spannungs-Kennlinie über einer Probe aufnimmt.
Soweit, so gut. Da das Programm bis zu Temperaturen von 77K arbeiten soll, will ich eine Vergleichsschleife implementieren, die abfragen soll, ob der erreichte Temperaturwert T während eines gewissen Zeitraums nur innerhalb eines bestimmten Intervalls T+dT bzw T-dT schwankt. Das soll eine Art Kriterium für die Stabilität des angefahrenen setpoints gelten. Erst dann soll die innere I-U-Schleife starten. Wie kann eine solche Vergleichsschleife realisiert werden?

Vielen Dank im voraus!
marvin</div>
Hallo,

wie liest du denn die Temperaturwerte aus?
Liest du sie einzeln aus, und willst eine zeitlang überprüfen, ob sie im Bereich sind, oder mißt du zuerst über eine Zeitspanne und willst im Nachhinein sehen, ob die Grenzen überschritten wurden?

Es gibt eine Funktion "Wertebereich überprüfen" unter "Vergleich". Der kannst du eine obere/untere Schranke angeben und bekommst ein Boolean als Antwort, ob dein Signal innerhalb der Werte liegt. Damit sollte sich deine Schleife realisieren lassen.
<div align="left">Hallo Kvasir,

ich lese mittels einer for-loop einen Temperaturwert aus einer Datei aus (spreadsheet-file). Damit gehe ich in eine Sequenz-Struktur. Die erste Sequenz enthält eine while-loop, innerhalb der der T-Controller gesteuert wird. Heater-output wird angeschaltet und die aktuelle Temperatur gemessen. Dann wird mit dem Sollwert verglichen. Stimmen beide nicht überein wird wieder gemessen u.s.w. Wenn der Sollwert erreicht ist, geht es in die nächste Sequenz, die die I-U-Schleife steuert -> Messwerte werden abgespeichert. Dann übergibt die for-loop den nächsten Temperaturwert der Rampe als Sollwert an die Sequenzstruktur usw. Ich möchte nun gerne innerhalb der Temperatursequenz, genauer innerhalb der while-loop die aktuelle Temperatur mit dem Sollwert so vergleichen, dass erst dann I-U gefahren wird, wenn T innerhalb eines gewissen Zeitraums t nicht stärker als +/- dT um den eingestellten Sollwert schwankt. Aber wie???


Viele Grüße
M.</div>
' schrieb:Hallo,

wie liest du denn die Temperaturwerte aus?
Liest du sie einzeln aus, und willst eine zeitlang überprüfen, ob sie im Bereich sind, oder mißt du zuerst über eine Zeitspanne und willst im Nachhinein sehen, ob die Grenzen überschritten wurden?

Es gibt eine Funktion "Wertebereich überprüfen" unter "Vergleich". Der kannst du eine obere/untere Schranke angeben und bekommst ein Boolean als Antwort, ob dein Signal innerhalb der Werte liegt. Damit sollte sich deine Schleife realisieren lassen.

Hi Kvasir,

ich habe das Problem mit der "In Range and Coerce"-Funktion soweit in den Griff bekommen. Danke für den Tipp. Nun soll das Programm nur noch überprüfen können, ob der Istwert innerhalb eines definierbaren Zeitfensters innerhalb der Grenzen bleibt. Kann man das mit einer case-Struktur realisieren? Wenn ja, wie? Damit habe ich leider keine Erfahrungen. Für eine Hilfe wäre ich dankbar!

Viele Grüße
Hilft dir das weiter?

Kann leider nicht auf 6.1 runterspeichern.
Die Schleife überprüft nun jeden Temperaturwert, ob er innnerhalb deiner Grenzen liegt. Wenn dies der Fall ist, erhöht sich der Counter um 1.
Sind 5 Temperaturwerte hintereinander innerhalb des Bereichs bricht die Schleife ab.
Ist ein Wert außerhalb deines Bereichs, so resettet der Counter wieder auf 0.

edit: Wenn du den Abstand zwischen deinen Temperaturmessungen kennst, dann ist das Intervall, in dem deine Messung im Bereich liegt Counter*Delta t. (In meinem Beispiel also 5*500ms) Über die Abbruchbedingung kannst du das dann variieren.
Vielen Dank, damit ist mir sehr geholfen! Die Abfrage der Grenzen hab ich genauso realisiert, ich füge jetzt noch die Schleife ein und dann sollte alles laufen. Danke für die Mühe!

Viele Grüße
Referenz-URLs