alfred0905
Level-2
- Beiträge
- 53
- Reaktionspunkte
- 3
-> Hier kostenlos registrieren
Hi!
Ich verzweifle gerade etwas mit einem Gerät, aus dem ich einen Float Wert per Modbus auslesen möchte. Das Gerät gibt mir einen 32bit Float aus, egal welchen Datentyp ich im Empfangsarray verwende kommt dabei aber nicht die richtige Zahl raus. Ich vermute mal es hat etwas mit der Bytereihenfolge zutun, das Manual des Geräts sagt dazu nur folgendes:
The Float or Real values are transferred in
accordance with the IEEE754 Standard Format
for 32-bit values. Example using the figure
1.25:
Hexadecimal: 3F A0 00 00 (0: + ; 1: -)
Signed (S): 0
Exponent (E): 0111 1111
Mantissa (M): 010 0000 0000 0000 0000
Kann mir jemand dabei helfen, wie ich den Wert auslesen kann?
Der Sensor schickt z.B. den Wert 869,3504, auf der S7 bekomme ich dafür 0100_0000_0000_0000_0100_0100_0101_1001
Egal wie ich versuche das in ein Real umzuwandeln, kommt dabei leider nicht mein Ergebnis raus - mit einem anderen Modbustool klappt es jedenfalls richtig, wenn ich auf 32bit float big endian stelle. Hat jemand vielleicht eine Idee wie ich das lösen könnte? Vielen Dank im Voraus!
Ich verzweifle gerade etwas mit einem Gerät, aus dem ich einen Float Wert per Modbus auslesen möchte. Das Gerät gibt mir einen 32bit Float aus, egal welchen Datentyp ich im Empfangsarray verwende kommt dabei aber nicht die richtige Zahl raus. Ich vermute mal es hat etwas mit der Bytereihenfolge zutun, das Manual des Geräts sagt dazu nur folgendes:
The Float or Real values are transferred in
accordance with the IEEE754 Standard Format
for 32-bit values. Example using the figure
1.25:
Hexadecimal: 3F A0 00 00 (0: + ; 1: -)
Signed (S): 0
Exponent (E): 0111 1111
Mantissa (M): 010 0000 0000 0000 0000
Kann mir jemand dabei helfen, wie ich den Wert auslesen kann?
Der Sensor schickt z.B. den Wert 869,3504, auf der S7 bekomme ich dafür 0100_0000_0000_0000_0100_0100_0101_1001
Egal wie ich versuche das in ein Real umzuwandeln, kommt dabei leider nicht mein Ergebnis raus - mit einem anderen Modbustool klappt es jedenfalls richtig, wenn ich auf 32bit float big endian stelle. Hat jemand vielleicht eine Idee wie ich das lösen könnte? Vielen Dank im Voraus!