BUG in SCALE_R

Begonnen von Christian_EWW, 03. März 2014, 09:58:53

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Christian_EWW

In der SCALE_R aus der oscat_basic_333.lib ist seit einem Update seitens Beckhoff ein Problem aufgetreten.
TwinCAT 2.11.2234 hat ein Problem mit der Länge des Ausdruckes, wenn ein ARM-Prozessor ausgewählt wird.

Lösung:
IF I_LO = I_HI THEN
   SCALE_R := O_LO;
ELSE
   TEMP := LIMIT(I_LO, X, I_HI);
   SCALE_R := (O_HI - O_LO) / (I_HI - I_LO) * (TEMP - I_LO) + O_LO;
END_IF;


(* revision history
hm   18. may. 2008   rev 1.0
   original version

hm   13. nov. 2008   rev 1.1
   corrected formula for negative gradient

hm   11. jan 2011   rev 1.2
   avoid division by 0

Christian Kreuzer
03.März 2013 rev 1.3
   splitted formula to avoid error "expression to complex" at Beckhoff ARM devices
*)


Vielleicht kann diese Änderung in eine der nächsten Versionen eingearbeitet werden.
Danke,
Christian_EWW