Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Anwesenheitssimulation Kategorie: C-Control I V1.2/2.0 (von Friedel - 5.10.2005 20:57)

Ich (Anfänger) habe folgendes Problem:
Ich habe für meine C-Control-Station I  2.0 (mit DCF-Modul) ein Anwesenheitssimulations-Programm geschrieben, das über 4 Stromstoßschalter Licht in 4 Stromkreisen an- u. ausschaltet, abhängig v. Monat (wg. Helligkeit draußen) u. Wochentag.

Gestern u. heute habe ich es erlebt, dass die Relais 1 bzw. 2 einen Dauerimpuls auf das jeweilige Stromstoßrelais (wird natürlich warm) gaben.Die den Stromstoßschaltern zugeordneten manuell zu bedienenden Lichtschalter (besser -taster)  waren blockiert.

Was habe ich falsch gemacht ?


Und noch eine Frage habe ich:
Wie kann man die Anlage -- wenn man früher nach Hause kommt -- für einen Tag außer Betrieb setzen ?
 (anbei vereinfachtes Programm)
Im Voraus vielen Dank!
Friedel :-)


'------ I/O PORTS ---------
'--------------------------
define SDA          port[9]
define SCL          port[10]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define EXTPORT      byteport[4]
define REL1         port[29] 'Weglicht
define REL2         port[30] 'Garten
define REL3         port[31] 'Eingang
define REL4         port[32] 'Flur
define aktuelleZeit word
define a 1300 'Einschaltzeit
define b word
define c 2200 'Ausschaltzeit



#INIT
print"#ON_LCD#";
print"#INIT#";
SDA=on
SCL=on
EXTPORT=OFF  'braucht man die 5 letzten Zeilen?


'....................................


#loop
aktuelleZeit = Hour * 100 + Minute
print"#L101#"; aktuelleZeit


if month = 1 then b = a 'Januar; kann man vermutl. durch eine "case"-Abfrage optimieren
if month = 2 then b = a + 100 'Febr.
if month = 3 then b = a + 200 'März
if month = 4 then b = a + 300 'April
if month = 5 then b = a + 400 'Mai
if month = 6 then b = a + 500 'Juni
if month = 7 then b = a + 500 'Juli
if month = 8 then b = a + 400 'Aug.
if month = 9 then b = a + 300 'Sept.
if month = 10 then b = a + 200 'Okt.
if month = 11 then b = a + 100 'November
if month = 12 then b = a 'Dezember

print month
print a
print b

if dow > 6 then dow = 0 'dient dazu, einen bug zu umgehen;
'if dow = 1 then goto Montag 'kann man vermutl. durch eine '"case"-Abfrage optimieren
'if dow = 2 then goto Dienstag
if dow = 3 then goto Mittwoch
'if dow = 4 then goto Donnerstag
'if dow = 5 then goto Freitag
'if dow = 6 then goto Samstag
'if dow = 0 then goto Sonntag



#Mittwoch
'Hier folgt Relais 1 (Weglicht):
if aktuelleZeit = b + 320 and second = 1 then rel1=ON 'Licht einschalten
if aktuelleZeit = b + 320 and second = 2 then rel1=OFF

if aktuelleZeit = b + 345 and second = 1 then rel1=ON 'Licht ausschalten
if aktuelleZeit = b + 345 and second = 2 then rel1=OFF

if aktuelleZeit = b + 415 and second = 1 then rel1=ON 'Licht einschalten
if aktuelleZeit = b + 535 and second = 2 then rel1=OFF

if aktuelleZeit = c + 31 and second = 1 then rel1=on 'Licht ausschalten
if aktuelleZeit = c + 31 and second = 2 then rel1=off

'........................................

'Hier folgt Relais 2 (Garten):
if aktuelleZeit = b + 20 and second = 1 then rel2=ON 'Licht einschalten
if aktuelleZeit = b + 20 and second = 2 then rel2=OFF

if aktuelleZeit = b + 120 and second = 1 then rel2=ON 'Licht ausschalten
if aktuelleZeit = b + 120 and second = 2 then rel2=OFF

if aktuelleZeit = b + 123 and second = 1 then rel2=ON 'Licht einschalten
if aktuelleZeit = b + 123 and second = 2 then rel2=OFF

if aktuelleZeit = c + 31 and second = 30 then rel2=on 'Licht ausschalten
if aktuelleZeit = c + 31 and second = 31 then rel2=off

'........................................

'Hier folgt Relais 3 (Eingang):
if aktuelleZeit = b + 21 and second = 1 then rel3=ON 'Licht einschalten
if aktuelleZeit = b + 21 and second = 2 then rel3=OFF
if aktuelleZeit = c + 29 and second = 1 then rel3=on 'Licht ausschalten
if aktuelleZeit = c + 29 and second = 2 then rel3=off 'Licht ausschalten

'..........................................

'Hier folgt Relais 4 (Flur):
if aktuelleZeit = c + 35 and second = 40 then rel4=ON 'Licht einschalten
if aktuelleZeit = c + 35 and second = 41 then rel4=OFF
if aktuelleZeit = c + 40 and second = 1 then rel4=on 'Licht ausschalten
if aktuelleZeit = c + 40 and second = 2 then rel4=off 'Licht ausschalten

goto loop

END

 Antwort schreiben

Bisherige Antworten:

Station 2 Probleme mit Relais/LEDs (von Dierk - 6.10.2005 11:37)
Re: Anwesenheitssimulation (von Achim - 6.10.2005 1:00)