Re: Programm läuft nicht Kategorie: Programmierung (von Walter - 12.05.2007 20:48) | ||
Als Antwort auf Re: Programm läuft nicht von Walter - 10.05.2007 21:20 | ||
| ||
Hallo! Bin wieder mal kurz vor einem Nervenzusammenbruch, grins! Mein Programm läuft einfach nicht - die �bertragung auf die C-Controll klappt, der Text Solarsteuerung und Datum erscheint und bleibt für ewig stehen. Es passiert dann einfach nichts mehr. Einzelne Programmteile habe ich in der Entwicklung seperat ablaufen lassen, hat funkioniert. Das komplette Programm läuft allerdings nicht. Verschiedene Parameter müssen noch korrigiert werden (sleep, Temperaturdifferenzen...) Ich hoffe mir kann jemand sagen, was ich falsch mache. Danke, Walter //------------ thread main //------------ { int delta; int differenz; string s,p,t; int n,ad,d; float U1,U2,U3,R1,R2,R3,T1,T2,T3; station_io.init(); station_io.RELoff(1); station_io.RELoff(2); station_lcd.init(); /******** Programminfo am LCD *************/ station_io.Clear(); station_lcd.clear(); station_lcd.print(" Solarsteuerung"); station_lcd.line2(); station_lcd.print(" 2007_05_10"); sleep 5000; loop { /******** Temperaturmessungen am Boiler **********/ { station_lcd.clear(); p=" "; U1=0.004*ports.adc(4); //Boilersensor auf Klemme 32 R1=5/U1-1; T1=10*(1000/(math.ln(R1)/4.3+1000/298)-273); //modifizierte Formel str.putfloatf(p,T1,1); p=p+" Boilertemp."; station_lcd.print(p); if T1 > 70 //Boilertemperatur 70 Grad { station_io.LEDon(1); //Leuchtsignale an der C-Controll station_io.LEDon(2); station_io.LEDon(3); station_io.LEDon(4); station_io.LEDon(5); sleep 5000; //Wert wird später höher gesetzt } if T1 < 65 { station_io.LEDoff(1); station_io.LEDoff(2); station_io.LEDoff(3); station_io.LEDoff(4); station_io.LEDoff(5); sleep 2000; } } /********** Absorbertemperatur (Vorlauf) **********/ { station_lcd.clear(); t=" "; U2=0.004*ports.adc(2); //Absorbersensor auf Klemme 30 R2=5/U2-1; T2=10*(1000/(math.ln(R2)/3.988+1000/298)-273); //modifizierte Formel=3.988 str.putfloatf(t,T2,1); t=t+" Absorbtemp"; station_lcd.print(t); sleep 2000; /********** Rücklauftemperatur **********/ s=" "; U3=0.004*ports.adc(3); //Rücklaufsensor auf Klemme 31 R3=5/U3-1; T3=10*(1000/(math.ln(R3)/3.988+1000/298)-273); //modifizierte Formel=3.988 str.putfloatf(s,T3,1); s=s+" Rucklauftemp"; station_lcd.line2(); station_lcd.print(s); sleep 2000; /********** Differenzsteuerung der Pumpe **********/ differenz = T2 - T3; // Klemme 30 und 31 if differenz > 10 // 10 Grad Differenz { ports.set(8,1); sleep 2000; // Pumpe ein Minirelais auf Kl. 46 station_io.LEDon(6); sleep 2000; // Lichtsignal wenn Pumpe läuft } if differenz < 7 // bei <7 Grad Differenz { ports.set(8,0); sleep 2000; // Pumpe aus station_io.LEDoff(6); sleep 2000; // Lichtsignal aus } } // if math.abs(differenz) <= 9 // alles ausschalten // { ports.set(8,0); sleep 2000; // Pumpe aus sleep 2000; /********** Lichtmessung zur Nachführung **********/ delta = ports.adc(0) - ports.adc(1); //Lichtsensoren auf Klemme 28 und 29 if delta > 200 // Einschaltbedingung Rechtslauf { station_io.RELoff(1); sleep 2000; // erst ausschalten station_io.RELon(2); sleep 2000; // dann einschalten } if delta < -200 // Einschaltbedingung Linkslauf { station_io.RELoff(2); sleep 2000; // erst ausschalten station_io.RELon(1); sleep 2000; // dann einschalten } if math.abs(delta) <= 200 // alles ausschalten { station_io.RELoff(1); sleep 2000; // ausschalten station_io.RELoff(2); sleep 2000; // ausschalten } } } | ||
Antwort schreiben Antworten: Re: Programm läuft nicht (von Hans - 12.05.2007 20:57) |