-> Hier kostenlos registrieren
Hallo,
wahrscheinlich ist das Ganze ziemlich einfach zu lösen, aber ich komme irgendwie nicht drauf:
wenn iState=1 ist, dann soll ein Timer gestartet werden und eine Variable auf 1 gesetzt werden.
iState = 2 und Timer abgelaufen dann solll Variable 0 werden.
Aber T1.Q wird nicht true!
Man kann das sicher auch ohne state machine machen, aber ich möchte das gerne so machen, da ich was ähnliches später noch brauche.
VAR
T1: TON := (IN:=FALSE); (* Timer definieren *)
Main Prog
T1(IN:=, PT:=T#5s, Q=>, ET=> ); (* Timer definieren *)
IF iState=1 THEN
T1.IN:=TRUE; (* Timer starten *)
Variable := 1;
iState:=2;
END_IF
IF iState=2 AND (T1.Q) THEN (* ausgang ist ein und zeit ist abgelaufen *)
T1.IN:=FALSE;
Variable := 0;
iState:=0;
END_IF
Hat jemand eine Idee?
Danke...
wahrscheinlich ist das Ganze ziemlich einfach zu lösen, aber ich komme irgendwie nicht drauf:
wenn iState=1 ist, dann soll ein Timer gestartet werden und eine Variable auf 1 gesetzt werden.
iState = 2 und Timer abgelaufen dann solll Variable 0 werden.
Aber T1.Q wird nicht true!
Man kann das sicher auch ohne state machine machen, aber ich möchte das gerne so machen, da ich was ähnliches später noch brauche.
VAR
T1: TON := (IN:=FALSE); (* Timer definieren *)
Main Prog
T1(IN:=, PT:=T#5s, Q=>, ET=> ); (* Timer definieren *)
IF iState=1 THEN
T1.IN:=TRUE; (* Timer starten *)
Variable := 1;
iState:=2;
END_IF
IF iState=2 AND (T1.Q) THEN (* ausgang ist ein und zeit ist abgelaufen *)
T1.IN:=FALSE;
Variable := 0;
iState:=0;
END_IF
Hat jemand eine Idee?
Danke...