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 Rene, > > > > > Kann es sein das der Code "verschluckt" wird? > > > > Nein. > > > > > Ich meine man kennt ja diverse komische Bugs etc., nicht > > > unbedingt vor der CC2 aber wie gesagt, nichts scheint unmöglich. > > > > Derzeit sind keine Bugs beim aktuellen OS bekannt. > > > > > 2 Tage lief die Anlage mit dem Code und dann begann der Murks > > > ohne das am Code etwas geändert wurde. > > > > Daß die Routine schonmal fehlerfrei lief bezweifle ich: > > <code> > > > wait sec!=system.second(); // Warten auf neue Sekunde > > > min =system.minute(); // Wenn neue Minute, dann gleichsetzen und abarbeiten > > </code> > > Was fällt Dir hier auf? > > Du wartest auf einen Sekundenwechsel. > > die Variable sec wird aber nirgends gesetzt. > > Dann setzt Du die Variable mit mit der aktuellen Minute. > > Diese Variable wird aber nirgendwo ausgewertet. > > > > Und ich hatte es schonmal erwähnt: Bitte auf einheitliches Einrrücken achten. > > > > <code> > > > /**************************************************************/ > > > /******** Zeitdefinition Stunden Minuten Sekunden *************/ > > > /*** EIN 07:30:00 AUS 07:30:45 EIN 17:30:00 AUS 17:30:45 ******/ > > > /**************************************************************/ > > > > > > { > > > if system.hour()==07 and system.minute()==30 // bei 7.30 Uhr > > > stports.setRel(2,1); // schalte ein > > > sleep 30000; sleep 15000; // warte 45 sec > > > stports.setRel(2,0); // schalte aus > > > } > > > { > > > if system.hour()==17 and system.minute()==30 // bei 17.30 Uhr > > > stports.setRel(2,1); // schalte ein > > > sleep 30000; sleep 15000; // warte 45 sec > > > stports.setRel(2,0); // schalte aus > > > } > > > } > > > }</code> > > > > Hier mit sleep zu arbeiten, kann ungünstig sein. Besonders, wenn der Thread > > später einmal mehr können soll. > > Besser wäre es, für die Laufzeiten einen Count-Down-Timer zu programmieren: > > <code> > > const schaltzeiten[]= 073000, 173000, -1; //7:30:00, 17:30:00 > > const schaltdauer= 45;// in Sekunden > > int sectimer; > > thread xy > > { > > long timeserial; > > int i; > > byte second; > > second=system.second(); > > loop > > { > > wait second!=system.second(); > > second=system.second(); > > timeserial=cast.intLong(system.hour())*10000 + system.minute()*100 + system.second(); > > i=0; > > do > > { > > if timeserial==schaltzeiten[i] > > { > > sectimer=schaltdauer; > > stports.setRel(2, 1); > > } > > if timeserial==-1 i=-1; else i=i+1; > > } while i >= 0; > > if sectimer>0 sectimer=sectimer-1; > > else > > if sectimer==0 > > { > > stports.setRel(2, 0); > > sectimer=-1; > > } > > } > > } > > </code> > > > > Statt einem Timer könnte man natürlich auch Ausschaltzeiten definieren. > > > > > > MfG André H. > > Hallo André, > > leider scheint der Code von Dir auch nicht zu Funktionieren, > heute morgen 07:30 wurde das Relais nicht angesprochen. > Ich habe jetzt auch kaum noch Zeit, da ich ab morgen wieder > Arbeiten muss und dann erst in 14 Tagen wieder daheim bin. > Dennoch danke für Deine Hilfe. > > Gruß Rene