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 ! > Hallo, > > ich habe ein kleine PRg geschrieben, mit dem eine > Zirkulationspumpe gesteuert werden soll. Die Routint wird mit Anforderung aufgerufen und sollte dann von selbst > weiter laufen - tut sie soweit auch. > Zur Funktion: Sobald nach einem Start ein Zeitsignal anliegt soll die Steuerung in Abhängigkeit von Werktags (Wt) und > Wochenende (We) zu festgelegten Zeiten eine Pumpesteuerung einschalten und nach Ablauf der max Zeit für die > Einschaltung wieder ausschalten. Bei Betätigung eines Kontaktes soll die Pumpensteuerung 1 mal eingeschaltet > werden und die Zeitautomatik soll dann bis zum nächsten Tag ausgeschaltet werden. In einem anderen thread werden die Daten der > Restlaufzeit bzw Blockadezeit auf dem LCD angezeigt. > Manchmal - bisher habe ich noch keine Idee wann - setzt das Programm den Status nach ablauf der Bockiertzeit nicht wieder auf 0 und > die Anzeige zeigt negative Werte an. Das Prg reagiert natürlich auch nicht mehr auf den Kontakt. > > Hat jemand eine Idee was das sein könnte - oder sehe ich den Fehler einfach nur nicht? > > <code> > /* On anforderung Pumpe > 0= Aus / 1=Ein Schalter / 2=Ein Werktag / 3=Ein Wochenende*/ > > int On; > > thread Pump //Pumpe ein und ausschalten > { > var.RunTimeZ= var.NowTimeSZ + var.OnTime; // Eindauer setzen > var.pstatus=1; // Status setzen Pumpe Ein > var.Modbus[2]=var.pstatus; // Status an Modbus > station_io.RELon(1); // Pume Einschalten > wait var.RunTimeZ<=var.NowTimeSZ; // Einschaltdauer warten > var.RunTimeZ= var.NowTimeSZ + var.OffTime; // Blockadezeit Ende setzen > var.pstatus=2; // Status setzen blockiert > var.Modbus[2]=var.pstatus; // Status an Modbus > station_io.RELoff(1); // Pumpe Aus > wait var.RunTimeZ<=var.NowTimeSZ; // Blockdauer warten > var.pstatus=0; // Status setzen Pumpe Aus > var.Modbus[2]=var.pstatus; // Status an Modbus > halt;} // Unterprogramm anhalten > > thread Anforderung //anforderung Zikulationspumpe > { > // Automatische Einschaltung > if system.dcferr()==0 // Wenn DCF O > {if var.PAuto>=1 // Pumpe Auto Anforderung > {if system.dow()>0 // von Montag > {if system.dow()<6 // bis Freitag > {if var.NowTimeMZ>=var.PonWtZ // Einschaltzeit Erreicht > {On=2;var.PAuto=2; // Anforderung Wochentags - Auto Aktiv > if var.NowTimeMZ>=var.PonWtZ+var.PonWtZ // Ausschaltzeit erreicht > {On=0;var.PAuto=0;} // Anforderung aus - Auto blcokierten > } > } > else // Sammstag > {if var.NowTimeMZ>=var.PonWeZ // Einschaltzeit erreicht > {On=3;var.PAuto=2; // Anforderung Wochenende > if var.NowTimeMZ>=var.PonWeZ+var.PonWeZ // Ausschaltzeit erreicht > {On=0;var.PAuto=0;} // Anforderung aus - Auto blcokierten > } > } > } > else // Sonntag > {if var.NowTimeMZ>=var.PonWeZ // Einschaltzeit erreicht > {On=3;var.PAuto=2; // Anforderung Wochende > if var.NowTimeMZ>=var.PonWeZ+var.PonWeZ // Ausschaltzeit erreicht > {On=0;var.PAuto=0;} // Anforderung aus - Auto blcokierten > } > } > var.Modbus[9]=On; // On an Modbus > var.Modbus[11]=var.PAuto; // Pauto an Modbus > } > } > if ports.get(15)==0 // Port P15 Ein > {On=1;var.Modbus[9]=On; // Anforderung von Schalter > var.PAuto=0;var.Modbus[11]=var.PAuto;} // Automatikfreigabe blockieren > > if var.pstatus==0 // Bei Pumpe aus > {if On>=1 // Bei Anforderung > {run Pump;} // Unterprogramm ausführen > } > else // Bei Pumpe im Zyklus > {On=0;var.Modbus[9]=On; // Anforderung Aus und an Modbus > var.PAuto=0; // Automatikfreigabe blockieren > var.Modbus[9]=On; // On an Modbus > var.Modbus[11]=var.PAuto; // Pauto an Modbus > } > } > </code> > > mfg > MaWo