entenhausen_dd
Level-2
- Beiträge
- 55
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Leute,
ich habe noch ein Problem mit einem Drehzahlsensor der überläuft also der Wert größer als 65535 wird.
Um das zu verhindern habe ich schon folgenden Code verwendet, wobei mw_Count das Signal vom Drehzahlsensor ist
(* Edge case overflow positive *)
IF mw_Count < 16384
AND mw_CountPrev > 49152 THEN
mi16_Delta := REAL_TO_INT(mw_Count + (65535 - mw_CountPrev));
END_IF
(* Edge case overflow negative *)
IF mw_Count > 49152
AND mw_CountPrev < 16384 THEN
mi16_Delta := - REAL_TO_INT(mw_CountPrev + (65535 - mw_Count));
END_IF
Wie kann ich nun den Overflow verhindern?
CodeSys 2.3
Vielen Dank für eure Hilfe!
ich habe noch ein Problem mit einem Drehzahlsensor der überläuft also der Wert größer als 65535 wird.
Um das zu verhindern habe ich schon folgenden Code verwendet, wobei mw_Count das Signal vom Drehzahlsensor ist
(* Edge case overflow positive *)
IF mw_Count < 16384
AND mw_CountPrev > 49152 THEN
mi16_Delta := REAL_TO_INT(mw_Count + (65535 - mw_CountPrev));
END_IF
(* Edge case overflow negative *)
IF mw_Count > 49152
AND mw_CountPrev < 16384 THEN
mi16_Delta := - REAL_TO_INT(mw_CountPrev + (65535 - mw_Count));
END_IF
Wie kann ich nun den Overflow verhindern?
CodeSys 2.3
Vielen Dank für eure Hilfe!
Zuletzt bearbeitet von einem Moderator: