Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: zeitverzögerung Kategorie: Programmierung Basic (von Achim - 19.09.2005 12:02)
 Als Antwort auf Re: zeitverzögerung von renate - 19.09.2005 9:11

>
> > > > > > > > > > habe eine frage : ich habe eine steuerung programmiert, um eine pumpe zu steuern (an/aus), nun
> > > > > > > > > > möchte ich aber, dass diese pumpe nach unterschreitung einer bestimmten temperatur noch eine minute
> > > > > > > > > > weiterläuft und nicht sofort ausgeht ! kann mir jemand helfen ??
> > > > > > > > >
> > > > > > #loop
> > > > > > y = abs(timer - pumpen_timer)
> > > > > >
> > > > > > print "timer =",pumpen_timer
> > > > > > print "y=" , y
> > > > > >
> > > > > > if temp1 < temp2 then goto timer1 else goto pumpe_an
> > > > > >
> > > > > >
> > > > > > #timer1
> > > > > >    pumpen_timer_laeuft = ON
> > > > > >    pumpen_timer = timer
> > > > > > if pumpen_timer_laeuft = ON AND abs(timer - pumpen_timer) > 60 * 50 then gosub pumpe_aus else goto weiter
> > > > >
> > > > > Du setzt den Pumpen-Timer ja jedesmal neu, solange temp1 < temp2 ist. Kein Wunder, dass die Pumpe ewig läuft (unabhängig von dem Fehler, den Wert in einem byte zu speichern).
> > > > >
> > > > > Da Du jetzt entgegen Deiner Aussage doch eine Schleife hast, muss in timer1 noch eine if-Abfrage rein, die das Neu-Setzen des Pumpen-Timers verhindert, wenn der Timer bereits läuft. (Lasse ich Dir jetzt mal zur Übung, das zu codieren.) ;-)
> > > > >
> > >
> > > hmm also ich habs jetzt nochmal getestet aber es will einfach nich gehen ! könntest du mal die freundlichkeit besitzen am frühen morgen und mir mal das programm so umschreiben das es geht ?  das wäre echt nett von dir :)
> >
> > Ich meinte sowas:
> >
> > #timer1
> >   if pumpen_timer_laeuft then goto laeuft_schon
> >      pumpen_timer_laeuft = ON
> >      pumpen_timer = timer
> > #laeuft_schon
> >
>
> wenn die temp2 über die temp1 steigt soll die pumpe in einer minute verzögerung sich ausschalten ! du hast festgelegt das der timer = pumpen_timer ist ! und in der folgenden funktion abs(timer - pumpen_timer) die beiden auch wieder stehen ! nun ist es ja logisch das timer - pumpen_timer immer 0 wird

Falsch. Die If-Abfrage mit abs(timer - pumpen_timer) > 60 * 50 liegt hinter dem Label laeuft_schon und das oben neu eingefügte if pumpen_timer_laeuft springt über die Zuweisung pumpen_timer = timer hinweg.

> woran kann das liegen ?!

Du hast die if-Abfrage mit abs(timer - pumpen_timer) > 60 * 50 fälschlich vor das Label laueft_schon gesetzt, statt dahinter?

Bye
 Achim

 Antwort schreiben

Bisherige Antworten: