1
oscat.lib fuer TwinCAT/CoDeSys / Re: "Expression too complex!" Fehler in Building 1.00
« am: 02. März 2017, 20:18:27 »
Folgende Vereinfachung kompiliert bei mir ohne Fehler:
Code: [Auswählen]
FUNCTION AIR_DENSITY : REAL
VAR_INPUT
T : REAL;
P : REAL;
RH : REAL;
END_VAR
VAR CONSTANT
RL : REAL := 287.05;
RX : REAL := 3.773319E-3;
END_VAR
VAR
step1: REAL;
step2: REAL;
END_VAR
Code: [Auswählen]
step1 := (1.0 - RH * SDD(T, TRUE) * RX / P);
step2 := (RL * ( T - phys.T0));
AIR_DENSITY := phys.PN *step1 / step2;
(* original code used for rev 1.3
AIR_DENSITY := phys.PN * (1.0 - RH * SDD(T, TRUE) * RX / P) / (RL * ( T - phys.T0));
*)
Bezüglich der Benennung der Variablen und in Anbetracht von möglichen Geschwindigkeitsverlusten sollte man das natürlich noch besser lösen.