-> Hier kostenlos registrieren
Hallo,
bei folgendem Code soll erkannt werden ob die Pause beginnt (False->True) oder ob die Pause endet (True->False). Aber die Flanken werden gar nicht erkannt bzw. die Werte der Funktionsblöcke R_Trig und F_Trig verändern sich gar nicht, kann mir jemand bitte sagen warum das so nicht funktioniert? Die Variable Pause verändert ihren Wert wie gewünscht ...
bei folgendem Code soll erkannt werden ob die Pause beginnt (False->True) oder ob die Pause endet (True->False). Aber die Flanken werden gar nicht erkannt bzw. die Werte der Funktionsblöcke R_Trig und F_Trig verändern sich gar nicht, kann mir jemand bitte sagen warum das so nicht funktioniert? Die Variable Pause verändert ihren Wert wie gewünscht ...
Code:
FUNCTION_BLOCK WARTEN
VAR_EXTERNAL
PAUSE:BOOL;
END_VAR
VAR_INPUT
ZEIT:TIME;
END_VAR
VAR_OUTPUT
OK:BOOL:=FALSE;
RESTZEIT:TIME:=t#0s;
END_VAR
VAR
ZAB:TON;
STARTPAUSE:R_TRIG;
ENDEPAUSE:F_TRIG;
PAUSENZEIT:TIME:=t#0s;
END_VAR
ZAB( PT:=ZEIT);
STARTPAUSE(CLK:=PAUSE);
ENDEPAUSE(CLK:=PAUSE);
IF STARTPAUSE.Q
THEN
PAUSENZEIT:=ZAB.PT-ZAB.ET;
ELSIF ENDEPAUSE.Q
THEN
ZAB(PT:=PAUSENZEIT);
PAUSENZEIT:=t#0s;
ELSE
;
END_IF
ZAB.IN:=NOT ZAB.Q;
IF ZAB.Q
THEN
OK:=TRUE;
ELSE
RESTZEIT:=ZAB.PT-ZAB.ET;
OK:=FALSE;
END_IF