OSCAT Forum

oscat.lib => oscat.lib fuer TwinCAT/CoDeSys => Thema gestartet von: SPSler2009 in 25. Januar 2009, 15:31:13

Titel: S7-Real in TwinCAT verarbeiten
Beitrag von: SPSler2009 in 25. Januar 2009, 15:31:13
Hallo,

ich habe folgenes Problem:

Von einem externen Gerät erhalte ich einen Messwert als real im S7-Datenformat. Zum Beispiel wird die Zahl 721,0 als 44344000h übertragen. Wenn ich diese Zahl nun im TwinCAT auf eine real Variable schreibe kommt eine völlig "blödsinnige" Zahl heraus. Auch das Drehen der Eingangsvariable (Motorolaformat -> Intelformat) 00403444h bringt nicht den gewünschten Erfolg.

Wer kann mir hier weiterhelfen?

Vielen Dank!
Titel: Re: S7-Real in TwinCAT verarbeiten
Beitrag von: hugo in 25. Januar 2009, 22:57:46
dein hexadezimal wort 44344000h ist die hexadezimale darstellung einer real zahl
die obersten 8 bits (44) sind der exponent mit vorzeichen.
die unteren 24 bits die mantisse
das ist ein real im ieee format 32 bits single precision

in der oscat library findest du den baustein dw_to_real wenn du dem die bitfolge 44344000h als dword am eingang gibst kommt am ausgang 721 heraus