Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Programm läuft nicht Kategorie: Programmierung (von Hans - 12.05.2007 20:57)
Als Antwort auf Re: Programm läuft nicht von Walter - 12.05.2007 20:48
Ich nutze:
C-Control II Station, OSOPT_V2
Hallo
ich würde den Befehl "loop"
an das Ende setzen
So wie es aufgebaut ist wiederholt sich nur Programminfo an LCD

Die anderen Zeilen werden garnicht angesprungen
GruÃ? Hans

> 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: