Re: PWM regelung Kategorie: Programmierung (von André H. - 12.07.2004 7:57) | ||
Als Antwort auf PWM regelung von Guido - 11.07.2004 18:08 | ||
| ||
Hallo Guido, > Ich habe einen thread geschrieben der mir zwei Pumpen über PWM steuern soll. > Leider habe ich folgendes Problem die Pumpen werden ca 30 sec angesteuert und dann 30 sec nicht.?? Bitte formatiere Quellcode so, da� man ihn auch lesen kann. Dazu gehört einerseits, da� richtig eingerückt wird, und andererseits, da� das code-Tag gerade bei längeren Abschnitten benutzt wird. Ich habe den Code einmal in die IDE-kopiert. Allerdings verstehe ich nicht, was Du genau erreichen willst. Eine Drehzahlregelung à la IWP wird das jedenfalls nicht. Denn es wird bei jedem Schleifendruchgang jede IF-Bedingung ausgeführt, wenn nicht gerade die Temperaturen 0°C haben. Und wo wird t4 gesetzt. Vielleicht schreibst Du noch kurz die möglichen Werte (und Typ) der Variablen, welche nicht im Code definiert sind, dazu. Hier Dein Code nochmals lesbar formatiert: Ich kann nur jedem empfehlen, sich die Zeit zu nehmen, Quellcode lesbar zu formatieren. Das spart immer Zeit bei einer evtl. Fehlersuche. C2 verleitet einen zwar nach C-Manier zu schreiben, jedoch wäre eine "Basic-Formatierung" besser angebracht. thread main { int t1, t2, t3, t4 ; byte tim1, minute1; plm.settimebase(0,5); plm.settimebase(1,5); plm.setmode(0,0); plm.setmode(1,0); plm.setperiod(0,15000); plm.setperiod(1,15000); plm.out(0,regelung3.plm1); plm.out(1,regelung3.plm2); loop { t1=tempaus.value[4];//Holzkessel t3=tempaus.value[0];// �lkessel tim1=0; minute1=system.second(); while tim1<30 { wait minute1!=system.second(); minute1=system.second(); tim1=tim1+1; } t2=tempaus.value[4]; //Holzkessel t3=tempaus.value[0]; //�lkessel if t1 {//drehz hoch P1 regelung3.plm1=regelung3.plm1+10; if regelung3.plm1<30 regelung3.plm1=30; regelung3.plm1=regelung3.plm1*150-1; plm.out(0,regelung3.plm1); } if t2 { regelung3.plm1=regelung3.plm1-10; if regelung3.plm1<30 regelung3.plm1=30; regelung3.plm1=regelung3.plm1*150-1; plm.out(0,regelung3.plm1); //drehz runter P1 } if pcf.get(000,2)!=0 plm.out(0,0); if t3 { regelung3.plm2=regelung3.plm2+10; if regelung3.plm2<30 regelung3.plm2=30; regelung3.plm2=regelung3.plm2*150-1; plm.out(0,regelung3.plm2); //drehz hoch P2 } if t4 { regelung3.plm2=regelung3.plm2-10; if regelung3.plm2<30 regelung3.plm2=30; regelung3.plm2=regelung3.plm2*150-1; plm.out(0,regelung3.plm2); //drehz runter P2 } if pcf.get(000,3)!=0 plm.out(1,0); } } MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |