LabVIEWForum.de
Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? (/Thread-Wie-kann-man-Hex-Werte-1-1-in-DEZ-Werte-konvertieren)

Seiten: 1 2 3


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - warantor - 17.06.2009 18:37

Guten Tag an alle Forums Mitglieder,

dies ist mein erster Post.

Zum Thema. Ich lese über eine RS-232 Verbindung hex Werte ein und möchte diese, z.B. den Temperaturwert, grafisch darstellen. Nun hab ich das Problem das ich den Temperaturwert als hex Wert bekomme (z.B. 0x54) und bei diesem dann noch 0x30 abziehen muss um auf die eigentlichen Temperatur(0x24 = 24°C) zu kommen.
Meine Frage ist. Kennt jemand einen Weg die hex Werte 1:1 in dez Werte zu übersetzten?


Ich weiß das hier im Forum schon sehr viele Einträge zum Thema HEX -> DEZ etc. stehen. Habe viele dazu gelesen aber eben nichts gefunden womit man eine 1 zu 1 Konvertierung durch führen kann.

Gruß Warantor


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - schrotti - 17.06.2009 19:17

Im Grunde geht das so:

[attachment=19142]

Aber dass 0x24 24 °C sind scheint mir zweifelhaft. Was sind denn 25 °C?


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - thomas.sandrisser - 17.06.2009 19:22

Da stimm ich Julius mal zu :-)
0x24 ist 36dez.

Anbei ein sehr einfaches beispiel wie deine rechnung aufgehen wuerde


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - schrotti - 17.06.2009 19:30

Ich kenn das Problem so, dass mancher einen Wert, bspw. Umgebungsdruck, bekommt und erstmal nicht weiß, was damit zu machen ist. Also aufs Messgerät gucken und sich einen Offset ausrechnen und voila, schon passts.


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - ImExPorty - 17.06.2009 20:00

lustige Konvertierungen gibt es immer mal wieder (was macht man nur mit den Nachkommastellen und Werten oberhalb 99 und kleiner 0Denknach)
[attachment=19146]
@schrotti: eine Möglichkeit für Interpretation von 25
[attachment=19145]

Lv85_img[attachment=19144]
@warantor: noch mal genau überprüfen was hier wie skaliert wird, da seeeeeehr unüblich


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - warantor - 17.06.2009 21:05

Erstmal danke für die vielen, so schnellen, Antworten. Werd mich gleich ans lesen machen.

Hier noch ein etwas mehr Informationen zum Thema:
Ich will für ein Uni-Projekt die Daten einer Wetterstation auslesen. Wie man diese Wetterstation ausließt hab ich schon raus bekommen. Das Problem ist nur das die Hertseller von dem Ding nicht ganz konform mit der RS-232 Schnittstelle umgehen.
Um einen bestimmten Wert auszulesen muss man der Wetterstation den jeweiligen Speicheradresse senden. Die Station antworten dann mit dem Inhalt dieser.


Beispiel Antwort der Wetterstation speziell für den Temperaturwert:

33 30 70 53 00 [hex] für 23,7°C

33 & 30 sind irrelevant.
70 ist die Nachkommastelle
54 ist der Temperaturwert minus 0x30



33 30 70 49 00 [hex] für 19,7°C

33 & 30 sind wieder irrelevant
70 wieder Nachkommastelle
49 minus 0x30 wieder Temperatur

Ich muss mir also meinen Temperaturwert zusammen bauen und dann erst dartsellen.

Problem:
0x54 wären 84 dez, differenz 30
0x49 wären 73 dez, differenz 24

Deshalb muss ich mit den HEX Werten rechnen.


ImExPorty: Nachkomma ist erklärt. Was bei Minusgraden passiert weiß ich auch noch nicht. Vermutlich braucht man dann eines der unnützten Bytes und negiert den Wert einfach.


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - schrotti - 17.06.2009 21:56

Dann ist es ja gar kein Hex. Glare

Der Sensor geht einfach bis -30°

Lv86_img[attachment=19158]


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - Lucki - 18.06.2009 07:57

Wenn Deine Beispiele stimmen, dann ist Deine dazugehörige Erklärung ganz falsch. Die zweistelligen Teilstrings in Deinem String sind Dezimalzahl-Stücke, die einfach wieder richtig zusammengesetzt und skaliert werden müssen:

Zitat:33 30 70 49 00 [hex] für 19,7°C
Nicht ist daran Hex!

Man muß aus obigem String einfach den Dezimalstringl 004970 machen, skaliert und mit Offset ergibt das dann 19.7°

[attachment=19160]

Edit: Schrotti hat das ja schon richtig erkannt, Entschuldigung, das hatte ich übersehen.


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - warantor - 18.06.2009 13:20

So, habs geschaft mir eure Beispiele und erklärungen genauer anzu sehen. Vielen dank, war sehr interessant.

@ImExPorty: Einfach genial dein kleines Programm! So wurde HEX glaube ich noch nie interpretiert.

@Lucki: Da hab ich was falsch erklärt. Der Temperaturwert sieht natürlich normaler Weise ASCII kodiert aus. Um die Werte in HEX zu sehen hab ich die anzeige bei mir auf HEX umgestellt. Da ich nur so die Werte interpretieren kann. Müssten also als normale ASCII Zeichen vorliegen. Die 0x54 war glaube ich das "T".

Ich denke nicht das diese einfach als dezimal interpretiert werden können. Werde heute nicht mehr dazu kommen das nochmal ausgiebig zu teste. Werd mich morgen wieder rann setzen.


Vielen Dank für eure Hilfe, als Neuling in LabVIEW ist es nicht leicht den ganzen Funktionsumfang zu überblicken.


Wie kann man Hex Werte 1:1 in DEZ Werte konvertieren? - Lucki - 18.06.2009 13:52

' schrieb:@Lucki: Da hab ich was falsch erklärt. Der Temperaturwert sieht natürlich normaler Weise ASCII kodiert aus. Um die Werte in HEX zu sehen hab ich die anzeige bei mir auf HEX umgestellt. Da ich nur so die Werte interpretieren kann. Müssten also als normale ASCII Zeichen vorliegen. Die 0x54 war glaube ich das "T".
Dan poste doch mal original Beispieldaten, aber nicht als Schreibtext, sondern als Werte von Textanzeigen oder Textkonstanten in einem VI (Vor dem Speichern - außer bei Konstanten - zu Standardwerten machen, damit beim Abspeichern nichts verloren geht. Anzeigeformat, hex oder nicht, ist ganz egal) Dann schreibe dazu, was herauskommen muß. Und ganz wichtig: Keinerlei irremachenden Kommentar dazutunMellow