-> Hier kostenlos registrieren
Guten Tag,
ich brauche in meinem FB ein Zähler, der alle 20ms hochzählt.
Ich wollte das ganze mit zwei SFB3 lösen und von einem SFB3 die Flanke dafür auswerten.
Das funktioniert auch soweit, nur leider zählt er nicht in der gewünschten Zeit hoch, sondern ist etwas langsamer.
Was mache ich falsch:
ich brauche in meinem FB ein Zähler, der alle 20ms hochzählt.
Ich wollte das ganze mit zwei SFB3 lösen und von einem SFB3 die Flanke dafür auswerten.
Das funktioniert auch soweit, nur leider zählt er nicht in der gewünschten Zeit hoch, sondern ist etwas langsamer.
Was mache ich falsch:
Code:
VAR
zaehler : REAL;
sfb3_1 : SFB3 ;
sfb3_2 : SFB3 ;
sfb3_1_start : BOOL;
sfb3_2_start : BOOL;
HM : BOOL; //HIGH-Merker; für Flankenerkennung
END_VAR
Code:
BEGIN
sfb3_1 (IN := sfb3_1_start // IN: BOOL
,PT := t#10ms // IN: TIME
);
sfb3_2 (IN := sfb3_2_start
,PT := t#10ms
);
sfb3_1_start := NOT sfb3_2.Q;
sfb3_2_start := NOT sfb3_1.Q;
IF sfb3_1.Q AND NOT HM THEN
zaehler:=zaehler+0.02;
HM := TRUE;
ELSIF NOT sfb3_1.Q THEN
HM := FALSE;
END_IF;