(* @NESTEDCOMMENTS := 'Yes' *) (* @PATH := '\/TEMP' *) (* @OBJECTFLAGS := '0, 8' *) (* @SYMFILEFLAGS := '2048' *) FUNCTION_BLOCK FB_DI VAR_INPUT E_INPUT AT%I* : BOOL; UEboDisable : BOOL; UEboResetFlankenZaehler: BOOL; UEtEntprellZeit: TIME := t#50ms; UEboProtokolle : BOOL; UEsName: STRING := 'unbenannt'; END_VAR VAR_OUTPUT UAboInputPosFlanke: BOOL; UAboInputEntprellt: BOOL; UAboInput: BOOL; UAboInputNegFlanke: BOOL; END_VAR VAR pfInput: R_TRIG; dwPosFlanken: DWORD; tonInput: TON; nfInput: F_TRIG; dwNegFlanken: DWORD; sTemp: STRING; END_VAR (* @END_DECLARATION := '0' *) (* Digital Input FB *) pfInput(clk:=E_INPUT AND NOT UEboDisable); nfInput(clk:=E_INPUT AND NOT UEboDisable); IF pfInput.Q THEN dwPosFlanken := dwPosFlanken + 1; (* IF UEboProtokolle THEN fProtokoll(1, CONCAT('pfInput: ', UEsName), 0); END_IF*) END_IF IF nfInput.Q THEN dwNegFlanken := dwNegFlanken + 1; (* IF UEboProtokolle THEN fProtokoll(1, CONCAT('nfInput: ', UEsName), 0); END_IF*) END_IF IF UEboResetFlankenZaehler THEN UEboResetFlankenZaehler := FALSE; dwPosFlanken := 0; dwNegFlanken := 0; END_IF (************************************) tonInput(in:=E_INPUT AND NOT UEboDisable, pt:=UEtEntprellZeit); (************************************) UAboInput := E_INPUT AND NOT UEboDisable; UAboInputPosFlanke := pfInput.Q; UAboInputNegFlanke := nfInput.Q; UAboInputEntprellt := tonInput.Q; END_FUNCTION_BLOCK