OSCAT: CLICK_MODE entprellt?

dast

Level-1
Beiträge
146
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab mir gerade den Funktionsblock CLICK_MODE angesehen ...
Hat es einen Grund warum der Eingang hier nicht entprellt wird?
Oder seh ich es einfach nicht?

Code:
FUNCTION_BLOCK CLICK_MODE
VAR_INPUT
	IN : BOOL;
END_VAR
VAR_OUTPUT
	SINGLE : BOOL;
	DOUBLE : BOOL;
	LONG : BOOL;
	TP_LONG : BOOL;
END_VAR
VAR_INPUT CONSTANT
	T_LONG : TIME := t#500ms;
END_VAR
VAR
	Timer : TP;
	cnt : INT;
	last : BOOL;
END_VAR


(* when input goes high start the timer to decode pulses *)
timer(in := IN, PT := T_LONG);
single := FALSE;
double := FALSE;

IF timer.Q THEN
	(* decode pulses while the timer is active *)
	IF NOT in AND last THEN	cnt := cnt + 1; END_IF;
ELSE
	CASE cnt OF
		1 : single := TRUE;
		2 : double := TRUE;
	END_CASE;
	cnt := 0;
END_IF;
last := in;
TP_LONG := NOT timer.Q AND (NOT LONG) AND IN;
LONG := NOT timer.Q AND in;
 
Zuletzt bearbeitet:
Ohne die OSCAT-Lib bis ins letzte Detail zu kennen, würde ich jetzt einfach sagen, dass es eigentlich ein guter Stil ist, wenn man eine Aufgabe in einem POU bearbeitet. Entprellen wäre dann die zweite Aufgabe, die kannst du dann in einem anderen POU machen und den Ausgang des Entprell-POUs (meistens ist das ja ein einfaches TON) an den Eingang IN anschließen.

Gruß wonderfulworld
 
Zurück
Oben