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 Walter - 12.05.2007 20:48)
Als Antwort auf Re: Programm läuft nicht von Walter - 10.05.2007 21:20
Ich nutze:
C-Control II Station, original OS
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)