S7-Real in TwinCAT verarbeiten

Begonnen von SPSler2009, 25. Januar 2009, 15:31:13

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

SPSler2009

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!

hugo

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