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
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