- Beiträge
- 8.350
- Reaktionspunkte
- 1.912
Jetz programmiere ich eine Reihe von Vergleichern, z.B:
IF (("LogData".Set1.Val1 < 50.0) AND ("LogData".Set1.Val1 > -20.0)) THEN ....
Es ist aber umständlich, und Ich habe den Gefühl es muss ein Clevere Weg sein.
Daran habe Ich auch gedact. Aber die status bits werden wohl beim berechnen gesetst ?wenn REAL NaN ist sind die statusbits A1, A0, OV, OS true
FUNCTION FC19 : VOID
VAR_INPUT
r1 : REAL ;
r2 : REAL ;
END_VAR
VAR_OUTPUT
r3 : REAL ;
biOK : BOOL ;
END_VAR
VAR_TEMP
rTemp : REAL ;
END_VAR
OK := TRUE ;
rTemp := r1 / r2 ;
IF OK THEN
r3 := rTemp ;
biOK := TRUE ;
ELSE
r3 := 0.0 ;
biOK := FALSE ;
END_IF ;
END_FUNCTION
SET
SAVE
= L 4.1
= L 4.1
L #r1
L #r2
/R
[COLOR="Blue"][B]JO I007[/B][/COLOR]
JU I008
I007: CLR
= L 4.1
I008: T #rTemp
CLR
A L 4.1
JCN A7d0
T #r3
SET
= #biOK
JU A7d1
A7d0: L 0.000000e+000
T #r3
CLR
= #biOK
A7d1: CLR
A L 4.1
SAVE
BE
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?