Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Nachfolgend ein paar Dinge : > > <code> > //............................................................... > //... ........ > //.. Messen der Temperaturen und speichern in variable > //............................................................... > > thread Sensoren > > { > loop > > // diese Variablen müssen vor die Loop Schleife, sonst werden diese jedesmal > // wieder neu definiert !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > string a,b,c,e,f; > int n,ad,d; > float U,R; > > b=""; > U=0.004*ports.adc(0); > R=(8000/U-1600)/10000; > // mache deine Berechnung noch mit einer Hilfsvariable, sonst könnte sein > // das bei Threadabgabe das ergebniss nicht stimmt und dein Schaltprogramm > // falsche IST werte hat, so etwa : > // hilsvariable = Formel/Berechnung ; > // IST1 = Hilfsvariable > > global.IST1=1000/(math.ln(R)/3.988+1000/298)-273; > str.putfloatf(b,global.IST1,1); > a="Kessel : "; > b=a+b; > > c=""; > U=0.004*ports.adc(1); > R=(8000/U-1600)/10000; > // schon wieder IST1 ????????????????????????????????????????? > global.IST1=1000/(math.ln(R)/3.988+1000/298)-273; > str.putfloatf(c,global.IST1,1); > a="Heizkreis"; > c=a+c; > > e=""; > U=0.004*ports.adc(2); > R=(8000/U-1600)/10000; > // schon wieder IST1 ????????????????????????????????????????? > global.IST1=1000/(math.ln(R)/3.988+1000/298)-273; > str.putfloatf(e,global.IST1,1); > a="Boiler : "; > e=a+e; > > f=""; > U=0.004*ports.adc(3); > R=(8000/U-1600)/10000; > // schon wieder IST1 ????????????????????????????????????????? > global.IST1=1000/(math.ln(R)/3.988+1000/298)-273; > str.putfloatf(f,global.IST1,1); > a="Pufferoben : "; > f=a+f; > } > > /************************************************************************* > Hauptprogramm 1 > *************************************************************************/ > thread Programm1 > { > string a,s,b,c,e,f; > int n,ad,d; > float U,R; > //************************************************************************ > > // hier beginnt die Programmschleife ------------------------------------- > loop > { > // Programmteil für Fühler 1 *** Kesseltemperatur ****************************** > > > station_lcd.clear();sleep 5;station_lcd.print("Temperatur im"); > > // was willst du hier anzeigen, Variable b hat den Wert 0 ??!!!!!!!! > station_lcd.line2();station_lcd.print(b); > sleep 2000; // zwei Sekunden Anzeige am Display > > if global.IST1 {ports.set(8,0); > station_io.LEDoff(1);}//..Ports low wenn temp unter SOLL > if global.IST1 {ports.set(9,0);station_io.LEDoff(2);}//....low wenn temp unter soll+5 Grad > > if global.IST1>=global.SOLL1 > {ports.set(8,1);//..Port high pumpe kessel ein > station_io.LEDon(1);} > if global.IST1>(global.SOLL1+5) > {ports.set(9,1);station_io.LEDon(2);}//..port high wenn temp 3 grad über SOLL > > // Programmteil für Fühler 2 *** Heizkreistemperatur *************************** > > station_lcd.clear();sleep 5;station_lcd.print("Temperatur im"); > // was willst du hier anzeigen, Variable c hat den Wert 0 ??!!!!!!!! > station_lcd.line2();station_lcd.print(c); > sleep 2000;// zwei Sekunden Anzeige am Display > > if global.IST2 {ports.set(10,1);station_io.LEDon(6);}//...port high wenn temp niedrig > if global.IST2>=global.SOLL2 > {ports.set(10,0);station_io.LEDoff(6);}//..port low wenn temp=SOLL > if global.IST4 {station_io.LEDoff(6);}// led off bei Puffer oben unter SOLL4 > if global.IST2>global.SOLL2+3 > {ports.set(11,1);station_io.LEDon(7);}//..port high wenn temp über SOLL > > if global.IST2<=global.SOLL2 > {ports.set(11,0);station_io.LEDoff(7);}//..port low wenn temp=SOLL > if global.IST4 {station_io.LEDoff(7);}//..Led off bei Pufferoben unter SOLL4 temp > > > // ................Fühler 3 für Boiler ladung bis 60 Grad........ > > > station_lcd.clear();sleep 5;station_lcd.print("Temperatur im"); > // was willst du hier anzeigen, Variable e hat den Wert 0 ??!!!!!!!! > station_lcd.line2();station_lcd.print(e); > sleep 2000;// zwei Sekunden Anzeige am Display > > if global.IST3>=global.SOLL3 > {ports.set(13,0);station_io.LEDoff(3);}//..Boiler stop bei 60 Grad > if global.IST3 {station_io.LEDoff(3);} > > if global.IST3 {ports.set(13,1);station_io.LEDon(3);}//..boiler Laden > > //.............................................................................. > // ..............Fühler4 Puffer oben ab 40 Grad heizungspumpe P4 ein,freigabe > // freigabe für Boiler REL1,unter 40 Grad Mischerstop und schliessen,Boilerstop, > > > station_lcd.clear();sleep 5;station_lcd.print("Temperatur "); > // was willst du hier anzeigen, Variable e hat den Wert 0 ??!!!!!!!! > station_lcd.line2();station_lcd.print(f); > sleep 2000;// zwei Sekunden Anzeige am Display > > if global.IST4 {ports.set(12,0);station_io.LEDon(4);// Port P4 low unter 40 Grad > station_io.RELon(1);//... freigabe stop Boiler stop,mischer zu ,relais extern > ports.set(10,0);ports.set(11,0);station_io.LEDoff(6);station_io.LEDoff(7); > ports.set(13,0);station_io.LEDoff(3);station_io.LEDoff(5);} > > if global.IST4>global.SOLL4 > {ports.set(12,1);station_io.LEDoff(4);station_io.LEDon(5); > station_io.RELoff(1);}//...freigabe Boiler und Mischer ,relais extern > //..heizungspumpe ein > > > }} > > </code> > > > > thread für die anzeige string a,b,c,e,f; nochmals anlegen muss oder nicht?? > Du müsstest dieVariable "c", wo bei stehen sollte "Heizkreis : xx Grad" als global anlegen, dann > würde das schon gehen. Benutze aber bitte dafür einen anderen Namen als wie "c". > z.B. > globale Variable "TempHeizkreis" > dann übergibst du Fühlerberchnungsthread immer in die Variable "TempHeizkreis". > Jetzt kannst du die Variable "TemHeizkreis" von jeden Thread aus anzeigen lassen. > > Rene > > >