Ich hab da mal eine Frage. Gibt es bei Codesys einen Baustein , der mir eine Dezimaldarstellung von Zahlen (z.B. "1.02") in eine von modernen CPUs verwendeten IEEE 754-Fließkommazahldarstellung umwandelt ?
Danke für die Hilfe.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2005-10-11
Originally created by: Gast
Die Konverierungsfunktionen STRING_TO_REAL bzw. STRING_TO_LREAL leisten das gewünschte. Das Zielformat ist das Gleitkommaformat der jeweiligen CPU. Das ist bis auf wenige Ausnahmen (8051, manche c16x Plattformen) IEE-konform.
Gruß
Dieter Hess
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Für den Fall, dass es um die Darstellung des binären Musters im Speicher geht würde ich folgendes vorschlagen:
 VAR  sValue:STRING;  rValue:REAL;  pValue:POINTERTODWORD;  dwValue:DWORD; END_VARsValue:="1.02";rValue:=STRING_TO_REAL(sValue);pValue:=ADR(rValue);dwValue:=pValue^;
In dwValue steht die Zahl "1.02" als Bitmuster im IEEE Format.
In diesem Fall also : 16#3F828F5C
Gruß
Wolfgang Doll
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
IEEE32inREALFUNCTIONIEEE32_TO_REAL:REALVAR_INPUTÂ Â IN:DWORD;END_VARVARÂ Â PTREAL:POINTERTOREAL;END_VARPTREAL:=ADR(IN);IEEE32_TO_REAL:=PTREAL^;END_FUNCTIONREALinIEEE32FUNCTIONREAL_TO_IEEE32:DWORDVAR_INPUTÂ Â IN:REAL;END_VARVARÂ Â PTDWORD:POINTERTODWORD;END_VARPTDWORD:=ADR(IN);REAL_TO_IEEE32:=PTDWORD^;END_FUNCTION
Michael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
Ich hab da mal eine Frage. Gibt es bei Codesys einen Baustein , der mir eine Dezimaldarstellung von Zahlen (z.B. "1.02") in eine von modernen CPUs verwendeten IEEE 754-Fließkommazahldarstellung umwandelt ?
Danke für die Hilfe.
Originally created by: Gast
Die Konverierungsfunktionen STRING_TO_REAL bzw. STRING_TO_LREAL leisten das gewünschte. Das Zielformat ist das Gleitkommaformat der jeweiligen CPU. Das ist bis auf wenige Ausnahmen (8051, manche c16x Plattformen) IEE-konform.
Gruß
Dieter Hess
Für den Fall, dass es um die Darstellung des binären Musters im Speicher geht würde ich folgendes vorschlagen:
In dwValue steht die Zahl "1.02" als Bitmuster im IEEE Format.
In diesem Fall also : 16#3F828F5C
Gruß
Wolfgang Doll
Hallo zusammen
Die Wandlung von Real (z.B. 1.02) in das IEEE 754-Format scheint ja auf diese Weise zu funtkionieren.
Ich brauche aber die umgekehrte Funktion.
Mein Profibus Slave liefert mir den Istwert aufgeteilt auf die 4 Bytes.
Diese Bytes möchte ich nun in eine "normale" REAL-Zahl wandeln.
Kann mir jemand helfen?
Also damit
Michael
Aus dem Oscat Forum:
Michael