Hallo Jürgen,
ich hatte am Fr mal die Zeitschaltung nur mit 2MB pro Schaltzeit geschrieben, aber noch keine Zeit das einzustellen.
Ralf hat ja inzwischen schon was erstellt, was ich aber noch nicht kenne.
Bei diesem Code sind noch 38757Byte übrig.
//Ausgabe E4 Zeit
RC01 (
EN := ,
DT => ,
E1 => ,
YY => MB100,
MM => MB101,
DD => MB102,
WD => MB103,
HR => MB104,
MN => MB105,
SC => MB106);
//Wochentagabhängig Schaltzeitvergleich (2x aus + 2x ein) machen und umschalten wenn erreicht
//die Schaltzeiten liegen Galileofreundlich in MB vor von Adr 110- 165 in Folge Mo hh:mm 1ein, hh:mm 1aus, hh:mm 2ein, hh:mm 2aus ; Di ...
//der Merkerbereich muss remanent sein um die Zeiten zu speichern
CASE MB103 OF
//Montag
1: IF ((MB104 = MB112) and (MB105 = MB113) OR (MB104 = MB116) and (MB105 = MB117)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB110) and (MB105 = MB111)) or ((MB104 = MB114) and (MB105 = MB115)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
//Dienstag
2: IF ((MB104 = MB120) and (MB105 = MB121) OR (MB104 = MB124) and (MB105 = MB125)) THEN
M01:= false;//ausschalten
ELSIF ((MB104 = MB118) and (MB105 = MB119)) or ((MB104 = MB122) and (MB105 = MB123)) THEN
M01:= true; //einschalten
END_IF;
//Mittwoch
3: IF ((MB104 = MB128) and (MB105 = MB129) OR (MB104 = MB132) and (MB105 = MB133)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB126) and (MB105 = MB127)) or ((MB104 = MB130) and (MB105 = MB131)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
//Donnerstag
4: IF ((MB104 = MB136) and (MB105 = MB137) OR (MB104 = MB140) and (MB105 = MB141)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB134) and (MB105 = MB135)) or ((MB104 = MB138) and (MB105 = MB139)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
//Freitag
5: IF ((MB104 = MB144) and (MB105 = MB145) OR (MB104 = MB148) and (MB105 = MB149)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB142) and (MB105 = MB143)) or ((MB104 = MB146) and (MB105 = MB147)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
//Samstag
6: IF ((MB104 = MB152) and (MB105 = MB153) OR (MB104 = MB156) and (MB105 = MB157)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB150) and (MB105 = MB151)) or ((MB104 = MB154) and (MB105 = MB155)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
//Sonntag
0: IF ((MB104 = MB160) and (MB105 = MB161) OR (MB104 = MB164) and (MB105 = MB165)) THEN //1. oder 2. Ausschaltzeit erreicht
M01:= false;//ausschalten
ELSIF ((MB104 = MB158) and (MB105 = MB159)) or ((MB104 = MB162) and (MB105 = MB163)) THEN //1. oder 2. Einschaltzeit erreicht
M01:= true;//einschalten
END_IF;
ELSE
M01:= false;
END_CASE;