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 

 Programm läuft nicht wie gewünscht Kategorie: Programmierung Basic (von Christian B. - 27.01.2007 13:13)
Christian B. nutzt:  CC1-Station V2.0
Hallo alle zusammen,
ich habe da ein Problem mit der Programmierung. Irgendwie läuft das Programm nicht so wie es soll. Das Programm soll bei einer Temperatur von über 18°C Relais 2 an und Relais 1 ausschalten( Wasser wird kälter). Wenn das Wasser unter 18°C ist soll das ganze umgekehrt passieren. Wenn es genau 18°C ist sollen beide Relais aussein. Das Problem ist, dass die Relais nie schalten und nur die Temperatur gemessen wird.

DEFINE Sensor AD[1]
DEFINE REL1 as port[29]
DEFINE REL2 as port[30]
define REL3 as port[31]
define REL4 as port[32]
define LED1 as port[25]
define LED2 as port[26]
define LED3 as port[27]
define LED4 as port[28]
DEFINE i AS BYTE 'für die Temperaturberechnung
DEFINE t AS WORD 'Temperatur
Define Vortemp as Byte
DEFINE LetzterWert AS BYTE
DEFINE AktuellerWert AS BYTE
DEFINE LIGHT as Port [16]
DECLARE FUNCTION ErmittleTemp(Messwert AS BYTE)
'Konstanten
DEFINE Vorlauftemp AS BYTE
'Funktionstest bei dem alle Relais und LED's getestet werden
LCD.INIT
LCD.POS 1,1
LCD.Print "Funktionstest"
LIGHT= on
PAUSE 25
LCD.POS 2,1
LCD.PRINT "REL 1"
REL1=ON
PAUSE 25
REL1=OFF
LCD.POS 2,1
LCD.PRINT "REL 2"
REL2=ON
PAUSE 25
REL2=OFF
LCD.POS 2,1
LCD.PRINT "REL 3"
REL3=ON
PAUSE 25
REL3=OFF
LCD.POS 2,1
LCD.PRINT "REL 4"
REL4=ON
PAUSE 25
REL4=OFF
LCD.POS 2,1
LCD.PRINT "LED 1"
LED1=ON
PAUSE 25
LED1=OFF
LCD.POS 2,1
LCD.PRINT "LED 2"
LED2=ON
PAUSE 25
LED2=OFF
LCD.POS 2,1
LCD.PRINT "LED 3"
LED3=ON
PAUSE 25
LED3=OFF
LCD.POS 2,1
LCD.PRINT "LED 4"
LED4=ON
PAUSE 25
LED4=OFF
LIGHT=off
LCD.clear
'Hauptpogramm
LIGHT= on
LCD.Print "Heizungs"
LCD.POS 2,1
LCD.Print "steuerung"
Pause 100
LIGHT= off

#DO    
LED1=ON     'LED Lauflichter zur Kontrolle
PAUSE 20    '20 Millisekunden Pause zwischen An und Aus
LED1=OFF

LED2=ON
PAUSE 20
LED2=OFF

LED3=ON
PAUSE 20
LED3=OFF

LED4=ON
PAUSE 20
LED4=OFF
'___________________________________
    AktuellerWert = Sensor
         LIGHT= on
    IF LetzterWert <> AktuellerWert THEN
        LCD.POS 1,1
        LCD.PRINT t (AktuellerWert)
        LCD.PRINT "  Grad Celsius"
     END IF  
    IF Vorlauftemp = t  Then        
        LCD.POS 2,1
        REL1= off
        REL2= off
    END IF  
            IF Vorlauftemp > t Then      
                REL1 = on             'Relais 1 ist mait dem Mischer gekoppelt und bewirkt, dass der Mischer aufgeht
                REL2= off
                LCD.POS 2,1
                LCD.PRINT "Mischer auf"
            END IF
                 IF Vorlauftemp < t Then
                    Rel2= on
                    REL1= off
                    LCD.POS 2,1
                    LCD.Print "Mischer zu"
                END IF
    goto Do
LCD.OFF
AktuellerWert = LetzterWert

FUNCTION ErmittleTemp(Messwert AS BYTE)

   

    FOR i = 0 TO UBOUND(tTemp)
        IF Messwert = LOOKTAB(tTemp, i) THEN
            IF i <= 10 THEN
                t = -10 + i
            ELSE
                t = i - 10
            END IF
            EXIT FOR
        END IF
    NEXT i

    ErmittleTemp = t
    Vorlauftemp = 18
END FUNCTION

TABLE tTemp
101 102 103 104 105 106 107 108 109
110 110 111 112 113 113 114 115 116 116 117 118 119
120 121 122 123 124 125 126 127 128 129 130 131 132
133 134 135 136 137 138 139 140 141 142 143 144 145
145 146 147 148 149 150 151 152 153 154 155 156 157
157 158 159 160 161 162 163 164 165 166
END TABLE

Schon mal danke im Voraus für eure Hilfe!!!

 Antwort schreiben

Bisherige Antworten:

Re: Programm läuft nicht wie gewünscht (von Hauk - 28.01.2007 12:39)
    Re: Programm läuft nicht wie gewünscht (von Naturbanause - 28.01.2007 20:52)
Re: Programm läuft nicht wie gewünscht (von Hauk - 27.01.2007 18:09)