Alles anzeigenMit etwas Hirn einschalten kann man da und wie man 4,7 oder 7,2 KW einstellt auch einen niedrigeren Wert einstellen. Sprich halt doch nur 8A sprich 1,8 KW
Und das ist auch nur der maximale Wert, der am Start gilt und ausgehandelt wurde. Was passiert den wenn man während dem Laden der EVSE sagt das sie runter gehen soll?
Loadmanagement?
Dann müsste auch weniger gehen oder?
Schon mal beobachtet wie der Ladestrom wenn die Zellen fast voll sind runterregelt? Wie das wohl funktioniert
Nachdem sich hier wieder mal jemand als Zentrum angesprochen fühlt und sich mit fremden Federn schmückt, hier ein paar technische Details, die man (noch) nicht in anderen Blogs lesen und wie man das Tool eigentlich verwenden kann.
Schauen wir uns doch mal die Funktion an die uns das gute ED4scan bietet, das im Prinzip das ähnliche wie beim BMSdiag macht und jederzeit kostenlos vom Git vom Entwickler heruntergeladen werden kann genauer an.
Man kann es auch fertig in einem Shop kaufen oder selber zusammenbauen und 100€ sparen.
Also was passiert denn wenn man die Funktion SetACMax mit dem eingegebenen Befehl "set ac_max 20 -yes]" aufruft
boolean canDiag::setACmax(ChargerDiag_t *myOBL, boolean debug_verbose) {
myOBL->newAmps_setpoint = constrain(myOBL->newAmps_setpoint, 6, 20);
//Serial.println(myOBL->newAmps_setpoint);
byte _rqMsg[8] = {0x04, 0x2E, 0x61, 0x41, 0x50, 0x00, 0x00, 0x00};
_rqMsg[4] = myOBL->newAmps_setpoint * 4; //Define new AC max current
Genau der eingegebene Wert wird überprüft ob er zwischen 6 und 20 Ampere liegt. Was wohl passieren würde, wenn man an dieser stelle statt 20 den Wert 32 eintragt?
Noch nicht viel da einer zweiten Stelle nochmal auf 20 Ampere abgefragt wird.
Vielleicht hier? :
if (OBL.OBL7KW && (BMS.KeyState == 0) && strcmp(args[1], "ac_max") == 0 && strcmp(args[3], "-yes") == 0) {
OBL.newAmps_setpoint = constrain((byte) cmdStr2Num(args[2], 10), 6, 20);
if (DiagCAN.setACmax(&OBL, false)) {
if (DiagCAN.getChargerCtrlValues(&OBL, false)) {
if (OBL.Amps_setpoint == OBL.newAmps_setpoint) .......
Würde dann die Funktion SetACMax mit dem eingegebenen Befehl "set ac_max 32 -yes]" wohl etwas bestimmtes machen ?
Aber das ist ja nur der Weg wie man auf 7,2KW umstellen kann oder halt auch auf kleinere Werte.
Aber das "teuerere" erweiterte ED4scan ist hier ja nicht wirklich die Wahl. Denn das auch ins OVMS einzubauen würde es erlauben die Werte jederzeit Remote einzustellen.
Ok was müsste man dazu machen?
Schauen wir uns mal folgende Zeile an:
byte _rqMsg[8] = {0x04, 0x2E, 0x61, 0x41, 0x50, 0x00, 0x00, 0x00};
Hier ist das ganze Wunderwerk der Einstellung.
Es ist ein UDS Befehl auf dem CAN-BUS via der ODB Schnittstelle. Sprich jeder billigst ELM327 kann das wenn man den richtigen Befehl and die richtige CAN ID schickt.
Die CAN IDs für das UDS Protokoll des OBL sind die
const PROGMEM uint32_t rqID_CHGCTRL = 0x719;
const PROGMEM uint32_t respID_CHGCTRL = 0x739;
Die Framelänge ist immer 8 Bytes.
Im Frame ist der UDS Befehl.
Der besteht auf 4 Bytes (das ist die erste Zahl im Frame, die wird nicht mitgezählt)
Das UDS Kommando lautet 0X2E, 0x61 und 0x41 mit dem Parameter 0x50)
Der Wert in Ampere wird mal 4 Stelle gezählt ab 0 eingetragen und überschreibt den Wert 0x50.
Somit kann man sogar den Stromwert in 250mA Schritten angeben.
Das ganze macht übrigens auch das DDT4ALL innerhalb dem ganzen Software wusst.
Somit wie funktioniert es denn jetzt mit dem ELM327 und einem einfachen Terminalprogramm mit jedem Mobile oder auch mit einer kleinen APP?
Genau zwei Befehlszeile und alles ist passiert
ATSH 719
04 2E 61 41 80 00 00 00
dann sind 32A eingestellt
oder
ATSH 719
04 2E 61 41 50 00 00 00
dann sind 20A eingestellt
und falls es mal einen gespeicherten Fehlercode im OBL gibt
vielleicht mal
ATSH 719
04 14 FF FF FF 00 00 00
ausprobieren. Dazu muss man nicht extra einen Tester anschliessen oder in die Werkstatt fahren
Ich weiss das ist ziemlich tiefer Tobak, aber das ist wirkliches Wissen das geteilt wird.
Ob 2 Zahlen, die in einer freien Software gändert werden 50 Euro Wert sind muss jeder für sich selber entscheiden.
Die Arduino IDE ist ja sowieso schon drauf und die 2 Stellen im Code sollte so jeder der ein wenig versteht leicht finden.
Ich empfehle nebenbei statt der Arduino Umgebung zum ED4scan auslesen die Software Coolterm.
Viel Spass beim selber probieren. Bei Fragen helfe ich sonst gerne weiter.