Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - Christian_EWW

Seiten: [1]
1
Bestehende Module / Existing Modules / BUG in SCALE_R
« am: 03. März 2014, 09:58:53 »
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

2
Hallo.

Ich hatte das Problem auch, es liegt am SCALE_R Baustein.
Wenn man ihn folgendermaßen ändert, läuft er problemlos.

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


TEMP ist von Typ REAL

Viel Spaß damit,
Christian_EWW

Seiten: [1]