LabVIEWForum.de - Daten richtig auswerten

LabVIEWForum.de

Normale Version: Daten richtig auswerten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

Ich bin gerade dabei ein Labview (2011) Programm für die Kommunikation mit einem CO2 Sensor von Sensors (Single-AGM Plus; http://www.sensors-inc.com/sagm.html ) zu erstellen.
Die Kommunikation grundsätzlich funktioniert:
wenn ich ihm die Anfrage 1002 9BFF 4006 0004 0C06 0022 0852 B3 1003 schicke erhalte ich auch die passende Antwort:
1002 009B 41D6 1B21 BD00 E20B 42C7 21A0 44E1 BABE 4100 0000 00CB 1110 03
Für mich sind die Daten zur CO2 Konezentration, Temperautr und Druck wichtig. Wobei die Daten laut Hersteller in je 4 bytes (floating point values) im Standart IEEE754 ausgegeben werden.
CO2: D61B 21BD sollte ca. 0 sein
Temperatur: 00E20B42 sollte ca. 36° sein
Druck: C721 A044 sollten 1281mBar sein

Der Hersteller kommt bei einem Beispiel für die Temperatur von 0x00060008 auf 36,2°...

Weiß jemand wie ich das umrechnen kann? Denn mit der normal IEEE754 Convertierung (http://www.h-schmidt.net/FloatConverter/IEEE754de.html) kommen da keine vernünftigen Werte raus.
Bin um jeden Tipp dankbar.

Ich hab noch das Datenblatt zur Kommunikation angehängt.
Hallo Scherni,

4byte-floats nennen sich in LabVIEW "SGL":
[attachment=41192]
Dein Beispiel ergibt einen Wert von ca. -0,03933, "00E20B42" = 34,97 und "C721A044" = 1281,06.
Danke! Funktioniert jetzt!
Hab dein Bild gleich mal nachgebaut.

Aber wofür muss ich den String in ein Byte Array verwandeln und danach die Reihenfolge ändern?

lg Scherni
Hallo Scherni,

schon mal den Begriff "endianness" gegoogelt?

Du musst den String nicht erst in ein Bytearray umwandeln, du kannst auch den String direkt umkehren und dann typecasten...
Jetzt weiß ich auch warum ich es so mache!
Dann brauch ich nächsten mal hoffentlich nicht wieder so blöd fragen.

Danke nochmal Gerd
Referenz-URLs