Anleitungen


Volkswagen MEB OBD2

Die folgende OBD2 Liste ist für Volkswagen Modelle mit dem MEB z.B. Software Version 3.8 geignet.

Steuergeräte

Folgende Steuergeräte gibt es

OBD2 Liste

Die Berechnung wurde mit C++ durchgeführt. Codesnippet sind teilweise weiter unten aufgeführt.

Kombi / Dash [CAN-Bus-Kanal: 0x17 Empfangs-ID: 0x17FC0076 Sende-ID: 0x17FE0076]

Die Ganganzeige funktioniert vermutlich nicht oder ist falsch.

DID/PID-Nummer Bezeichnung Einheit Berechnung
0xF802 VIN / Fahrgestellnummer String findVin(hexToAscii(p))
0xF190 VIN / Fahrgestellnummer String findVin(hexToAscii(p))
0x210E Gang / Gear String hexVal(p, 2, 2)
0x295A Kilometerstand km hexVal(p, 0, 6)
0x0364 HV-Nebenverbraucher kW hexVal(p, 0, 4) / 10.0
0x0346 Lenkradeinschlagswinkel Grad hexVal(p, 0, 4) / 10.0
0x035E Hochvolbatteriestrom A static_cast<double>(static_cast<int16_t>(hexVal(p, 0, 4))) / 10.0;
0x0360 zusätzliche Hochvoltverbraucher, Gesamtstrom A hexVal(p, 0, 4) / 100.0
0x2055 Kühlerlüfter Auslastung % hexVal(p, 0, 4) / 100.0
0x276D Auslastung % hexVal(p, 0, 4) / 100.0
0x3DEF Batterieladestand normiert % hexVal(p, 0, 4) / 100.0
0x4675 Leistungselektronik: Spannung im Fahrbetrieb V hexVal(p, 0, 4) / 10.0
0x29D4 Unbekannt - -
0x3DF8 Unbekannt - -
0x0335 Unbekannt - -
0x033B Unbekannt - -
0x0343 Unbekannt - -
0x0344 Unbekannt - -
0x43B8 Unbekannt - -
0x4539 Unbekannt - -
0xF817 Unbekannt - -
0x2005 Unbekannt - -

BMS (Battery Management System) [CAN-Bus-Kanal: 0x17 Empfangs-ID: 0x17FC007B Sende-ID: 0x17FE007B]

DID/PID-Nummer Bezeichnung Einheit Berechnung
0x0500 Batterieserialnummer String hexToAscii(p)
0x028C Ladezustand / SOC % hexVal(p, 0, 2) / 2.5;
0x02BD Kilometerstand BMS km hexVal(p, 4, 4)
0x7448 Zustand / Charge State String hexVal(p, 0, 2)
0x1620 PTC Strom A hexVal(p, 0, 2) / 4.0
0x1621 PTC Spannung V hexVal(p, 0, 2) / 10.0
0x1622 ECU Temperatur °C hexVal(p, 0, 2) - 50.0
0x1623 PTC Medium Temperatur 1 °C hexVal(p, 0, 2) - 50.0
0x1624 PTC Medium Temperatur 2 °C hexVal(p, 0, 2) - 50.0
0x743B Hochvoltbatterie Umwälzpumpe Vorlauf % hexVal(p, 0, 2
0x189D Kühlmittel / Temperaturen °C Eingang hexVal(p, 0, 4) / 64.0 Ausgang hexVal(p, 4, 4) / 64.0
0x1E0E Maximale Temperatur °C / ID Wert hexVal(p, 0, 4) / 64.0 Sensor-ID hexVal(p, 6, 2)
0x1E0F Minimale Temperatur °C / ID Wert hexVal(p, 0, 4) / 64.0 Sensor-ID hexVal(p, 6, 2)
0x1E1B Dynamische Ladegrenze A hexVal(p, 0, 4) / 5.0
0x1E1C Dynamische Entladegrenze A hexVal(p, 0, 4) / 5.0
0x1E2C Maximaler Ladezustand / SOC Max % / ID Wert hexVal(p, 0, 4) / 100.0 Zelle hexVal(p, 6, 2)
0x1E2D Minimaler Ladezustand / SOC Min % / ID Wert hexVal(p, 0, 4) / 100.0 Zelle hexVal(p, 6, 2)
0x1E32 Gesamtenergie - Ladung Ah s32(0) / 549.3164 Entladung Ah s32(8) / 549.3164 Ladung kWh s32(16) / 8583.0712 Entladung kWh s32(24) / 8583.0712
0x1E33 Zelle max V Nummer hexVal(p, 6, 2) Spannung hexVal(p, 0, 4) / 4096.0
0x1E34 Zelle min V Nummer hexVal(p, 6, 2) Spannung hexVal(p, 0, 4) / 4096.0
0x1E36 HV vor Schütz V hexVal(p, 0, 4) / 32.0
0x1E38 HV nach Schütz V hexVal(p, 0, 4) / 32.0
0x1E3B HV Spannung V hexVal(p, 0, 4) * 0.25
0x1E3C Summe der Zellspannungen V hexVal(p, 0, 8) / 4096.0
0x1E3E Batteriestrom A (150000LL - hexVal(p, 0, 8)) / 100.0
0x1E3D Batteriestrom 2 A (hexVal(p, 0, 8) - 150000LL) / 100.0
0x1E40 - 0x1EAB Zellspannungen V raw > 0x0F00 ? NaN : raw * 0.001 + 1.0
0x1EAE - 0x1EBD Zelltemperaturen °C raw > 0x0FF0 ? NaN : raw * 0.125 - 40.0
0x7425 - 0x742C Zelltemperaturen °C raw > 0x0FF0 ? NaN : raw * 0.125 - 40.0
0x5170 Minimale Entladespannung V hexVal(p, 0, 4)
0x5171 Maximale Ladespannung V hexVal(p, 0, 4)
0x5867 Tageszaehler 2 km hexVal(p, 4, 4) * 10
0xF40C Motordrehzahl rpm hexVal(p, 0, 4) / 4.0
0xF40D Fahrzeuggeschwindigkeit km/h hexVal(p, 0, 2)
0x2A0B Haupstemperatur °C hexVal(p, 0, 2) / 2.0 - 40.0
0x1EAF Unbekannt - -
0x1EB0 Unbekannt - -
0x1EB1 Unbekannt - -
0x1EB2 Unbekannt - -
0x1EB3 Unbekannt - -
0x1EB4 Unbekannt - -
0x1EB5 Unbekannt - -
0x1EB6 Unbekannt - -
0x1EB7 Unbekannt - -
0x1EB8 Unbekannt - -
0x1EB9 Unbekannt - -
0x1EBA Unbekannt - -
0x1EBB Unbekannt - -
0x1EBC Unbekannt - -
0x1EBD Unbekannt - -
0x7425 Unbekannt - -
0x7426 Unbekannt - -
0x7427 Unbekannt - -
0x7428 Unbekannt - -
0x7429 Unbekannt - -
0x742A Unbekannt - -
0x742B Unbekannt - -
0x742C Unbekannt - -
0x189B Unbekannt - -
0x1E39 Statusanzeige 0 / 1 - -

BMS-2 (Battery Management System 2) [CAN-Bus-Kanal: 0x17 Empfangs-ID: 0x17FC007C Sende-ID: 0x17FE007C]

DID/PID-Nummer Bezeichnung Einheit Berechnung
0x3E93 Zwischenkreisspannung V hexVal(p, 0, 8)
0x43B9 Zwischenkreisspannungreserve V hexVal(p, 0, 8)
0x3EE7 Maximaler Motorstrom A hexVal(p, 0, 8)
0x3EE8 Motormindeststrom A hexVal(p, 0, 8)
0x086D Kilometerstand km hexVal(p, 10, 4)
0x1042 Unbekannt - -
0x1041 Unbekannt - -
0x1040 Unbekannt - -
0x0308 Unbekannt - -
0x2CCC Rotortemperaturmodell - -
0x4FAE Kühlmittelzulauftemperatur Elektroantrieb - -
0x0805 Motorsteuergerät Temperatur 1 - -
0x0806 Motorsteuergerät Temperatur 2 - -
0x4672 Statortemperatur - -
0x40C8 Unbekannt - -
0x4657 Unbekannt - -
0x100A Unbekannt - -
0x1008 Unbekannt - -
0x1009 Unbekannt - -
0x1007 Unbekannt - -
0x3EED Unbekannt - -
0x3E98 Unbekannt - -
0x3EEB Unbekannt - -
0x3EEA Unbekannt - -
0x58E1 Unbekannt - -
0x3EE9 Unbekannt - -

DC/DC-Wandler [CAN-Bus-Kanal: 0x17 Empfangs-ID: 0x17FC00B9 Sende-ID: 0x17FE00B9]

DID/PID-Nummer Bezeichnung Einheit Berechnung
0x465B DC/DC Strom A hexVal(p, 0, 4) / 16.0
0x465D DC/DC Spannung V hexVal(p, 0, 4) / 512.0

GPS [CAN-Bus-Kanal: 0x17 Empfangs-ID: 0x000007D1 Sende-ID: 0x000007D9]

DID/PID-Nummer Bezeichnung Einheit Berechnung
0x2431 Sattelieten Anzahl Visible hexVal(p, 0, 2) Tracked hexVal(p, 2, 2)

Charger [CAN-Bus-Kanal: 0x00 Empfangs-ID: 0x000007A6 Sende-ID: 0x000007AE]

DID/PID-Nummer Bezeichnung Einheit Berechnung
0x1DDA Buchse A: Temperatursensor °C hexVal(p, 0, 1) - 40.0
0x1525 Buchse A: Spannung PP-Kontakt mV hexVal(p, 0, 4) / 1000.0
0x1DA7 Hochspannungsausgang V hexVal(p, 0, 4) / 10.0
0x103E Unbekannt - -
0x103D Unbekannt - -

Codesnippet

uint32_t hexVal(const std::string& p, size_t off, size_t len) {
  return static_cast<uint32_t>(std::strtoul(p.substr(off, len).c_str(), nullptr, 16));
}
std::string hexToAscii(const std::string& hex) {
  std::string out;
  for (size_t i = 0; i + 1 < hex.size(); i += 2) {
    int c = static_cast<int>(hexVal(hex, i, 2));
    if (c >= 0x20 && c <= 0x7E) out += static_cast<char>(c);
  }
  size_t a = out.find_first_not_of(' ');
  size_t b = out.find_last_not_of(' ');
  return a == std::string::npos ? "" : out.substr(a, b - a + 1);
}
std::string findVin(const std::string& text) {
  auto valid = [](char c) {
    return (std::isdigit(static_cast<unsigned char>(c)) || (c >= 'A' && c <= 'Z')) && c != 'I' && c != 'O' && c != 'Q';
  };
  for (size_t i = 0; i + 17 <= text.size(); i++) {
    bool ok = true;
    for (size_t k = 0; k < 17 && ok; k++) ok = valid(text[i + k]);
    if (ok) return text.substr(i, 17);
  }
  return "";
}