
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Michi314 Also Du nutzt bereits 23 von den 24 möglichen Bytes, wenn Du noch 2 Bytes dazu gibst bist Du über 24. Wenn Du den Words und Bytes einen definierten Platz zuweist kannst Du noch weitere Bytes nutzen. define tempölkessel word[1] belegt Byte 1+2 define tempölrück word[2] belegt Byte 3+4 ......................... define tempaussen word[9] belegt Byte 17+18 ......................... define y byte[22] Ausserdem immer zuerst alle Words dann Bytes daher define daten byte[23] nach den Words Siehe: http://manfred.wilzeck.de/ 1.11) Anzahl der Variablen (Erweiterung) Man kann Variable sparen wie im Kapitel „Tipps und Tricks“ beschrieben, denn die Anzahl der Variablen ist zunächst auf 24 Byte begrenzt. Mehr Variable erhält man durch Austausch des CCBas.dll (siehe 1.13). Damit wird auch der Fehler im Betriebssystem bei der Programmlänge korrigiert. Byte 25 bis 28 (= word 13 und 14) und Byte 59 und 60 (=word 30) kann ich verwenden, weil ich Interrupt und Befehl SQR nicht benutze. usw................. Gruß gerdl > > 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 |