Re: port-abfrage Kategorie: Programmierung (von Martin Binder - 22.05.2004 22:57) | ||
Als Antwort auf Re: port-abfrage von Haddi - 18.05.2004 16:26 | ||
| ||
Hallo Haddi, ich glaube Du hast keine Idee wovon ich rede. Lies mal meinen früheren Eintrag vom 22. April nach unter: http://www.cc2net.de/Foren/CC2Net_Forum/lesen.php?eintrag=7228 ( auch zu finden mit "Suchen" und dem Wort "timer" ) Mit den beiden "wait"- Befehlen kommst du nicht weiter, weil dann der Task blockiert ist. mfG Martin > Hallo vielen Dank für die schnelle Antwort, > > ok, wenn ich also bspw. programmiere > > thread stoe_abfr > {wait ports.get (8); > if timer >= 1000 {a=1;} > wait not ports.get (8) > a=0; } > > wie geht das Programm denn dann weiter, wenn der timer noch kleiner 1000 ist. Meiner Ansicht nach > bleibt er beim nächsten wait stehen bis port 8 = 0 ist. > Aber eigentlich sollte der Thread doch in meinem Fall von Vorne beginnen. > > Haddi > > > Hallo, > > > > am elegantesten ist glaube ich folgendes: > > setze ein Flag, wenn der Fehler erstmal auftritt, und starte einen Timer. > > Ein Programmbeispiel dazu hab ich schon früher ins Forum gepostet. > > > > Dann bei jedem Durchlauf prüfst Du, ob der Fehler noch anliegt. > > Wenn ja, prüfst Du, ob der Timer schon 1 Sekunde hinter sich hat. > > Nochmals ja, und der Wert "a" kann gesetzt werden. > > > > Wenn vorher der Fehler verschwindet, wird Flag gelöscht und der Timer gestoppt. > > > > Damit kann man den Task auch für andere Aufgaben benutzen. > > > > Einfacher wäre ein schlichtes Sleep 1000, und eine zweite Abfrage vor dem Setzen von "a". > > Allerdings ist das eher die Holzhammermethode, denn der Task ist 1 Sekunde blockiert. > > > > Martin > > > > > Hallo, > > > > > > das ist bestimmt ein ganz simples Problem, aber > > > ich steh grad auf dem Schlauch und komm nicht weiter. > > > Ich frage mit der CC2-Station eine Maschinenstörung ab. > > > Im folgenden habe ich das mal vereinfacht dargestellt. > > > > > > thread stoe_abfr > > > {wait ports.get (8); > > > a=1; > > > wait not ports.get (8) > > > a=0; } > > > > > > Ich möchte jetzt, dass die Störung (also port(8)) mindestens 1 sec anliegt bevor in dem Beispiel > > > a=1 gesetzt wird. Liegt dÃe Störung nur kurz an, soll das ganze von vorne beginnen. > > > > > > Ich hoffe mir kann da mal einer von Euch auf die Sprünge helfen. Im Voraus herzlichen Dank. > > > > > > Grüsse > > > Haddi | ||
Antwort schreiben Antworten: Re: port-abfrage (von Haddi - 8.06.2004 11:47) |