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 

 Re: port veränderung Kategorie: Programmierung Basic (von michi314 - 3.12.2010 9:57)
 Als Antwort auf Re: port veränderung von Grübel Denk - 2.12.2010 17:05
michi314 nutzt:  CC1-M-Unit V1.1
> 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

Bisherige Antworten:

Re: port veränderung (von Grübel Denk - 4.12.2010 12:30)
Re: port veränderung (von GerdL - 4.12.2010 11:38)
    Re: port veränderung (von michi314 - 4.12.2010 12:22)