Projekt eingestellt.
Da ich schon eine halbe Ewigkeit keine Zeit mehr gefunden habe, am CM2010Project weiterzuarbeiten,
stelle ich hiermit offiziell das Projekt ein. Wer auf eigene Faust daran weiterentwickeln möchte, kann sich bei mir melden
und kann dann hier bei SourceForge als Entwickler eingetragen werden.
Schon vor etwa 1 Jahr hab ich LogView entdeckt und damals war schon absehbar, dass
es nur noch eine Frage der Zeit sein würde, bis die beiden Entwickler Unterstützung für den CM2010 einbauen. Dies ist nun
geschehen und die neueste Version 1.14.2 unterstützt den Charge Manager 2010.
Das ist mein CM2010. Das beste an ihm ist die RS232-Schnittstelle an der Rückseite. Leider rückt der Hersteller nicht mit Informationen über das verwendete Datenformat raus. Aber anhand der Beschreibung von Christoph Heine war ich in der Lage, ein kleines Programm zu schreiben und bin während des Programmierens sogar auf neue Informationen gestossen.
Im folgenden werde ich alles wichtige über die PC-Anbindung des CM2010 erklären. Wen das nicht interessiert, kann auch gleich runter zum Download springen.
Ersten Kontakt herstellen
Geschwindigkeit: | 9600 baud |
Datenbits: | 8 |
Parität: | keine |
Stoppbits: | 1 |
Flusskontrolle: | DTR |
Das Datenformat
Jeder Datensatz über einen einzelnen Slot besteht aus 34 Bytes.
Hier kommt eine Aufschlüsselung über die gesendeten Informationen. Numerische Werte sind im Big Endian Format codiert, d.h. das höchstwertige Byte steht links. Also 256d wäre dann 01 00h und 65538d 01 00 02h.
Mit "xx/Hi" meine ich die vier ersten(linken) Bits des Bytes, mit "xx/Lo" dann natürlich die 4 letzten(rechten) Bits des Bytes.
Byte(s) | Beschreibung | |||||||||||||||||||||||||||||||||||||||||||||||||||
01 | Nummer des Slots, über den die Daten sind | |||||||||||||||||||||||||||||||||||||||||||||||||||
02/Hi | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
02/Lo | Gibt Auskunft über die momentane Display-Anzeige.
Hinweis: Bei 2h springt das Display nach 3 Sekunden zur Kapazitätswahl. Natürlich sieht man dann im Display nicht mehr "SELECT AUTO/MAN: MANUAL", sondern die Auswahl für die Kapazität. Dies sieht man dann aber am dritten Byte. | |||||||||||||||||||||||||||||||||||||||||||||||||||
03/Hi | Gibt Auskunft über die gewählte Akku-Kapazität im manuellen Modus.
Hinweis: Wenn dieses Teilbyte NICHT 0h ist, befindet sich der Ladeschacht im "MAN"-Modus, ansonsten dann "AUTO". | |||||||||||||||||||||||||||||||||||||||||||||||||||
03/Lo | Gibt Auskunft über den Ablauf des Programms.
Bei ALV läuft der CM2010 folgende Schritte ab: 1, 2, 3, 4, 5, 8. Bei CYC: 3, 4, 5, 8. Bei CHK: 4, 5, 8. Bei CHA: 5, 8. Bei DIS: 6, 8. Wenn nach dem Laden die Akkuspannung sinkt, kommt TRI. | |||||||||||||||||||||||||||||||||||||||||||||||||||
04 | ??? (Könnte was mit der Füllstandsmessung zu tun haben. Bei 00h (ganz kurz) aktualisiert er die symbolische Batterie im Display. Sonst unterschiedliche Werte.) | |||||||||||||||||||||||||||||||||||||||||||||||||||
05 | Interner Zähler. Zählt nach Einlegen des Akkus die 3 Sekunden, die man Zeit hat, eine Option zu wählen, rückwärts. Ansonsten zählt er von 60d rückwärts und bei 00 erfolgt Umsprung auf die nächste Minute. | |||||||||||||||||||||||||||||||||||||||||||||||||||
06 | Stunden, die der Akku bearbeitet wurde. | |||||||||||||||||||||||||||||||||||||||||||||||||||
07 | Minuten, die der Akku bearbeitet wurde. | |||||||||||||||||||||||||||||||||||||||||||||||||||
08 | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
09-10 | Spannung (U; in mV) - nur beim Aufladen, sonst 00 00. Evtl. max. Spannung für Delta-U-Abschaltung. | |||||||||||||||||||||||||||||||||||||||||||||||||||
11 | ??? (evtl. ungefährer Füllstand des Akkus?) | |||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
13 | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
14-15 | Stromstärke (I; in mA) mit der geladen/entladen wird. | |||||||||||||||||||||||||||||||||||||||||||||||||||
16-17 | Spannung (U; in mV) des Akkus. | |||||||||||||||||||||||||||||||||||||||||||||||||||
18-20 | Geladene Kapazität. (CCap; in 10-2 mAh) | |||||||||||||||||||||||||||||||||||||||||||||||||||
21-23 | Entladene Kapazität. (DCap; in 10-2 mAh) | |||||||||||||||||||||||||||||||||||||||||||||||||||
24 | ??? (0Bh, wenn nicht geladen wird. Sonst auch mal was anderes.) | |||||||||||||||||||||||||||||||||||||||||||||||||||
25-26 | Vor-vor-vor-letzte Spannung | |||||||||||||||||||||||||||||||||||||||||||||||||||
27-28 | Vor-vor-letzte Spannung | |||||||||||||||||||||||||||||||||||||||||||||||||||
29-30 | Vor-letzte Spannung | |||||||||||||||||||||||||||||||||||||||||||||||||||
31-32 | Letzte Spannung | |||||||||||||||||||||||||||||||||||||||||||||||||||
33-34 | Widerstand im Schacht. (kein Akku: FF FF; 5 MOhm: 01 F4) |
Synchronisieren
Wenn man diese Informationen auslesen will, ist es wichtig, dass man das Programm mit dem Datenstrom synchronisiert - damit man nicht irgendwelches Kauderwelsch angezeigt bekommt.
Wie man am Protokoll sehen kann, ist das erste Byte IMMER die Nr. des Ladeschachts. Also kann man darauf prima synchen - alle 35 Bytes muss der Wert um 01h größer werden und nach 04h muss 34 Bytes später 01h kommen.
Screenshot
Mein Programm in Aktion:
Oben sieht man die 4 Zeilen mit den Rohdaten für den jeweiligen Slot. Der gewählte Radiobutton zeigt immer an, für welchen Slot gerade die Daten erwartet werden.
Das grüne ist die Übersichtsanzeige, wie man sie auch auf dem CM2010 sieht - allerdings ohne die Füllstandsymbole.
In der Mitte sind die 4 Anzeigen mit den Details über jeden Schacht und daneben die jeweiligen Einstellungen für Graph-Farbe und Logging-AN/AUS.
(Die Schächte 3 und 4 sind leer.)
Links davon unter der Übersichtsanzeige ist der Status des COM-Ports zu sehen, sowie die Zeit, wann das letzte Zeichen vom COM-Port gelesen wurde.
Oben rechts ist der Knopf, um die COM-Port-Optionen einzustellen. Normalerweise muss nur der richtige Port eingestellt werden - der Rest sollte stimmen.
Darunter ist der Start/Stop-Knopf. Und wiederum darunter ist der Knopf, der mal das Mitloggen des Ladeverlaufs bewirken soll.
Unten ist das Graph-Feld, welches die Spannungsverläufe in den einzelnen Schächten grafisch darstellt. Schwankungen von mehr als ±0,5V werden zusätzlich mit der Zeit kommentiert.
Rechts davon ist der Regler für die Aktualisierungsrate.
Hier nochmal ein Screenshot mit aktiviertem Alpha-Blending. Normalerweise ist diese Option ausgeschaltet. Man kann sie aber durch ein paar Einträge in die CM2010Project.ini aktivieren (Siehe Changelog.)
Download
Links