@ADS_0x1:
Danke für den Hinweis, nach längerem Suchen wäre ich vermutlich auf dem vorgeschlagenen Weg zum Problem gekommen.
@mattsches:
Vielen Dank für den wertvollen Tipp. Problem und Ursache verstanden und über den Trigger gelöst. Soeben umgesetzt und erfolgreich getestet!
Resultat: Folgender FB (BUTTON) funktioniert analog zu CLICK, reagiert aber jeweils nur auf die steigende Flanke.
Q und STATUS sind außen vor, da derzeit nicht in Verwendung.
Danke für den Hinweis, nach längerem Suchen wäre ich vermutlich auf dem vorgeschlagenen Weg zum Problem gekommen.
@mattsches:
Vielen Dank für den wertvollen Tipp. Problem und Ursache verstanden und über den Trigger gelöst. Soeben umgesetzt und erfolgreich getestet!
Resultat: Folgender FB (BUTTON) funktioniert analog zu CLICK, reagiert aber jeweils nur auf die steigende Flanke.
Q und STATUS sind außen vor, da derzeit nicht in Verwendung.
Code Auswählen
FUNCTION_BLOCK BUTTON
VAR_INPUT
in : BOOL;
END_VAR
VAR_OUTPUT
single : BOOL;
double : BOOL;
triple : BOOL;
END_VAR
VAR
_triggerSingle : R_TRIG;
_triggerDouble : R_TRIG;
_triggerTriple : R_TRIG;
_click : CLICK;
END_VAR
Code Auswählen
_click(IN := in);
_triggerSingle(CLK := _click.single);
_triggerDouble(CLK := _click.double);
_triggerTriple(CLK := _click.triple);
IF _triggerSingle.Q THEN single := TRUE; ELSE single := FALSE; END_IF;
IF _triggerDouble.Q THEN double := TRUE; ELSE double := FALSE; END_IF;
IF _triggerTriple.Q THEN triple := TRUE; ELSE triple := FALSE; END_IF;
(*
Version 0.1
Date 01.02.2018
Extends the oscat CLICK (FB) to be active for one single cyclus
after a rising edge to prevent toggling during button is pressed
*)