
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |