Hallo,
ein kleiner FB "Stromstoßrelais"
Wer den reset nicht braucht, lässt einfach die letzten drei Zeilen und den Eingang xRes weg.
FUNCTION_BLOCK SSR (*Stromstoßrelais mit reset*)
VAR_INPUT
xToggle: BOOL; (*Tastereingang*)
xRes: BOOL; (*Reset*)
END_VAR
VAR_OUTPUT
xOut: BOOL; (*Speichernder Ausgang*)
END_VAR
VAR
Trigger: R_TRIG; (*Erkennung steigende Eingangsflanke*)
END_VAR
#################################################
Trigger(CLK:= xToggle, Q=> );
IF Trigger.Q THEN (*wenn Flanke erkannt, dann*)
IF xOut THEN (*ein oder ausschalten*)
xOut:= FALSE;
ELSE
xout:= TRUE;
END_IF
END_IF
IF xRes THEN (*Wenn reset, dann ausschalten*)
xout:= FALSE;
END_IF
Have a lot of fun!