-> Hier kostenlos registrieren
Hallo Leute,
ich lese über Modbus eine Temperatur (signed Integer) als Word ein.
Das Word schiebe ich auf einen DINT, konvertiere DINT to REAL / 100 und habe meinen gewünschten Wert
zB. ergibt 16#0111 2,73°C
Soweit so gut.
Jetzt handelt es sich dabei aber um einen signed Integer welcher auch negativ sein kann.
Per Definition bekomme ich den Wert von 0...12000
Negative Werte bekomme ich in folgenden Format: 16#FF9E ergibt zB. -0,98 °C
D.h. ich muss dem eingelesenen Word "FFFF FFFF FFFF" vorne hinzufügen.
FFFF FFFF FFFF FF9E = -98
Und genau da stehe ich an.
Die Abfrage ab wann der Wert negativ ist, prüfe ich einfach ob mein DINT Wert > 12000 ist.
Aber wie kann ich dann FF9E zu -98 umwandeln?
Ich hoffe ihr habt mein Problem verstanden und könnt mir da weiterhelfen.
Danke
Alex
ich lese über Modbus eine Temperatur (signed Integer) als Word ein.
Das Word schiebe ich auf einen DINT, konvertiere DINT to REAL / 100 und habe meinen gewünschten Wert
zB. ergibt 16#0111 2,73°C
Soweit so gut.
Jetzt handelt es sich dabei aber um einen signed Integer welcher auch negativ sein kann.
Per Definition bekomme ich den Wert von 0...12000
Negative Werte bekomme ich in folgenden Format: 16#FF9E ergibt zB. -0,98 °C
D.h. ich muss dem eingelesenen Word "FFFF FFFF FFFF" vorne hinzufügen.
FFFF FFFF FFFF FF9E = -98
Und genau da stehe ich an.
Die Abfrage ab wann der Wert negativ ist, prüfe ich einfach ob mein DINT Wert > 12000 ist.
Aber wie kann ich dann FF9E zu -98 umwandeln?
Ich hoffe ihr habt mein Problem verstanden und könnt mir da weiterhelfen.
Danke
Alex