Kleiner Bug in GEN_PULSE, Lib 3.31

Begonnen von wolfii, 07. April 2011, 22:23:22

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

wolfii

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

hugo

danke das werden wir im nächsten release korrigieren