-> Hier kostenlos registrieren
Hallo miteinander,
ich habe ein Problemchen mit SCL. Wenn der unten angegebene Code ausgeführt wird, d.h. wenn 'FlankePos1' true ist, addiere ich auf die Variable 'temp' 0.1 . 'Store' stellt das Ergebnis dar.
Komischerweise wird nach mehreren Ausführungen nicht immer genau 0.1 addiert. Z.B. ist nach 5 Ausführungen das Ergebnis ~0,49999.
Alle relevanten Variablen sind als REAL deklariert. Ich dachte eigentlich 5*0.1 ist 0.5 und nicht 0.49999
Oder muss ich beim Umgang mit Variablen vom Typ REAL irgend etwas besonderes beachten?
Testumgebung ist PLCSim.
Vielen Dank
mkd
ich habe ein Problemchen mit SCL. Wenn der unten angegebene Code ausgeführt wird, d.h. wenn 'FlankePos1' true ist, addiere ich auf die Variable 'temp' 0.1 . 'Store' stellt das Ergebnis dar.
Komischerweise wird nach mehreren Ausführungen nicht immer genau 0.1 addiert. Z.B. ist nach 5 Ausführungen das Ergebnis ~0,49999.
Alle relevanten Variablen sind als REAL deklariert. Ich dachte eigentlich 5*0.1 ist 0.5 und nicht 0.49999
Oder muss ich beim Umgang mit Variablen vom Typ REAL irgend etwas besonderes beachten?
Testumgebung ist PLCSim.
Vielen Dank
mkd
Code:
FUNCTION_BLOCK FB5
(*hier werden alle Variablen deklariert*)
IF (manual=true) THEN
//inkrementieren
IF (FlankePos1) THEN
temp:=store+0.1;
(*Ergebnis kleiner 100 ??? *)
IF (temp <=100.0) THEN
store:=temp;
END_IF;
END_IF;
END_FUNCTION_BLOCK