Kombiinstrument - Plateaufunktion deaktivieren: Unterschied zwischen den Versionen

Aus T4Forums Doku
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 125: Zeile 125:
<tr>
<tr>


<td align="center">0x24D & 0x24C</td>
<td align="center">0x24F & 0x24E</td>


<td align="center">00 F0</td>
<td align="center">01 90</td>


<td align="center">240</td>
<td align="center">400</td>


<td align="center">30</td>
<td align="center">50</td>


</tr>
</tr>
Zeile 137: Zeile 137:
<tr>
<tr>


<td align="center">7D0 920 803 B</td>
<td align="center">0x251 & 0x250</td>


<td align="center">0x24C - 0x257</td>
<td align="center">02 58</td>


<td align="center">0x258 - 0x263</td>
<td align="center">600</td>
 
<td align="center">75</td>
 
</tr>
 
<tr>
 
<td align="center">0x253 & 0x252</td>
 
<td align="center">03 98</td>
 
<td align="center">920</td>
 
<td align="center">115</td>
 
</tr>
 
<tr>
 
<td align="center">0x255 & 0x254</td>
 
<td align="center">03 D0</td>
 
<td align="center">976</td>
 
<td align="center">122</td>
 
</tr>
 
<tr>
 
<td align="center">0x257 & 0x256</td>
 
<td align="center">04 10</td>
 
<td align="center">1040</td>
 
<td align="center">130</td>


</tr>
</tr>

Version vom 11. März 2021, 14:54 Uhr

Entfernen der sogennanten "Plateau-Funktion" aus dem Kombiinstrument.

(Aktuell nur für die "blauen" KIs!)

Was ist die Plateau-Funktion?

Kurz gesagt, zeigt das KI in einem Bereich zwischen 75°C und 105°C immer 90°C an.

Plateau-Funktion blau, angepasste Darstellung orange


Um dieses Verhalten zu ändern, muss man das Kennfeld der Temperaturanzeige bearbeiten.

Das Kennfeld ordnet verschiedenen Temperaturwerten die passenden Werte für die Ansteuerung des Zeigermotors zu.

Im originalen Kennfeld wird hier allen Temperaturen zwischen 75°C und 115°C der Zeigerwert 90° (Mittelstellung) zugeordnet.


Kennfeld finden

Um das Kennfeld bearbeiten zu können, so muss man es im Dump erst einmal finden.

Für einige KIs habe ich das Kennfeld gefunden, leider hat scheinbar jedes KI (also jede Teilenummer) eine andere Speicherstelle dafür.

Teilenummer Adresse Temperaturwerte Adresse Zeigerwerte
7D0 920 800 B 0x106 - 0x111 0x112 - 0x11D
7D0 920 802 Q 0x2C8 - 0x2D3 0x2E0 - 0x2EB
7D0 920 803 B 0x24C - 0x257 0x258 - 0x263


Was tut man, wenn das eigene KI nicht in der Tabelle auftaucht?

Kennfeld selber finden

Bisher begann das Kennfeld der Temperatur immer bei 30°C. 30°C ist im EEPROM als "F0 00" abgelegt. Also sucht man im Dump nach "F0 00". Bei meinem KI (7D0 920 803 B) gibt es zwei Treffer. Was also nun?

Der Zweite Temperaturwert betrug bisher immer 50°C. Das ist codiert als: "90 01". Die Zahlenfolge "F0 00 90 01" findet sich bei mir nur einmal. Also habe ich das Temperaturfeld gefunden.

Dieser Weg funktionier bei den Zeigerwerten nicht, da offenbar jedes KI ab Werk so kalibriert wurde, das 90°C auch exakt auf dem "90°C-Strich" steht. Hier gibt es aber einen einfach Trick: meist steht das Zeigerkennfeld direkt hinter dem Temperaturkennfeld. Leider aber auch nicht immer. Einige KIs legen das Temperaturfeld doppelt ab, einmal mit fallendenden, dann mit steigenden Temperaturen. Das Zeigerkennfeld liegt "hinter" dem "zweiten" (wenn es zwei gibt).

Wie werden Werte im EEPROM eigentlich abgelegt

Oder auch: wie hole ich aus dem HEX-Durcheinander Zahlen heraus?

Um von einer Zahl auf den abgelegten Wert zu kommen geht man wie folgt vor: Zahl * 8 -> Das in HEX umwandeln (Windows Taschenrechner "Programmierer") -> Die Werte vertauschen.

Beispiel: 115 * 8 = 920. 920 in HEX: 03 98 (der Windows Taschenrechner zeigt "398" an, also vorn Nullen ergänzen). Das vertauscht: "98 03" - so würde es im Dump liegen.

Anderherum geht es genauso: Werte aus dem Dump nehmen und vertauschen: "90 01" wird zu "01 90". Das als dezimalzahl umwandeln: "01 90" -> 400. Das durch 8 teilen: 400 / 8 = 50 <- das ist der gespeicherte Wert.


Wie passe ich das Kennfeld nun an?

Ich schreibe mir alle Werte (mit bereits getauschten Stellen) in Excel auf und berechne dort den Dezimalwert dazu (Excel Funktion: HEXINDEZ(zahl) / HEX2DEC(number) [englische Version]). Dann teile ich die Werte durch 8.

Für das Temperaturfeld ergibt sich:

Adresse HEX Wert Dezimalwert Temperatur in °C (Dezimalwert / 8)
0x24D & 0x24C 00 F0 240 30
0x24F & 0x24E 01 90 400 50
0x251 & 0x250 02 58 600 75
0x253 & 0x252 03 98 920 115
0x255 & 0x254 03 D0 976 122
0x257 & 0x256 04 10 1040 130

Im Aufbau