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 

 Schaltuhr -- mal wieder Kategorie: C-Control I V1.2/2.0 (von Friedel - 10.06.2007 19:34)
Friedel nutzt:  CC1-Station V2.0
Ich -- leider Anfänger -- habe folgendes Programm in "Basic ++" für meine C-Control I Station 2.0 (Version 2.06) mit angeschlossener DCF-Uhr geschrieben. Unter "CC Basic 2.0" lief´s so leidlich; jetzt nicht mehr.(Uhrzeit u. Datum sollen ausgegeben werden, und es soll zeit-, tages- und monatsabhängig ein Relais geschaltet werden.)
Leider gibt es in "Basic ++" keine Simulationsmöglichkeit, sonst  könnte ich es vielleicht selber rauskriegen.

Von "Conrad" existiert das Programm "11_ECHTZEITUHR_1.bas", das ich in mein Programm eingebaut habe, aber
zum 1.
zeigt die LCD-Anzeige permanent in der 1. Zeile "00:00:00"
und in der 2. Zeile "Mo 1.1.2004" an;

zum 2. schaltet das Relais nicht.(Nur 1x, wenn ich das Programm vom PC zur Station übertrage)

Kann einer von Euch einmal über das Programm "gucken" und mir sagen, was ich falsch gemacht habe ?
Und noch eine Bitte habe ich:
Wie kann ich durch Drücken z. B. der Taste F1 erreichen, dass das Programm für "heute" aussetzt und "morgen" wieder normal startet? Ich weiß, das funktioniert mit irgendwelchen "aus-" u. "einbits", aber das ist zu hoch für mich. Im Voraus vielen Dank! Friedel :-)
-----------------------------------------------------------------------------------------------------------------------------------------------

attributes 'brauche ich das überhaupt?      
ccproject 'brauche ich das überhaupt?
ccproject 'brauche ich das überhaupt?
end ccproject 'brauche ich das überhaupt?
end attributes 'brauche ich das überhaupt?

define LIGHT as port[16]
define REL1         bit[21] 'Küche
define STATION_IO   byte[3] 'brauche ich das überhaupt?
define EXTPORT      byteport[4] 'brauche ich das überhaupt?

define aktuelleZeit word
define a  word
a = 1500 'Einschaltzeit
define b  word
define d  word
define c  word
c=2200 'Ausschaltzeit

define OLDSEC as byte

#INIT
LIGHT=on
LCD.INIT
LCD.CLR
'-------- WILLKÜRLICHE VOREINSTELLUNG -------------
hour=23
minute=59
second=58
day=31
month=12
year=3

#LOOP
'------- AUF DEN SEKUNDENWECHSEL WARTEN ----------
if OLDSEC=SECOND then goto LOOP
OLDSEC=SECOND
pause 5
'------- ZEIT AUF LCD AUSGEBEN -------------------
LCD.POS 1,5
if HOUR<10 then LCD.PRINT "0"         'FÜHRENDE NULL SCHREIBEN
LCD.PRINT  HOUR                       'STUNDEN AUSGEBEN
LCD.PRINT ":"                         'TRENNZEICHEN SCHREIBEN
if MINUTE<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
LCD.PRINT  MINUTE
LCD.PRINT ":"                         'TRENNZEICHEN SCHREIBEN
if SECOND<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
LCD.PRINT  SECOND
LCD.PRINT "  "
'--------- DATUM AUF LCD AUSGEBEN ----------------
LCD.POS 2,1

SELECT CASE dow 'WOCHENTAG ZUWEISEN  
    CASE 1
    LCD.PRINT "MO"
    CASE 2
    LCD.PRINT "DI"
    CASE 3
    LCD.PRINT "MI"
    CASE 4
    LCD.PRINT "DO"
    CASE 5
    LCD.PRINT "FREI"
    CASE 6
    LCD.PRINT "SA"
    CASE 7
    LCD.PRINT "SO"
END SELECT    
'-------------------------------------------------
    LCD.PRINT "  "
    LCD.PRINT  DAY
LCD.PRINT "."
LCD.PRINT  MONTH
LCD.PRINT "."
LCD.PRINT "200"
LCD.PRINT  YEAR
LCD.PRINT "    "
'-------------------------------------------------
'Hier erscheint eigenes Programm
aktuelleZeit = Hour * 100 + Minute
if month = (1 or 12) then b = a 'Januar od. Dez.
if month = (2 or 11) then b = a + 100 'Febr. od. Nov.
if month = (3 or 10) then b = a + 200 'März od. Okt.
if month = (4 or 9)  then b = a + 300 'April od. Sept.
if month = (5 or 8)  then b = a + 400 'Mai od. Aug.
if month = (6 or 7)  then b = a + 500 'Juni od. Juli

if dow > 6 then dow = 0 'dient dazu, einen bug zu umgehen
if dow = 1 then d = 10 'Montag
if dow = 2 then d = 20 'Dienstag
if dow = 3 then d = 15 'Mittwoch
if dow = 4 then d = 4  'Donnerstag
if dow = 5 then d = 0  'Freitag
if dow = 6 then d = 17 'Samstag
if dow = 0 then d = 11 'Sonntag

'Küche
if aktuelleZeit = (b + 30 + d) and (second =1) then goto schaltenRel1 'Licht einschalten
if aktuelleZeit = (b + 35 + d) and (second =1) then goto schaltenRel1 'Licht ausschalten
if aktuelleZeit = (b + 41 + d) and (second =1) then goto schaltenrel1 'Licht einschalten
if aktuelleZeit = (c + 5 + d) and (second =1) then goto schaltenrel1 'Licht ausschalten
'........................................

goto LOOP

#schaltenRel1 'Küche
rel1=ON
EXTPORT=STATION_IO   'ZUSÄTZLICH EXTERNEN PORT BESCHREIBEN; brauche ich das überhaupt?
pause 25
rel1=OFF
EXTPORT=STATION_IO   'ZUSÄTZLICH EXTERNEN PORT BESCHREIBEN; brauche ich das überhaupt?
pause 25

 Antwort schreiben

Bisherige Antworten:

Re: Schaltuhr -- mal wieder (von ManfredW - 12.06.2007 20:29)
    Re: Schaltuhr -- mal wieder (von Friedel - 15.06.2007 22:07)
Re: Schaltuhr -- mal wieder (von Schau ma mal - 11.06.2007 21:56)
    Re: Schaltuhr -- mal wieder (von Friedel - 12.06.2007 19:30)