Hallo miteinander,
in der Lib 3.31 ist in GEN_PULSE ein kleiner Fehler reingekommen. Der Wert von tn wird um den jeweils falschen Wert hochgezählt (PTH statt PTL und umgekehrt).
Die korrigierte Fassung schaut bei mir so aus:
IF enq THEN
tx := DWORD_TO_TIME(T_PLC_MS());
IF NOT init THEN init := TRUE; tn := tx; END_IF;
(* This only happens on a timer overflow ... *)
IF tn > tx THEN
tn := tx;
END_IF
IF tx - tn >= SEL(Q, PTL, PTH) THEN
tn := tn + SEL(Q, PTL, PTH);
Q := NOT Q;
END_IF;
ELSE
Q := FALSE;
init := FALSE;
END_IF;
Viele Grüße
Wolfii
danke das werden wir im nächsten release korrigieren