Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Zuweisung von Zahlen zu RealVariablen nur eingeschränkt mögl

Markus
2006-05-15
2006-06-23
  • Markus - 2006-05-15

    Bei RealVariable:=1; alles OK.

    Bei RealVariable:=1/3; (Bahnhof).

    Mit RealVariable:=1.0/3.0; alles OK.

    Der Compiler kann also Zahlen als Real auswerten, sollange es sich nur um eine handelt.

     
  • Anonymous - 2006-06-23

    Originally created by: Bernhard Werner

    Hallo Markus,

    es ist so: grundsätzlich erlaubt CoDeSys die Zuweisung von Integer zu Real ohne Konvertierung.

    daher:

    real1 := 1;

    Implizit generiert der Compiler hier eine Konvertierung:

    real1 := INT_TO_REAL(1);

    das heisst aber nicht, dass real gerechnet wird, wenn die Zuweisung zu einer Real-Variablen erfolgt,

    daher:

    real1 := 1 / 3;

    1 und 3 sind zwei Integer Konstanten, 1 / 3 als Integer gerechnet gibt 0. Das ganze lässt sich wieder problemlos real zuweisen und real ist natürlich dann auch 0.

    Implizit rechnet der Compiler hier:

    real1 := INT_TO_REAL(1/3);

    Wenn man will, dass eine Konstante vom Typ real ist, muss man sie mit '.' schreiben, also

    real1 := 1.0 / 3.0;

    Bernhard Werner

     

Log in to post a comment.