Folgende Vereinfachung kompiliert bei mir ohne Fehler:
Bezüglich der Benennung der Variablen und in Anbetracht von möglichen Geschwindigkeitsverlusten sollte man das natürlich noch besser lösen.
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.