
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Kannst mal das prog dazu posten? > > > > hallo > > ich habe seit jahren eine heizungssteuerung > > auf Port[13] habe ich den ölbrenner angeschlossen > > und das hat auch jahre lang funktioniert > > heute habe ich eine kleine änderung vorgenommen > > und zwei byte variablen eingefügt > > anschliesend war der brenner nicht mehr auf > > Port[13] sondern auf DA[1] > > wie ist das möglich ???? > > > > mfg michi das ist das programm 'Heizungssteuerung für Reinhold 'Öl und Holzofen erwärmen einen 1000 'Liter Speicher von wo aus die Heizung gespeist wird '--------------------------------------------------------------- define Datenbus byteport [1] 'Datenbus define RS port[9] define RW port[10] define E port[11] define daten byte '-------------------------------------------- define uhr port[12] define spannungölkessel AD[1] 'eingänge define spannungölrück AD[2] define spannungaussen AD[3] define spannungholzvorlauf AD[4] define spannungholzrücklauf AD[6] define spannungheizkreis AD[5] define schalterspannung AD[7] 'programmwahlschalter define heizkreisspannung AD[8] 'regler für heizungsvorlauf '-------------------------------------------- define brenner Port[13] 'ausgänge define ölofenpumpe Port[14] define heizkreispumpe Port[16] define holzofenpumpe Port[15] define mischerauf DA[2] define mischerzu DA[1] '------------------------------------ define tempölkessel word define tempölrück word define tempaussen word define tempholzvorlauf word define tempholzrücklauf word define tempheizkreis word define schalter word define heizkreissoll word define zahl word define voel byte define i byte define x byte define y byte x=0:y=0 tempölkessel = 60 tempölrück = 60 tempholzvorlauf = 60 tempholzrücklauf = 40 tempaussen = 0 tempheizkreis = 40 '------------------------------------- gosub init 'iniziiren der LCD '------------------------------------ #anfang print"Anfang "; 'abfrage des programmwahlschalters '--------------------------------------- if schalter > 0 and schalter < 124 then goto aus if schalter > 123 and schalter < 145 then goto hand if schalter > 144 and schalter < 169 then goto winter if schalter > 168 and schalter < 256 then goto winter '--------------------------------------------------------- #winter print "winter ", if voel = 0 then gosub schreibeholz if voel = 1 then gosub schreibeöl gosub schreibe2bis4 pause 50 gosub abfrage gosub speicherladen gosub heizkreis if tempölrück > (heizkreissoll+5) then voel = 0 'umschaltung holz-öl wen im puffersp. '5° mehr ist als heizkreissoll dan wird kein öl eingesch. if tempölrück < (heizkreissoll-5) then voel = 1 'umschaltung holz-öl wen im puffersp. print "voel=";voel print " "; '5° weniger sind als heizkrs.dan wird auf öl umgeschaltet gosub warmwasserladen if uhr = 1 and voel = 1 then gosub oelpumpe'es ist tag und der speicher ist kalt if voel = 1 then gosub brenner 'wen der speicher kalt ist wird der brenner gestartet if voel = 0 then brenner = off goto anfang '------------------------------------------------------------- #Heizkreis print "Heizkreis "; if uhr = 0 then goto nacht 'lampe bei uhr leuchtet nicht wenn nachtprogramm if uhr = 1 then i = 0 heizkreispumpe = on 'mischersteuerung if tempheizkreis > (heizkreissoll+2) then gosub kaelter if tempheizkreis < (heizkreissoll-2) then gosub wärmer return '--------------------------------------------------------- #kaelter if x > 100 then return y = 0 mischerauf = off pause 25 mischerzu = on print " mischer macht-ZU "; pause 100 x = x+1 mischerzu = off return '----------------------------------------------------- #wärmer if y > 100 then return x = 0:i=0 mischerzu = off pause 25 mischerauf = on print " mischer macht-AUF "; pause 100 y = y+1 mischerauf = off return '---------------------------------------------------- #nacht print" nacht "; heizkreispumpe = off mischerauf = off pause 25 i=i+1 print" V-i= ";i if i>62 then i=62 'sonst fängt er nach speicherüberlauf wieder an zu zumachen if i > 60 then return mischerzu = on print " mischer macht-ZU Nacht... " pause 200 mischerzu = off return '------------------------------------------------------- #warmwasserladen 'ladet vom pufferspeicher zum warmwassersp. print "Warmwasserladen "; if voel = 1 then goto warmw2 if tempölkessel > 65 then ölofenpumpe = off if tempölrück < tempölkessel +6 then ölofenpumpe = off if tempölkessel < 36 then ölofenpumpe = on return #warmw2 print "warmwaser 2 "; if uhr = on then return ölofenpumpe = off if tempölkessel > 55 then brenner = off if tempölkessel < 45 then brenner = on return '------------------------------------------------------------ #oelpumpe print "oelpumpe "; if tempölkessel < (tempölrück +1) then ölofenpumpe = off if tempölkessel > (tempölrück +4) then ölofenpumpe = on return '--------------------------------------------------------- #brenner print "brenner "; if tempölkessel < 50 then brenner = on if tempölkessel > 59 then brenner = off return '----------------------------------------------------------- '********************************************************** '********************************************************* #speicherladen 'pufferspeicher ladomat print"speicherladen "; if tempholzvorlauf < 50 then goto holzoff if tempholzrücklauf > (tempholzvorlauf-6) then goto holzoff if tempholzrücklauf < (tempholzvorlauf -6) then holzofenpumpe = on return #holzoff holzofenpumpe = off return '---------------------------------------------------- '----------------------------------------- #aus 'alles ausschalten print "aus "; gosub abfrage gosub schreibeaus gosub schreibe2bis4 brenner = off ölofenpumpe = off heizkreispumpe = off holzofenpumpe = off mischerauf = off mischerzu = off pause 50 goto anfang '----------------------------------------- #hand print "hand "; gosub abfrage gosub schreibehand gosub schreibe2bis4 if tempölkessel < 80 then brenner = on if tempölkessel > 85 then brenner = off pause 25 ölofenpumpe = on pause 25 heizkreispumpe = on pause 25 holzofenpumpe = on gosub wärmer 'mischer öffnet pause 25 goto anfang '---------------------------------------------------------------------- '----------------------------------------------------------------------- '---------------------------------------------------------------------- #abfrage 'abfrage der AD eingänge '------------------------------------- print "abfrage "; if (spannungölkessel *2 -273) > tempölkessel then tempölkessel = tempölkessel + 1 if (spannungölkessel *2 -273) < tempölkessel then tempölkessel = tempölkessel - 1 if (spannungölrück *2 -273) > tempölrück then tempölrück = tempölrück + 1 if (spannungölrück *2 -273) < tempölrück then tempölrück = tempölrück - 1 if (spannungaussen *2 -273) > tempaussen then tempaussen = tempaussen + 1 if (spannungaussen *2 -273) < tempaussen then tempaussen = tempaussen - 1 if (spannungholzvorlauf *2 -273) > tempholzvorlauf then tempholzvorlauf = tempholzvorlauf + 1 if (spannungholzvorlauf *2 -273) < tempholzvorlauf then tempholzvorlauf = tempholzvorlauf - 1 if (spannungholzrücklauf *2 -273) > tempholzrücklauf then tempholzrücklauf = tempholzrücklauf + 1 if (spannungholzrücklauf *2 -273) < tempholzrücklauf then tempholzrücklauf = tempholzrücklauf - 1 if (spannungheizkreis *2 -275) > (tempheizkreis+1)then tempheizkreis = tempheizkreis + 2 if (spannungheizkreis *2 -275) < (tempheizkreis-1)then tempheizkreis = tempheizkreis - 2 if (spannungheizkreis *2 -275) > tempheizkreis then tempheizkreis = tempheizkreis + 1 if (spannungheizkreis *2 -275) < tempheizkreis then tempheizkreis = tempheizkreis - 1 schalter = schalterspannung heizkreissoll = heizkreisspannung if tempaussen > 0 then goto aussen2 heizkreissoll = (heizkreissoll/6)-(tempaussen/2)+30 goto aussen3 #aussen2 heizkreissoll = (heizkreissoll/6)+30 #aussen3 if heizkreissoll>65 then heizkreissoll= 65 print " " print "holzv holzr ölk ölr HK-soll-ist aus schalt. holzofp. ölop. heizkrp. brenner " print " ";tempholzvorlauf; print " ";tempholzrücklauf; print " ";tempölkessel; print " ";tempölrück; print " ";heizkreissoll; print " ";tempheizkreis; print " ";tempaussen; print " ";schalter; print " ";holzofenpumpe; print " ";ölofenpumpe; print " ";heizkreispumpe; print " ";brenner return '-------------------------------------------------------------------- '-------------------------------------------------------------------- '-------------------------------------------------------------------- '---------------------------------------------------------------- '----------------------------------------------------------------- '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'lcd ausgabe '------------------------------------------------------------------ #schreibeaus 'schreibt anlage ist aus 'erste zeile daten=&H00 'beginn erste Zeile -- gosub cursor daten=65 'A gosub zeichen daten=110 'n gosub zeichen daten=108 'l gosub zeichen daten=97 'a gosub zeichen daten=103 'g gosub zeichen daten=101 'e gosub zeichen daten=32 ' gosub zeichen daten=105 'i gosub zeichen daten=115 's gosub zeichen daten=116 't gosub zeichen daten=32 ' gosub zeichen daten=65 'A gosub zeichen daten=85 'U gosub zeichen daten=83 'S gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen return '-------------------------------------- '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #schreibehand 'schreibt Handbetrieb 'erste zeile daten=&H00 'beginn erste Zeile -- gosub cursor daten=72 'H gosub zeichen daten=97 'a gosub zeichen daten=110 'n gosub zeichen daten=100 'd gosub zeichen daten=98 'b gosub zeichen daten=101 'e gosub zeichen daten=116 't gosub zeichen daten=114 'r gosub zeichen daten=105 'i gosub zeichen daten=101 'e gosub zeichen daten=98 'b gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen return '-------------------------------------- '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '-------------------------------------- #schreibeholz 'schreibt Holz -ein 'erste zeile if uhr = 0 then goto schreibeholzaus daten=&H00 'beginn erste Zeile -- gosub cursor daten=72 'H gosub zeichen daten=111 'o gosub zeichen daten=108 'l gosub zeichen daten=122 'z gosub zeichen daten=32 ' gosub zeichen daten=72 'H gosub zeichen daten=101 'e gosub zeichen daten=105 'i gosub zeichen daten=122 'z gosub zeichen daten=117 'u gosub zeichen daten=110 'n gosub zeichen daten=103 'g gosub zeichen daten=32 ' gosub zeichen daten=69 'E gosub zeichen daten=105 'i gosub zeichen daten=110 'n gosub zeichen return '-------------------------------------- #schreibeholzaus daten=&H00 'beginn erste Zeile -- gosub cursor daten=72 'H gosub zeichen daten=111 'o gosub zeichen daten=108 'l gosub zeichen daten=122 'z gosub zeichen daten=32 ' gosub zeichen daten=72 'H gosub zeichen daten=101 'e gosub zeichen daten=105 'i gosub zeichen daten=122 'z gosub zeichen daten= 117 'u gosub zeichen daten=110 'n gosub zeichen daten=103 'g gosub zeichen daten=32 ' gosub zeichen daten=65 'A gosub zeichen daten=117 'u gosub zeichen daten=115 's gosub zeichen return '-------------------------------------- '------------------------------------------------------------------ #schreibeöl 'schreibt Öl 'erste zeile if uhr = 0 then goto schreibeölnacht daten=&H00 'beginn erste Zeile -- gosub cursor daten=79 'O gosub zeichen daten=101 'e gosub zeichen daten=108 'l gosub zeichen daten=32 ' gosub zeichen daten= 72 'H gosub zeichen daten=101 'e gosub zeichen daten=105 'i gosub zeichen daten=122 'z gosub zeichen daten=117 'u gosub zeichen daten=110 'n gosub zeichen daten=103 'g gosub zeichen daten=32 ' gosub zeichen daten=69 'E gosub zeichen daten=105 'i gosub zeichen daten=110 'n gosub zeichen daten=32 ' gosub zeichen return '-------------------------------------- #schreibeölnacht 'schreibt Öl - Nacht 'erste zeile daten=&H00 'beginn erste Zeile -- gosub cursor daten=79 'O gosub zeichen daten=101 'e gosub zeichen daten=108 'l gosub zeichen daten=32 ' gosub zeichen daten=72 'H gosub zeichen daten=101 'e gosub zeichen daten=105 'i gosub zeichen daten=122 'z gosub zeichen daten=117 'u gosub zeichen daten=110 'n gosub zeichen daten=103 'g gosub zeichen daten=32 ' gosub zeichen daten=65 'A gosub zeichen daten=117 'u gosub zeichen daten=115 's gosub zeichen daten=32 ' gosub zeichen return '-------------------------------------- '------------------------------------------------------------------ '-------------------------------------- #schreibe2bis4 'Dritte zeile '--------------------schreibt die warmwassertemperatur daten=87 'W gosub zeichen daten=97 'a gosub zeichen daten=114 'r gosub zeichen daten=109 'm gosub zeichen daten=119 'w gosub zeichen daten=97 'a gosub zeichen daten=115 's gosub zeichen daten=115 's gosub zeichen daten=101 'e gosub zeichen daten=114 'r gosub zeichen daten=32 ' gosub zeichen daten=32 ' 12 gosub zeichen daten=32 ' 13 gosub zeichen zahl=tempölkessel if zahl < 0 then daten = 45 else daten = 43 '+ oder - als vorzeichen gosub zeichen if zahl < 0 then zahl= not zahl Daten = (Zahl / 10) +48 gosub Zeichen Daten = (Zahl mod 10) + 48 gosub Zeichen '----------------------- '--------------------------------------- 'Zweite zeile schreibt die heizungstemperatur '---------------------------------- daten=&H40 'beginn zweite Zeile gosub cursor daten=72 'H 1 gosub zeichen daten=101 'e gosub zeichen daten=105 'i gosub zeichen daten=122 'z gosub zeichen daten=117 'u gosub zeichen daten=110 'n gosub zeichen daten=103 'g gosub zeichen daten=32 ' 8 gosub zeichen zahl=heizkreissoll if zahl < 0 then daten = 45 else daten = 43 '+ oder - als vorzeichen gosub zeichen if zahl < 0 then zahl= not zahl Daten = (Zahl / 10) +48 gosub Zeichen Daten = (Zahl mod 10) + 48 gosub Zeichen daten=32 ' 12 gosub zeichen daten=32 ' 13 gosub zeichen zahl=tempheizkreis if zahl < 0 then daten = 45 else daten = 43 '+ oder - als vorzeichen gosub zeichen if zahl < 0 then zahl= not zahl Daten = (Zahl / 10) +48 gosub Zeichen Daten = (Zahl mod 10) + 48 gosub Zeichen '-------------------------------------- 'Vierte zeile '----------------------------------- '--------------------schreibt die aussentemperatur zahl=tempaussen daten=65 'A gosub zeichen daten=117 'u gosub zeichen daten=115 's gosub zeichen daten=115 's gosub zeichen daten=101 'e gosub zeichen daten=110 'n gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' 10 gosub zeichen daten=32 ' gosub zeichen daten=32 ' gosub zeichen daten=32 ' 13 gosub zeichen if zahl < 0 then daten = 45 else daten = 43 '+ oder - als vorzeichen gosub zeichen if zahl < 0 then zahl= not zahl Daten = (Zahl / 10) +48 gosub Zeichen Daten = (Zahl mod 10) + 48 gosub Zeichen return '--------------------------------------- '----------------------- '--------------------------------------- '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ goto anfang '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' '############################################################### '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #Init E=0 Daten = &H38 'initialisierung der LCD mit 2 zeilen gosub Kommando Daten = &H0F 'cursor an cursor blinkt gosub Kommando Daten = &H01 gosub Kommando Daten=0 return '++++++++++++++++++++++ #Kommando RW = 0 RS = 0 Datenbus = Daten pulse E Daten=0 return '++++++++++++++++++++++ #Zeichen RW = 0 RS = 1 Datenbus = Daten pulse E Daten=0 return '++++++++++++++++++++++ #Cursor RW = 0 RS = 0 Datenbus = Daten + &H80 pulse E Daten=0 return goto anfang end |
| Antwort schreiben |