OSCAT Forum

oscat.lib => Bestehende Module / Existing Modules => Thema gestartet von: wolfii am 07. April 2011, 22:23:22

Titel: Kleiner Bug in GEN_PULSE, Lib 3.31
Beitrag von: wolfii am 07. April 2011, 22:23:22
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
Titel: Re:Kleiner Bug in GEN_PULSE, Lib 3.31
Beitrag von: hugo am 08. April 2011, 14:36:38
danke das werden wir im nächsten release korrigieren