Autor Thema: S7-Real in TwinCAT verarbeiten  (Gelesen 5771 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

SPSler2009

  • Gast
S7-Real in TwinCAT verarbeiten
« am: 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!

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: S7-Real in TwinCAT verarbeiten
« Antwort #1 am: 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