Aufgabe
"Die
Heizung wird simuliert durch die Linsenlampe M2, als Kühlaggregat dient das
Gebläse am Ausgang M1. Zur Temperaturmessung verwenden wir den NTC-Widerstand
am Eingang EE. Programmiere das Modell so, daß oberhalb einer bestimmten
Temperatur die Heizung aus- und das Gebläse einschaltet. Dieses soll so lange
kühlen, bis ein unterer Grenzwert erreicht ist. Dann soll das Gebläse auss-
und die Heizung eingeschaltet werden". Soweit das Zitat aus dem
"Computing Starter" Begleitheft.
Anwendungskonstanten
Const mVentilator = 1, mLampe = 2
Const aNTC = 0
Const wHeiss = 1, wKalt = 2
Beschriftung der Textfelder
.lblTitel = "Temperaturregelung"
.lblMText(1).Caption = "Kühlung"
.lblMText(2).Caption = "Heizung"
.lblAText(0).Caption = "Temperatur"
.lblWert(1).Caption = "Heiß"
.txtWert(1).Text = 520
.lblWert(2).Caption = "Kalt"
.txtWert(2).Text = 560
fishMain
Do
' --- Schleife bis HALT
Select Case ftiGetAnalog(aNTC)
Case Is < Werte(wHeiss)
ftiSetMotor mLampe, ftiAus
ftiSetMotor mVentilator, ftiEin
Case Is > Werte(wKalt)
ftiSetMotor mLampe, ftiEin
ftiSetMotor mVentilator, ftiAus
End Select
Loop Until ftiFinish(0) ' --- Abbruchwunsch
Was passiert da?
Es gibt da zunächst wieder eine Endlosschleife, die über den HALT-Button
beendet werden kann. In der Schleife gibt es ein neues Visual Basic Konstrukt :
das Select Case. Wirkt wie ein geschachteltes If, ist aber übersichtlicher.
Hier ist der Select-Ausdruck der aktuelle Wert des Analogeinganges EX, des
NTC-Widerstandes, der die aktuelle Temperatur mißt. Mit Case Is <
Werte(wHeiss) wird der Fall ausgewählt bei dem der aktuelle Temperaturwert
unter dem Wert des Heiss-Feldes auf der Form liegt : dann ist es heiß, es muß
gekühlt werden. Bei Case Is > Werte(wKalt) ist dann kalt und es muß geheizt
werden. Das wars. Bei der Inbetriebnahme sollte man etwas mit den Werten für
Heiss und Kalt experimentieren, sie sind vom NTC und der Raumtemperatur
abhängig.
Erweiterungen
Anzeige des Betriebszustandes in der Statuszeile durch printStatus
wie gehabt.
Man sollte dem Modell etwas Ruhe gönnen und noch einen Case einbauen bei dem
die Temperatur stimmt (also kein Kühlen/Heizen).
|