# Timer während Ablauf wieder starten (FX2N)



## Blue (14 März 2007)

Hallo,

wie kann ich das programmieren?
Wenn ich ein Taster drücke, läuft ein Timer ab der einen Ausgang schaltet (ausschaltverzögert).
Drücke ich den Taster wieder, wird der Timer nach ablauf automatisch wieder gestartet.

Ich steh da momentan grad voll auf der Leitung 

Es handelt sich um eine Mitsubishi FX2N-64MT.

mfg.


----------



## lorenz2512 (14 März 2007)

hallo,
so ganz versteh das nicht, willst du eine Schrittkette machen?


----------



## Blue (15 März 2007)

Hallo,

also ich versuch mal es etwas anderst zu erklären.

Wenn ich einen Taster drücke läuft ein Förderband (ca. 10sec).
Ist das Förderband abgelaufen wird es beladen.
Ist das Förderband beladen drücke ich wieder den Taster und es läuft wieder
die ca. 10sec ab.
Das funktioniert auch soweit. Nur möchte ich es jetzt so haben das ich den
Prozess wieder starten kann wenn das Förderband noch nicht abgelaufen ist.
Also "vorbestätigen".

Ich hoffe es ist jetzt etwas verständlicher.

mfg.


----------



## MSB (15 März 2007)

Quick and Dirty:
Das heißt, das Förderband läft nach dem letzten Tastendruck immer 10 Sekunden nach.

LDP X0 //Taster
SET M0

LD M0
ANI X0
OUT T0 K100

LD T0
RST M0

LD M0
OUT Y0 //Förderband

Mfg
Manuel


----------



## Blue (21 März 2007)

Hallo,

danke für den Vorschlag.
Leider kam meine Beschreibung wohl doch nicht ganz so rüber wie ich mir es vorstellte.
Also mit deinem Programmiervorschlag wird der Timer wieder resetet sobald man den Taster drückt und zählt von erneutem hoch.
Nur sollte der Timer trotz Tastendruck erst fertig ablaufen und dann von erneutem anfangen.

Ich versuche es nochmal:

Taster wird gedrückt, Förderband läuft.
Wird der Taster während dem Ablauf des Bandes wieder gedrückt,
läuft das Band trotzdem seine zeit ab, aber startet selbstständig wieder.
Hoffentlich ist es jetzt verständlicher.

Aber danke für die Hilfe.

mfg.


----------



## kpeter (21 März 2007)

Blue schrieb:


> Hallo,
> 
> Ich versuche es nochmal:
> 
> ...


 

bist du dir da ganz sicher 

was ist wenn einer 10 mal auf denn taster drückt dann hast du 100 sek
ist das wirklich so von dir geplant

die idee mit denn neustart finde ich besser

ansonsten musst du hergehen einen zähler generieren wie oft wurde der taster gedrückt und dann jedes mal denn timer neustarten wenn der zähler nicht null ist


----------



## MSB (21 März 2007)

Nochmal Quick and Dirty:

LDP X0
SET M0
ADD D0 K10 D0

LD M0
ANDP M8013
DEC D0

LD<= D0 K0
RST M0

LD M0
OUT Y0


----------



## Blue (21 März 2007)

Hallo,

nein ich will mit einem weiteren Tastendruck nicht die Zeit hochdrücken,
sondern nur "vorbestätigen" das nach der abgelaufenen Zeit das Band wieder ablaufen kann.
Sonst müsste ich am Taster stehenbleiben und warten bis die Zeit abgelaufen ist.

Also:
Das Förderband braucht ca. 10sec bis es vollständig entladen ist.
Das Material fliegt in einen Behälter.
Zum den Behälter wegnehmen und einen neuen drunter stellen, brauche
ich aber vieleicht nur 4sec.
Lassen wir mal das beladen des Förderbandes weg.
Habe ich nun den Behälter gewechselt und den Taster wieder gedrückt
läuft das Band nach den abgelaufenen 10sec wieder automatisch los.
Das ganze wiederholt sich so lange bis ich Feierabend mache.

Ich hoffe jetzt wird es verständlich

danke
mfg.


----------



## kpeter (21 März 2007)

also brauchst du eine einschaltverzögerung oder was
ich steh auf der leitung


----------



## jmb (21 März 2007)

Wenn der Taster gedrückt wird während das Band läuft, dann muß dieser Tasterdruck zwischengespeichert werden und nach Ablauf der 10sec wird über das gespeicherte Signal der Timer und demzufolge das Band wieder gestartet. Ist doch gar nicht so schwer.

Gruß jmb


----------



## Blue (21 März 2007)

Genau genau so hab ich das gemeint.
Wer kann mir da weiter helfen?

danke 

mfg.


----------



## drfunfrock (28 März 2007)

Was du brauchst ist ein Automat, der einfach geplant werden kann: 

Zustand 1: Warten auf Tastendruck
Zustand 2: Band läuft. Bei Tastendruck weiter zu Zustand 3. Wenn 10s abgelaufen sind weiter zu Zustand 4
Zustand 3: Wenn 10 s abgelaufen sind, weiter zu Zustand 2
Zustand 4: Band stoppen und weiter zu Zustand 1

Das musst du nur noch in AWL oder ST umsetzen. Ich kann nur ST

VAR_CONSTANT
     STATE_WAIT : UINT := 0;
     STATE_RUN : UINT := 1;
     STATE_ACK : UINT := 2;
     STATE_END : UINT := 3;
END_VAR

VAR 
  timer : TON;
  state :UNIT := STATE_WAIT;
END_VAR

timer(PT:=t#10s)

CASE state OF
     STATE_WAIT:
        band := FALSE;
       timer.IN := FALSE;
    IF button THEN
      state := STATE_RUN;
    END_IF

  STATE_RUN:
    band := TRUE;
    timer.IN := TRUE;
    IF button THEN
      state := STATE_ACK;
   END_IF
   IF timer.Q THEN
     state := STATE_END;
   END_IF;

  STATE_ACK: 
   IF timer.Q THEN
     state := STATE_RUN;
     timer.IN := FALSE;
   END_IF;

  STATE_END: 
    state := STATE_WAIT;
    band := FALSE;
END_CASE


So oder ähnlich sollte die Logig sein. Einfach einen Automaten skizzieren und der Rest ergibt sich von selbst.


----------



## Blue (28 März 2007)

Hallo,

danke für die Antwort.
Leider hab ich mit ST nix am Hut. Könnte das jehmand übersetzten in AWL?


mfg.


----------



## drfunfrock (30 März 2007)

Wieso programmierst du eigentlich mit AWL? ST als Pascal-Dialekt ist doch wesentlich einfacher, weil besser zu lesen und man kann das Problem fast in natürlicher Sprache beschreiben, während AWL ja einen Assembler-Charakter hat.


----------

