-> Hier kostenlos registrieren
Hallo zusammen,
ich will mit einer SCL-Quelle eine Funktion zur Normierung eines Wertes erstellen.
Leider bekomme ich als Berechnung der Temperatur immer eine Null!
Wo liegt mein Fehler? Ich steh total aufm Schlauch.
Ich habe die Gleiche Formel in AWL, direkt in ein FC geschrieben und die Funktioniert.
Vielen Dank für eure Unterstützung
ich will mit einer SCL-Quelle eine Funktion zur Normierung eines Wertes erstellen.
Leider bekomme ich als Berechnung der Temperatur immer eine Null!
Wo liegt mein Fehler? Ich steh total aufm Schlauch.
Ich habe die Gleiche Formel in AWL, direkt in ein FC geschrieben und die Funktioniert.
Code:
FUNCTION FC50 : DINT
VAR_TEMP // temporäre Variablen
zwT_max: DINT; // Zwischenwert Tmax in 1/1000000°C
zwT_min: DINT; // Zwischenwert Tmin in 1/1000000°C
T_ist1: DINT; // IST-Temperatur in 1/1000000°C
END_VAR
VAR_INPUT
PEW: INT; // PEW vom Temperatursignal
UGPEW: INT; // PEW UG 5% = 0,45V
OGPEW: INT; // PEW OG 95% =8,55V
T_min: INT; // Tmin vom Temperaturbereich
T_max: INT; // Tmax vom Temperaturbereich
END_VAR
VAR_OUTPUT
T_ist: INT; // Ist Temperatur
END_VAR
// Anweisungsteil
zwT_max:= T_max*1000000;
zwT_min:= T_min*1000000;
T_ist1:= (PEW - UGPEW) * ((T_max - T_min) / (OGPEW - UGPEW)) + T_min; // Normierung des PEW in IST Temperatur
T_ist1:= T_ist1/100000; // Temperatur in 1/10°C
T_ist:= DINT_TO_INT(T_ist1);
FC50 := T_ist;
END_FUNCTION