CAN Bus Daten Umrechnungsproblem

OP #5577970
Lesenswert?

Hallo Zusammen,

Ich habe folgendes kleines Projekt am laufen. Ich lese mittels eines 
Arduinos und eines CAN Bus Shields die FMS Schnittstelle eines LKW aus. 
Technisch funktioniert das ganze auch und ich kann Daten im Seriellen 
Monitor anschauen und umrechnen.

Doch nun kommt der Knackpunkt, ich bin zu doof zum Rechnen im Moment bei 
bestimmten Daten oder ich finde meinen Fehler nicht.

Jeder Datensatz besteht aus einer ID in deren Inhalt definiert ist der 
acht Byte lang ist.

Beispiel:

Daten von ID: 18FEFC27
Inhalt : FF E6 FF FF FF FF FF FF

Identifikator Erklärung: 18 FE FC 27

Byte Bit Länge   Information           Auflösung     Bereich 
Anmerkung
1     1     8    Scheibenwasser        0.4% / Bit   0 bis 100%

2     1     8    Kraftstoffstand       0.4% / Bit   0 bis 100%

und so weiter...

Wenn ich Byte zwei Betrachte E6 als HEX-Wert wird daraus 230 als 
Dezimalzahl. Weiter Rechne Ich dann 230*0,4 = 92. Der Tatsächliche 
Füllstand war von dem LKW wirklich 92% laut dem OEM Tester vom LKW 
Hersteller. Also richtig Umgerechnet.


Nun zu meinen Problem

Daten von ID: 18FEF527
Inhalt: C5 FF FF 16 24 FF FF FF

Identifikator Erklärung: 18FEF527
Byte Bit Länge Information       Auflösung     Bereich 
Anmerkung

4    1   16    Ausentemperatur  0,03125°C /Bit -273° bis 1735° offset 
-273°


Die beiden Hex Werte wären 16 und 24. Zusammen sollen beide die 
Aussentemperatur ergeben. Doch Rechnerisch komme ich auf folgendes:

1624 HEX macht 5668 Dezimal. 5668*0,03125°C = 177,125 °C. Wenn ich nun 
das Offset von -273° C dazu Addiere komme komme ich auf -95,875° Celcius 
also Falsch.

Wo liegt mein Fehler??

MfG Stefan Mandl
Gast #5577988
Lesenswert?

Stefan M. schrieb:
> Nun zu meinen Problem
>
> Daten von ID: 18FEF527
> Inhalt: C5 FF FF 16 24 FF FF FF
>
> Identifikator Erklärung: 18FEF527
> Byte Bit Länge Information       Auflösung     Bereich
> Anmerkung
>
> 4    1   16    Ausentemperatur  0,03125°C /Bit -273° bis 1735° offset
> -273°
>
> Die beiden Hex Werte wären 16 und 24. Zusammen sollen beide die
> Aussentemperatur ergeben. Doch Rechnerisch komme ich auf folgendes:
>
> 1624 HEX macht 5668 Dezimal. 5668*0,03125°C = 177,125 °C. Wenn ich nun
> das Offset von -273° C dazu Addiere komme komme ich auf -95,875° Celcius
> also Falsch.
>
> Wo liegt mein Fehler??
>
> MfG Stefan Mandl

Denke du hast nur die Bytes vertauscht:
HEX 16 = DEZ 22
HEX 24 = DEZ 36

36 * 256 = 9216
9216 + 22 = 9238

9238 * 0,03125°C = 288,69°C
288,69°C - 273°C = 15,69°C
OP #5825700
Lesenswert?

Hallo Zusammen,

Lange nix mehr dazu geschrieben aber ich möchte mich mal bei Speed 
bedanken der den Schlüssel zum Erfolg hatte. Manchmal sieht man den Baum 
vor lauter Bäumen nicht :-). Es funktioniert soweit ganz gut und ich 
kann alle für den Fahrer Relevanten Daten auf ein Info-Display schicken 
dank eurer Hilfe.
Nochmals Danke für eure Hilfe.

MfG Stefan Mandl

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren