Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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 

 Hier das Listing Kategorie: Programmierung Basic (von Robert - 12.12.2005 21:55)
 Als Antwort auf Re: Fehler oder in Ordnung? von ManfredW - 12.12.2005 19:11
Robert nutzt:  CC1-Station V1.1
Geändert wurde zur Stromversorgung von externen Relais und externen Ventilen der Reparaturersatz eines defekten 24V-Travos und den gleichzeitigen Einsatz einer 24V-Gleichspannungsquelle.

Hängen bleibt die Station offenbar recht regelmäßig aber nicht immer beim Relaisschalten, manchmal geht sie auch einfach aus.

Hier das Listing:


define Eingang1 AD[1]   'Temperatur des Warmwasserspeicher
define Eingang2 AD[2]   'Temperatur des Holzofens GD 8
define P1 port[1]       'Digitaler Eingang an Klemme 28, soll Betrieb des GD8 anzeigen
define K1 port[7]       'int.Relais K1,für Warmwasser, siehe: "Warmwasser"
define K2 port[8]       'int.Relais K2,für Honeywellventilsteuerung,s. "Heizung"
define K3 port[5]       'ext.Relais an Klemme 32, für Pufferladen
define K4 port[2]       'ext.Relais für 24V Travo, s. "Heizung" u. "Warmwasser"
define F1 port[9]       'Taste F1
define F2 port[10]      'Taste F2
define L1 port[13]      'LED über der Taste F1
define L2 port[14]      'LED über der Taste F2
define L3 port[15]      'LED über der Taste F3
define temp1 byte       '
define temp2 byte       '
define ww byte          'Hilfswert für Warmwasserbereitungszeit
define hzg byte         'Hilfswert damit die Umschaltung WW / HZG eine Totzeit bekommt
define puffer byte      'Hilfswert für Pufferladungszeit
define min byte         '
define sec byte         '
define X byte           'X ist der negierte Wert von P1, x = p1 * -1 ; x = 0 oder 1
define merkerx byte     'Variable zur Zwischenspeicherung von X


K1 = Off
K2 = Off
K3 = off
K4 = off
L1 = off
L2 = off
L3 = off
x = -1 * p1

' Datei ruecksetzen
open# for write
close#


#mainloop
10       if x = 0 then goto meldung1 else goto 11
'wenn x = 0, dann läuft die Pumpe des GD8
11       if x = 1 then goto meldung2 else goto loop
'wenn x = 1, dann steht die Pumpe des GD8

#loop
if not F1 then goto heizung
if not F2 then goto warmwasser
merkerx = x
temp1 = Eingang1
temp2 = Eingang2
sec = second
if sec = 2 then min = min + 1           'Minutenzähler wird um 1 erhöht
wait sec <> second                      'Warten bis diese Sekunde vorbei ist
if sec = 3 then beep 400, 10, 3         'Kontrollpieps
if min = 4 and sec = 12 then print "Temperaturen", day;".";month;"." ,hour;":";minute, temp1, temp2
wait sec <> second                      'warten, sonst Mehrfachausgabe
if min >= 4 and sec = 55 then min = 0   'Zurücksetzen des Minutenzählers
if hzg >= 99 then hzg = 0               'Rücksetzen des HeizungsMinutenzählers
if K1 = Off and sec = 7 then hzg = hzg +1
   'Wenn Heizung des Holzofens in Betrieb,
   'wird in der 7. Sekunde der HeizungsMinutenzähler um 1 erhöht
if K1 = On and sec = 6 then ww = ww +1
   'Wenn Warmwasser gemacht wird,
   'wird in der 6. Sekunde der WarmwasserMinutenzähler um 1 erhöht
if K3 = On and sec = 8 then puffer = puffer +1
   'Wenn in den Puffer geheizt wird,
   'wird in der 6. Sekunde der PufferMinutenzähler um 1 erhöht
if K1 = Off and hzg >= 4 and temp2 > 62 and temp1 < 52 then gosub warmwasser
   'Wenn "Heizung" und der Heizungsminutenzähler größer 4
   'wird bei einer Temperatur größer 62°C zu "Warmwasser" geschaltet,
   'wenn die Warmwassertemperatur kleiner 52°C ist
if K1 = Off and hzg >= 4 and temp2 > 70 and temp1 < 57 then gosub warmwasser
   'Wenn "Heizung" und der Heizungsminutenzähler größer 4
   'wird bei einer Temperatur größer 70°C zu "Warmwasser" geschaltet,
   'wenn die Warmwassertemperatur kleiner 57°C ist
if temp2 > 78 and k3 = off then gosub pufferladen
   'Ist die Temperatur größer 78°C wird in den Puffer geheizt
if ww >= 4 then gosub heizung
   'Wenn der Warmwasserminutenzähler 4 ist, wird wieder geheizt
if puffer >= 3 then gosub nichtpuffer
   'Wenn der Pufferminutenzähler 3 ist, wird der Puffer abgeschaltet
x = -1 * p1
   'Der Zustand "ist der Ofen an oder aus" wird abgefragt und gespeichert
if x <> merkerx then goto mainloop else goto loop
   'Wenn x ungleich merkerx ist, der Zustand des Ofens (an/aus) sich geändert
   'hat, dann weiter zu mainloop, wenn nicht zu loop

#Meldung1
print "GD8 ist in Betrieb"      day;".";month;"." ,hour;":";minute, temp1, temp2
hzg = 0
goto heizung

#Meldung2
print "GD 8 ist nicht in Betrieb"       day;".";month;"." ,hour;":";minute, temp1, temp2
hzg = 0
L1 = off
goto loop

#Heizung
        K4 = on      '24V-Travo wird eingeschaltet
        L2 = off     'Die LED über der Taste F2, die noch vom Warmwasser leuchtet, geht aus
        L1 = on      'Die LED über der Taste F1 geht an
        K1 = on      'K1 ist EIN, Finder-Relais ist EIN,
                     'am Honeywell-Venil liegt 24V Spannung an
        K2 = on      'jetzt habt die dritte Klemme des Ventils Strom - wenn K4 on ist -
                     'und das Ventil geht zurück in Heizbetrieb
        pause 450    'Zeit, die das Ventil zum umschalten braucht!!
        K1 = off     'K1 = Off, Finder-Relais ist AUS, Honeywell-Ventil mit Gastherme verbunden,
                     'die z.Zt. ohne Spannung ist.
        K2 = off     'K2 = Off
        hzg = 0      'Rücksetzten des HeizungsMinutenwertes
        ww = 0       'Rücksetzten des WarmwasserMinutenwertes
        Print "Heizung   ", day;".";month;"." ,hour;":";minute, temp1, temp2
        K4 = off       '24V-Travo wird ausgeschaltet
goto loop

#warmwasser
        K4 = on      '24V-Travo wird eingeschaltet
        L1 = off
        L2 = on
        K1 = on      'finder-Relais trennt Gastherme vom Honeywell-Ventil,
                     'da eine Klemme des Relais ohne Strom, schaltet das
                     'Ventil auf Warmwasser
        print "Warmwasser", day;".";month;"." ,hour;":";minute, temp1, temp2
        pause 450    'Zeit die das Ventil zum umschalten braucht
        K4 = off     '24V-Wechselstromtrafo ist AUS
        ww = 0
        'K1 bleibt an, da über K1 = on der WarmwasserMinutenzähler erhöht wird
goto loop

#pufferladen
        L3 = on
        K3 = on        'elektrisches Ventil zum Puffer geht auf
        print "Pufferladen EIN", day;".";month;"." ,hour;";";minute, temp1, temp2
        print "---------------"
goto loop

#nichtpuffer
        L3 = off
        K3 = off 'elektrisches Ventil zum Puffer geht zu
        puffer = 0
        print "Pufferladen AUS", day;".";month;"." ,hour;";";minute, temp1, temp2
        print "---------------"
goto loop

'Ende
'

 Antwort schreiben

Bisherige Antworten:

Re: Hier das Listing (von ManfredW - 13.12.2005 1:29)
    Fehler gefunden (von Robert - 16.12.2005 20:53)
        Re: Fehler gefunden (von Martin - 19.12.2005 16:24)
            Re: Fehler gefunden (von Robert - 21.12.2005 21:14)