
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Überprüfe doch einmal die Anweisung vor der Funktion. Die gehört doch bestimmt in die Schleife rein. Außerdem sind in dieser Anweisung linke und rechte Seite vertauscht. > 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 > '___________________________________ LetzterWert = AktuellerWert 'An dieser Stelle umspeichern > 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 |