Die folgende Routine war von Januar bis April 2008 erfolgreich in Betrieb.
Sie umfasst die vollautomatische Regelung für Küche und Wohnzimmer. Der Aussentemperaturfühler war noch nicht in Betrieb.
// 12.01.2008
//V301 Alle Temperaturangaben auf GradCelsiusähnliche Werte skaliert
//Steuerung Küche und Wohnzimmer fertig.
//Lüfterstufen Heizraumtemperaturgeführt und -verzögert.
//V301b Alle Heizschwellwerte näher zusammengerückt:
// -.3, -.1, +.1, +.3 --> -.1, 0, +.1, +.2
//Variablendeklaration
*******************************************************************************************************
int inKyche, inWoZi, inHeizraum, inAussen, in5, in6; // AD-gewandelte Werte der
Temperatursensoren
string outKyche, outWoZi, outHeizraum, outAussen, out5, out6; // Variablen für
die Anzeigen auf dem Display ********
float inKycheQuer, inWoZiQuer, inHeizraumQuer, inAussenQuer, in5quer, in6quer;
// Mittelwerte ***************************************
float inKycheQuerVorher, inWoZiQuerVorher; //Mittelwerte aus vorangehendem
Durchlauf. Wenn Max-Min zu gross, dann wird Störung vermutet und statt dem
aktuellen Wert der vorherige Wert verwendet.
int inKycheMax, inWoZiMax, inHeizraumMax, inAussenmax, in5max, in6max; //
Maxwerte
int inKycheMin, inWoZiMin, inHeizraumMin, inAussenmin, in5min, in6min; //
Minwerte
byte Aussenkorrektur; // Tabelle, die um 1 pro Grad Abnahme zunimmt.
float deltaKyche, deltaWoZi, deltaHeizraum, deltaAussen;//jeweils Max -Min
int j, AnzahlZyklen;
byte LCDbacklight; //Hintergrundbeleuchtung an oder aus
byte KycheH1Enable, KycheH2Enable, WoZiH1Enable, WoZiH2Enable;
byte OtherH1Enable, OtherH2Enable; //Andere als der jeweilige Lyfter unter
Betrachtung.
byte H1Enable, H2Enable;
byte Lyfter1OK, Lyfter2OK, H1OK, H2OK; // Lyfterfeigabe erst ab
Mindesttemperatur im Heizraum. Heizstufen Abschaltung bei Höchsttemperatur.
byte AussenfylerFlag; // Erst ab 66 Zyklen darf der Aussentemperaturfühler
"mitreden".
float H1Oben, H1Unten, H2Oben, H2Unten; // Schaltpunkte mit Hysterese.
int HeizraumQuerGradC;
byte WoZiKeltest, KycheKeltest;
//Funktionendeklaration ***********************************
//_________________________________________________________
function AussenwertTabelle(){
if inAussenQuer >158 Aussenkorrektur = 0; //+20C°
if inAussenQuer >164 Aussenkorrektur = 0;
if inAussenQuer >171 Aussenkorrektur = 0;
if inAussenQuer >177 Aussenkorrektur = 0;
if inAussenQuer >184 Aussenkorrektur = 0;
if inAussenQuer >191 Aussenkorrektur = 0;
if inAussenQuer >199 Aussenkorrektur = 0;
if inAussenQuer >206 Aussenkorrektur = 0;
if inAussenQuer >214 Aussenkorrektur = 0;
if inAussenQuer >222 Aussenkorrektur = 0;
if inAussenQuer >231 Aussenkorrektur = 0; //+10C°
if inAussenQuer >240 Aussenkorrektur = 1;
if inAussenQuer >249 Aussenkorrektur = 2;
if inAussenQuer >259 Aussenkorrektur = 3;
if inAussenQuer >269 Aussenkorrektur = 4;
if inAussenQuer >279 Aussenkorrektur = 5;
if inAussenQuer >290 Aussenkorrektur = 6;
if inAussenQuer >301 Aussenkorrektur = 7;
if inAussenQuer >313 Aussenkorrektur = 8;
if inAussenQuer >325 Aussenkorrektur = 9;
if inAussenQuer >337 Aussenkorrektur = 10; //0C°
if inAussenQuer >350 Aussenkorrektur = 11;
if inAussenQuer >364 Aussenkorrektur = 12;
if inAussenQuer >378 Aussenkorrektur = 13;
if inAussenQuer >393 Aussenkorrektur = 14;
if inAussenQuer >408 Aussenkorrektur = 15;
if inAussenQuer >423 Aussenkorrektur = 16;
if inAussenQuer >440 Aussenkorrektur = 17;
if inAussenQuer >457 Aussenkorrektur = 18;
if inAussenQuer >474 Aussenkorrektur = 19;
if inAussenQuer >493 Aussenkorrektur = 20; //-10C°
if inAussenQuer >512 Aussenkorrektur = 21;
if inAussenQuer >531 Aussenkorrektur = 22;
if inAussenQuer >552 Aussenkorrektur = 23;
if inAussenQuer >573 Aussenkorrektur = 24;
if inAussenQuer >595 Aussenkorrektur = 25;
if inAussenQuer >618 Aussenkorrektur = 26;
if inAussenQuer >642 Aussenkorrektur = 27;
if inAussenQuer >667 Aussenkorrektur = 28;
if inAussenQuer >692 Aussenkorrektur = 29;
if inAussenQuer >719 Aussenkorrektur = 30; //-20C°
}
//____________________________________________________________
function HeizraumGradC() {
if inHeizraumQuer < 876 HeizraumQuerGradC = 10;
if inHeizraumQuer < 854 HeizraumQuerGradC = 11;
if inHeizraumQuer < 833 HeizraumQuerGradC = 12;
if inHeizraumQuer < 812 HeizraumQuerGradC = 13;
if inHeizraumQuer < 791 HeizraumQuerGradC = 14;
if inHeizraumQuer < 772 HeizraumQuerGradC = 15;
if inHeizraumQuer < 752 HeizraumQuerGradC = 16;
if inHeizraumQuer < 733 HeizraumQuerGradC = 17;
if inHeizraumQuer < 715 HeizraumQuerGradC = 18;
if inHeizraumQuer < 697 HeizraumQuerGradC = 19;
if inHeizraumQuer < 679 HeizraumQuerGradC = 20;
if inHeizraumQuer < 662 HeizraumQuerGradC = 21;
if inHeizraumQuer < 645 HeizraumQuerGradC = 22;
if inHeizraumQuer < 629 HeizraumQuerGradC = 23;
if inHeizraumQuer < 613 HeizraumQuerGradC = 24;
if inHeizraumQuer < 598 HeizraumQuerGradC = 25;
if inHeizraumQuer < 583 HeizraumQuerGradC = 26;
if inHeizraumQuer < 568 HeizraumQuerGradC = 27;
if inHeizraumQuer < 554 HeizraumQuerGradC = 28;
if inHeizraumQuer < 540 HeizraumQuerGradC = 29;
if inHeizraumQuer < 526 HeizraumQuerGradC = 30;
if inHeizraumQuer < 513 HeizraumQuerGradC = 31;
if inHeizraumQuer < 500 HeizraumQuerGradC = 32;
if inHeizraumQuer < 488 HeizraumQuerGradC = 33;
if inHeizraumQuer < 475 HeizraumQuerGradC = 34;
if inHeizraumQuer < 463 HeizraumQuerGradC = 35;
if inHeizraumQuer < 452 HeizraumQuerGradC = 36;
if inHeizraumQuer < 440 HeizraumQuerGradC = 37;
if inHeizraumQuer < 429 HeizraumQuerGradC = 38;
if inHeizraumQuer < 418 HeizraumQuerGradC = 39;
if inHeizraumQuer < 408 HeizraumQuerGradC = 40;
if inHeizraumQuer < 398 HeizraumQuerGradC = 41;
if inHeizraumQuer < 388 HeizraumQuerGradC = 42;
if inHeizraumQuer < 378 HeizraumQuerGradC = 43;
if inHeizraumQuer < 368 HeizraumQuerGradC = 44;
if inHeizraumQuer < 359 HeizraumQuerGradC = 45;
if inHeizraumQuer < 350 HeizraumQuerGradC = 46;
if inHeizraumQuer < 341 HeizraumQuerGradC = 47;
if inHeizraumQuer < 333 HeizraumQuerGradC = 48;
if inHeizraumQuer < 324 HeizraumQuerGradC = 49;
if inHeizraumQuer < 316 HeizraumQuerGradC = 50;
if inHeizraumQuer < 308 HeizraumQuerGradC = 51;
if inHeizraumQuer < 300 HeizraumQuerGradC = 52;
if inHeizraumQuer < 293 HeizraumQuerGradC = 53;
if inHeizraumQuer < 285 HeizraumQuerGradC = 54;
if inHeizraumQuer < 278 HeizraumQuerGradC = 55;
if inHeizraumQuer < 271 HeizraumQuerGradC = 56;
if inHeizraumQuer < 264 HeizraumQuerGradC = 57;
if inHeizraumQuer < 258 HeizraumQuerGradC = 58;
if inHeizraumQuer < 251 HeizraumQuerGradC = 59;
if inHeizraumQuer < 245 HeizraumQuerGradC = 60;
if inHeizraumQuer < 239 HeizraumQuerGradC = 61;
if inHeizraumQuer < 233 HeizraumQuerGradC = 62;
if inHeizraumQuer < 227 HeizraumQuerGradC = 63;
if inHeizraumQuer < 221 HeizraumQuerGradC = 64;
if inHeizraumQuer < 216 HeizraumQuerGradC = 65;
if inHeizraumQuer < 210 HeizraumQuerGradC = 66;
if inHeizraumQuer < 205 HeizraumQuerGradC = 67;
if inHeizraumQuer < 200 HeizraumQuerGradC = 68;
if inHeizraumQuer < 195 HeizraumQuerGradC = 69;
if inHeizraumQuer < 190 HeizraumQuerGradC = 70;
if inHeizraumQuer < 185 HeizraumQuerGradC = 71;
if inHeizraumQuer < 180 HeizraumQuerGradC = 72;
if inHeizraumQuer < 176 HeizraumQuerGradC = 73;
if inHeizraumQuer < 171 HeizraumQuerGradC = 74;
if inHeizraumQuer < 167 HeizraumQuerGradC = 75;
if inHeizraumQuer < 163 HeizraumQuerGradC = 76;
if inHeizraumQuer < 159 HeizraumQuerGradC = 77;
if inHeizraumQuer < 155 HeizraumQuerGradC = 78;
if inHeizraumQuer < 151 HeizraumQuerGradC = 79;
if inHeizraumQuer < 147 HeizraumQuerGradC = 80;
if inHeizraumQuer < 143 HeizraumQuerGradC = 81;
if inHeizraumQuer < 140 HeizraumQuerGradC = 82;
if inHeizraumQuer < 136 HeizraumQuerGradC = 83;
if inHeizraumQuer < 133 HeizraumQuerGradC = 84;
if inHeizraumQuer < 129 HeizraumQuerGradC = 85;
if inHeizraumQuer < 126 HeizraumQuerGradC = 86;
if inHeizraumQuer < 123 HeizraumQuerGradC = 87;
if inHeizraumQuer < 120 HeizraumQuerGradC = 88;
if inHeizraumQuer < 117 HeizraumQuerGradC = 89;
if inHeizraumQuer < 114 HeizraumQuerGradC = 90;
}
//____________________________________________________________
function RelaisKyche1On() {
station_io.LEDon(1); //Relais Nr.1
station_io.PORTset(0,1); } // Port0 auf Hi, Terminal41
//________________________________________________________________
function RelaisKyche1Off() {
station_io.LEDoff(1); //Relais Nr.1
station_io.PORTset(0,0); }// Port0 auf Lo, Terminal41
//________________________________________________________________
function RelaisKyche3On() {
station_io.LEDon(2); //Relais Nr.2
station_io.PORTset(1,1); } // Port1 auf Hi, Terminal42
//________________________________________________________________
function RelaisKyche3Off() {
station_io.LEDoff(2); //Relais Nr.2
station_io.PORTset(1,0); } // Port1 auf Hi, Terminal42
//________________________________________________________________
function RelaisWoZi1On() {
station_io.LEDon(4); //Relais Nr.3
station_io.PORTset(2,1); } // Port2 auf Hi, Terminal43
//________________________________________________________________
function RelaisWoZi1Off() {
station_io.LEDoff(4); //Relais Nr.3
station_io.PORTset(2,0); }// Port2 auf Hi, Terminal43
//________________________________________________________________
function RelaisWoZi3On() {
station_io.LEDon(5); //Relais Nr.4
station_io.PORTset(3,1); }//Port3 auf Hi, Terminal44
//________________________________________________________________
function RelaisWoZi3Off() {
station_io.LEDoff(5); //Relais Nr.4
station_io.PORTset(3,0); } //Port3 auf Hi, Terminal44
//________________________________________________________________
function Vorgeplenkel() {
station_lcd.init();
station_io.init();
station_lcd.clear();
station_lcd.print(" Cerebrum ");
station_lcd.line2();
station_lcd.print(" Calefaktorii ");sleep 2000;
station_lcd.clear();
station_lcd.print(" 12. Januar ");
station_lcd.line2();
station_lcd.print(" 2008 V301b ");sleep 2000;
//station_lcd.clear();
station_io.LIGHToff ();
}
//________________________________________________________________
function InitMain() {
inKycheQuerVorher=0;
inWoZiQuerVorher=0;
station_io.LEDon(6);
Lyfter1OK=0; Lyfter2OK=0; H1OK =0; H2OK=0;
AussenfylerFlag=0;
KycheH1Enable=0; KycheH2Enable=0; WoZiH1Enable=0; WoZiH2Enable=0;
H1Enable=0; H2Enable=0;
Aussenkorrektur=0;
}
//________________________________________________________________
function Zizibeh() {
plm.beep(plm.TONE_C4); sleep 100;
plm.beep(plm.TONE_OFF); sleep 100;
plm.beep(plm.TONE_C4); sleep 100;
plm.beep(plm.TONE_OFF); sleep 100;
plm.beep(plm.TONE_A3); sleep 300;
plm.beep(plm.TONE_OFF);
}
//________________________________________________________________
function InitLoop() {
deltaKyche=0; deltaWoZi=0; deltaHeizraum=0; deltaAussen=0;
inKycheQuer=0; inWoZiQuer=0; inHeizraumQuer=0; inAussenQuer=0; in5quer=0;
in6quer=0;
inKycheMax=0; inWoZiMax=0; inHeizraumMax=0; inAussenmax=0; in5max=0; in6max=0;
inKycheMin=1023; inWoZiMin=1023; inHeizraumMin=1023; inAussenmin=1023;
in5min=1023; in6min=1023;
HeizraumQuerGradC=0;
}
//________________________________________________________________
function Tastenabfrage() {
//**** F1 --> Display Hintergrundbeleuchtung an. F2 --> aus
LCDbacklight = station_io.getkey(); // Tastenabfrage
if LCDbacklight == 10 station_io.LIGHTon(); // F1 Taste hat den Wert 10
if LCDbacklight == 10 station_io.LEDon(7);
if LCDbacklight == 10 station_io.LEDoff(6);
if LCDbacklight == 11 station_io.LIGHToff(); // F2 Taste hat den Wert 11
if LCDbacklight == 11 station_io.LEDon(6);
if LCDbacklight == 11 station_io.LEDoff(7);
}
//________________________________________________________________
function EinlesenInnenwerte() {
inHeizraum = ports.adc(0); //AD Eingang0 Terminal28
inKyche = ports.adc(1); //AD Eingang1 Terminal29
inWoZi = ports.adc(2); //AD Eingang2 Terminal30
}
//________________________________________________________________
function EinlesenAussenwert() {
inAussen = ports.adc(3); //AD Eingang3 Terminal31
}
//________________________________________________________________
function ExponentiellesVergessen(){
inAussenQuer = (inAussenQuer*0.9 + inAussen)/10;
AnzahlZyklen=AnzahlZyklen+1; if AnzahlZyklen > 66 AussenfylerFlag=1; // Erst ab
66 Zyklen darf der Aussentemperaturfühler "mitreden".
}
//________________________________________________________________
function MaxMinQuer() {
// Bestimmung von Max und Min der eingelesenen Werte
*****************************
inKycheQuer = inKycheQuer + inKyche; if inKyche > inKycheMax inKycheMax=inKyche;
if inKyche < inKycheMin inKycheMin=inKyche;
inWoZiQuer = inWoZiQuer + inWoZi; if inWoZi > inWoZiMax inWoZiMax=inWoZi; if
inWoZi < inWoZiMin inWoZiMin=inWoZi;
inHeizraumQuer = inHeizraumQuer + inHeizraum; if inHeizraum > inHeizraumMax
inHeizraumMax=inHeizraum; if inHeizraum < inHeizraumMin
inHeizraumMin=inHeizraum;
inAussenQuer = inAussenQuer + inAussen; if inAussen > inAussenmax
inAussenmax=inAussen; if inAussen < inAussenmin inAussenmin=inAussen;
}
//______________________________________________________________
function XquerDeltaKorrektur() {
//Mittelwertbildung und Korrektur*******************************
inKycheQuer = (767-(inKycheQuer/1000))/10;
inWoZiQuer = (767-((inWoZiQuer/1000)-21))/10; inHeizraumQuer =
inHeizraumQuer/1000; inAussenQuer = inAussenQuer/1000;
}
//________________________________________________________________
function DeltaLimit() {
deltaKyche = inKycheMax - inKycheMin;
if deltaKyche >25 inKycheQuer = inKycheQuerVorher; // Bei zu grossem Delta der
Einzelwerte (Tür auf, Störung) nehme den vorherigen Wert.
if deltaKyche <26 inKycheQuerVorher = inKycheQuer; // Bei akzeptablem Delta
aktualisiere den Wert für den nächsten Durchlauf.
deltaWoZi = inWoZiMax - inWoZiMin;
if deltaWoZi >25 inWoZiQuer = inWoZiQuerVorher;
if deltaWoZi <26 inWoZiQuerVorher = inWoZiQuer;
deltaHeizraum = inHeizraumMax - inHeizraumMin;
}
//______________________________________________________________
function DisplayAusgabe0() {
station_lcd.clear();
station_lcd.print(" V301b ");
sleep 300;
}
//______________________________________________________________
function DisplayAusgabe1() {
station_lcd.clear();
outKyche = ""; outWoZi = ""; outHeizraum = ""; outAussen = ""; out5=""; out6="";
station_lcd.cursorpos(1,0); // Zeile 1, Position 0(+1)
station_lcd.print("K");
station_lcd.cursorpos(1,1); // Zeile 1, Position 1(+1)
if inKycheQuer > 0 outKyche="+";
str.putfloatf (outKyche, inKycheQuer, 3); // 3 Nachkommastellen
station_lcd.print(outKyche);
station_lcd.cursorpos(1,8);
station_lcd.print("H");
station_lcd.cursorpos(1,9);
str.putfloatf (outHeizraum, HeizraumQuerGradC, 0); // 0 Nachkommastellen
station_lcd.print(outHeizraum);
//--------Zeile 2------------------------------------------------
station_lcd.cursorpos(2,0);
station_lcd.print("W");
station_lcd.cursorpos(2,1); // Zeile 2, Position 0(+1)
if inWoZiQuer > 0 outWoZi="+";
str.putfloatf (outWoZi, inWoZiQuer, 3); // 3 Nachkommastellen
station_lcd.print(outWoZi);
station_lcd.cursorpos(2,8);
station_lcd.print("Bx.xxx");
//station_lcd.cursorpos(2,9); // Zeile 2, Position 0(+1)
//str.putfloatf (outAussen,inByroQuer,2); // 0 Nachkommastellen
//station_lcd.print(outAussen);
}
//______________________________________________________________
function DisplayAusgabe2() {
station_lcd.clear();
outKyche = ""; outWoZi = ""; outHeizraum = ""; outAussen = ""; out5=""; out6="";
station_lcd.cursorpos(1,0); // Zeile 1, Position 0(+1)
station_lcd.print("K");
station_lcd.cursorpos(1,1); // Zeile 1, Position 1(+1)
str.putfloatf (outKyche, deltaKyche, 0); // 0 Nachkommastellen
station_lcd.print(outKyche);
station_lcd.cursorpos(1,4);
station_lcd.print("W");
station_lcd.cursorpos(1,5);
str.putfloatf (outWoZi, deltaWoZi, 0); // 0 Nachkommastellen
station_lcd.print(outWoZi);
station_lcd.cursorpos(1,8);
station_lcd.print("Bxx");
//station_lcd.cursorpos(1,9);
//str.putfloatf (outByro, deltaByro, 0); // 1 Nachkommastellen
//station_lcd.print(outByro);
station_lcd.cursorpos(1,12);
station_lcd.print("H");
station_lcd.cursorpos(1,13);
str.putfloatf (outHeizraum, deltaHeizraum, 0); // 0 Nachkommastellen
station_lcd.print(outHeizraum);
sleep 1700;
}
//________________________________________________________________
function HeizstufenEntscheidung() {
H1Unten = 0.1-Aussenkorrektur*0;
H1Oben = 0.2-Aussenkorrektur*0;
H2Unten = (-0.1)-Aussenkorrektur*0;
H2Oben = (0)-Aussenkorrektur*0;
if inKycheQuer < H1Unten KycheH1Enable = 1;
if inKycheQuer > H1Oben KycheH1Enable = 0;
if inWoZiQuer < H1Unten WoZiH1Enable = 1;
if inWoZiQuer > H1Oben WoZiH1Enable = 0;
if inKycheQuer < H2Unten KycheH2Enable = 1;
if inKycheQuer > H2Oben KycheH2Enable = 0;
if inWoZiQuer < H2Unten WoZiH2Enable = 1;
if inWoZiQuer > H2Oben WoZiH2Enable = 0;
if inHeizraumQuer > 190 H2OK = 1; // heizstufen sollen bei zu hoher
if inHeizraumQuer < 180 H2OK = 0; // heizraumtemperatur nicht anspringen.
if inHeizraumQuer > 180 H1OK = 1;
if inHeizraumQuer < 170 H1OK = 0;
if inHeizraumQuer < 580 Lyfter1OK = 1; // lyfter sollen bei zu niedriger
if inHeizraumQuer > 600 Lyfter1OK = 0; // heizraumtemperatur nicht anspringen
if inHeizraumQuer < 450 Lyfter2OK = 1;
if inHeizraumQuer > 470 Lyfter2OK = 0;
if (KycheH1Enable + WoZiH1Enable)*H1OK > 0 H1Enable = 1;
if (KycheH1Enable + WoZiH1Enable)*H1OK == 0 H1Enable = 0;
if (KycheH2Enable + WoZiH2Enable)*H2OK > 0 H2Enable = 1;
if (KycheH2Enable + WoZiH2Enable)*H2OK == 0 H2Enable = 0;
// Kleine Heizstufe
if H1Enable == 1 station_io.RELon(1);
if H1Enable == 0 station_io.RELoff(1);
sleep 500;
// Grosse Heizstufe
if H2Enable == 1 station_io.RELon(2);
if H2Enable == 0 station_io.RELoff(2);
sleep 500;
}
//_____________________________________________________________
function LyfterKycheEntscheidung() {
if KycheH1Enable*Lyfter1OK == 1 RelaisKyche1On(); // soll bei heizbeginn kalte
zugluft verhindern, solange heizung noch nicht warmgefahren ist.
//if (WoZiH1Enable + ByroH1Enable) > 0 OtherH1Enable =1 else OtherH1Enable = 0;
//in der näxten zeile dann OtherH1Enable statt WoZiH1Enable.
if (KycheH1Enable+1) * WoZiH1Enable == 1 RelaisKyche1Off();
if Lyfter1OK == 0 RelaisKyche1Off();
sleep 500;
//--------------------------------------------------------------
if KycheH2Enable*Lyfter2OK == 1 RelaisKyche3On(); // soll bei heizbeginn kalte
zugluft verhindern, solange heizung noch nicht warmgefahren ist.
if (KycheH2Enable+1) * WoZiH2Enable == 1 RelaisKyche3Off();
if Lyfter2OK == 0 RelaisKyche3Off();
sleep 500;
}
//______________________________________________________________
function LyfterWoZiEntscheidung() {
if WoZiH1Enable*Lyfter1OK == 1 RelaisWoZi1On(); // soll bei heizbeginn kalte
zugluft verhindern, solange heizung noch nicht warmgefahren ist.
if (WoZiH1Enable+1) * KycheH1Enable == 1 RelaisWoZi1Off();
if Lyfter1OK == 0 RelaisWoZi1Off();
sleep 500;
//--------------------------------------------------------------
if WoZiH2Enable*Lyfter2OK == 1 RelaisWoZi3On(); // soll bei heizbeginn kalte
zugluft verhindern, solange heizung noch nicht warmgefahren ist.
if (WoZiH2Enable+1) * KycheH2Enable == 1 RelaisWoZi3Off();
if Lyfter2OK == 0 RelaisWoZi3Off();
sleep 500;
}
//__________________________________________________________________________
//__________________________________________________________________________
//__________________________________________________________________________
thread main
{
Vorgeplenkel();
InitMain();
loop // Hauptschleife (Endlos) *****************************
{
Zizibeh();
InitLoop();
j = 1;
for j = 1 ... 1000 // Je 1000 Messwerte einlesen und aufaddieren
{
Tastenabfrage();
EinlesenInnenwerte();
EinlesenAussenwert();
MaxMinQuer(); // Innenwerte
}//for j
ExponentiellesVergessen(); // Aussenwert
XquerDeltaKorrektur(); // Innenwerte
DeltaLimit(); // Innenwerte
HeizraumGradC();
DisplayAusgabe0(); //Version anzeigen
DisplayAusgabe2(); // Innenwerte
DisplayAusgabe1(); // Temperaturwerte
AussenwertTabelle(); // Aussenkorrekturwert
HeizstufenEntscheidung();
LyfterKycheEntscheidung();
LyfterWoZiEntscheidung();
}// Hauptschleife (Endlos) *********************************
}//Main