FLOAT-Zahl aus 2x 16 bit HEX
Verfasst: Mittwoch 20. August 2014, 13:20
Hallo,
Ich habe ein Programm geschrieben dass über Modbus TCP ein Messgerät ausliest.
Das Ergebniss des Messgeräts ist eine FLOAT-Zahl nach IEE 754 (z.B. 0x436bbc2a für 235.73502).
Mittels pymodbus erhalte ich das Ergebnis in einer Liste mit zwei Einträgen:
u1[1] = 0x436b und u1[2] = 0xbc2a
Wie bekomme ich jetzt diese zwei Einträge zusammen und daraus meine Floatzahl??
Ich hatte mir es folgendermaßen vorgestellt:
zusammen=bin(u1[0]<<16) | bin(u1[1])
zahl=float(zusammen)
Erhalte aber den Fehler:
TypeError: unsupported operand type(s) for |: 'str' and 'str'
Hab noch andere Methoden versucht aber keine hat funktioniert. Vllt steh ich ja auf dem Schlauch.
Ich hoffe es findet sich eine Lösung
Ich habe ein Programm geschrieben dass über Modbus TCP ein Messgerät ausliest.
Das Ergebniss des Messgeräts ist eine FLOAT-Zahl nach IEE 754 (z.B. 0x436bbc2a für 235.73502).
Mittels pymodbus erhalte ich das Ergebnis in einer Liste mit zwei Einträgen:
u1[1] = 0x436b und u1[2] = 0xbc2a
Wie bekomme ich jetzt diese zwei Einträge zusammen und daraus meine Floatzahl??
Ich hatte mir es folgendermaßen vorgestellt:
zusammen=bin(u1[0]<<16) | bin(u1[1])
zahl=float(zusammen)
Erhalte aber den Fehler:
TypeError: unsupported operand type(s) for |: 'str' and 'str'
Hab noch andere Methoden versucht aber keine hat funktioniert. Vllt steh ich ja auf dem Schlauch.
Ich hoffe es findet sich eine Lösung