Conrad Charge Manager 2020

Das ist der neue CM2020 von Conrad. Neu ist eigentlich neben den 10 Schächten nur die clevere Lösung, den Ladestrom über die Bauform anzupassen.
Leider ist das Gerät wie sein Vorgänger so laut, dass schnell das Bedürfnis entsteht, es möglichst weit entfernt vom Schreibtisch aufzustellen. Damit man auch weiterhin bequem vom Schreibtisch aus den Ladezustand ablesen kann, habe ich ein kleines Perl-Script für Windows geschrieben, dass alle erforderlichen Werte in einer HTML-Seite darstellt, welche sich ständig aktualisiert. Diese HTML-Seite wird mittels des in dem Script integrierten Webservers über Port 3037 in das lokale Netzwerk gestellt. Zusätzlich wird, wenn die Aufladung beendet ist, eine Email mit den Ladekennwerten an einen SMTP-Server im Netzwerk abgesetzt, so dass bei Bedarf eine Datenbank mit den Ergebnissen angelegt wird.

J. Grathwohl hat die Version 0.4 weiterentwickelt, die HTML-Ausgabe um eine Grafik erweitert und zusätzlich die Möglichkeit eines Hex-Dumps eingefügt (Version 0.74).

Das Protokoll der seriellen Schnittstelle des Vorgängermodells CM2010 wurde ausgiebig von Christoph Heine und Markus Birth beschrieben. Leider hat der Hersteller das Datenformat verändert, insbesondere wird jetzt die tatsächliche Zellenspannung unter Last übertragen, so dass zur Auswertung der Leerlaufpannung zusätzlich ein Counter mit ausgewertet werden muss. Anders formuliert wird beim Laden nur einmal pro Minute die Leerlaufspannung übermittelt. Beim Entladen wird die Leerlaufspannung alle 10 Sekunden ermittelt.


Nachfolgend die für den CM2020 angepasste Tabelle von Markus Birth:

Nullmodemkabel

Geschwindigkeit:

9600 baud

Datenbits:

8

Parität:

keine

Stoppbits:

1

Flusskontrolle:

DTR

Für das Auslesen des CM2020 braucht man einen freien seriellen COM-Port und ein Nullmodemkabel. Die Übertragungsparameter sind in der Tabelle rechts zu sehen. Es werden kontinuierlich Informationen gesendet. Man erhält alle 2 Sekunden Informationen über einen einzelnen Schacht, d.h. pro Sekunde werden 110 Byte (=5 Schächte) übertragen.

Das Datenformat
Jeder Datensatz über einen einzelnen Slot besteht aus 22 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/03

??
zeigt
u.a. beim Laden:
- bei bestimmten
Weten von Byte 22 den Strom in mA an(wie Byte 14/15)

04/Hi

Hex

Beschreibung

0

kein RDY (CM arbeitet oder Leerlauf)

4

RDY Discharge

6

RDY Charge

8

ERR (gefunden von J. Schneider)

oder alternativ

Bit

Beschreibung

0

?? (evtl Break?)

1

Akku geladen (ist bei Charge Ready und Trickle gesetzt)

2

RDY (Charge und Discharge)

3

ERR (gefunden von J. Schneider)

04/Lo

Gibt Auskunft über die momentane Display-Anzeige:

Hex

Beschreibung

7

CHA

8

DIS

9

CHK

a

CYC

b

ALV

05

Gibt Auskunft über den Ablauf des Programms.

Hex

Beschreibung

0

kein Programm aktiv / Kein Akku eingelegt

1

Laden

<-- ALV startet hier

2

Entladen

 

3

Laden

<-- CYC startet hier

4

Entladen

<-- CHK startet hier

5

Laden

<-- CHA startet hier

6

Entladen

(wird übersprungen, nur bei DIS startet das Programm hier)

7

Erhaltungsladung

(Trickle)

8

RDY

Fertig!

Bei ALV läuft der CM2020 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.

06-08

Geladene Kapazität. (CCap; in 10-2 mAh)

09-11

Entladene Kapazität. (DCap; in 10-2 mAh)

12-13

Spannung (U; in mV)
- beim Laden und Entladen Byte 18 beachten!!
- leerer Schacht: Leerlaufspannung ca. 2,20V
- wenn RDY: Zellenspannung

14-15

Stromstärke (I; in mA) mit der geladen/entladen wird.  (Byte 18 beachten!)

Entladung erfolgt im Taktverhältnis 4:1, d.h. der angezeigt Stromwert beträgt als Mittelwert 80% Imax (nachgemessen: 83% Imax)
Beladung erfolgt im
Taktverhältniss 58:1:1 (+I, -I, I=0) demzufolge müßte die Stromanzeige 57/60=95% Imax betragen (nachgemessen: 100% Imax, d.h. 5% zuviel Kapazität CC ;-)

16

Stunden, die der Akku bearbeitet wurde.

17

Minuten, die der Akku bearbeitet wurde.

18

Trigger zum Synchronisieren der Ausgabe (s. auch Byte 22)

Hex

tritt auf beim

Werte

0A

Entladen

jetzt Strom und Spannung auslesen  

8A

Laden

jetzt Spannung auslesen (Strom ist immer gültig)

19

Hex

tritt auf beim

00

Schacht leer

1F

Akku eingelegt (nur Slot 1 bis 8)

20

???

21

Gibt Auskunft über den maximalen zulässigen Ladestrom in (102 mA)

Hex

Dez

Strom

03

3

300mA

0A

10

1000mA

14

20

2000mA (zB. Mono oder Mignon im Power-Modus)

22

Counter zählt immer Rückwärts bei jeder Anzeige (2 Sekunden für alle 10 Slots - jeder Slot hat einen eigenen Counter)

der tatsächliche Strom und die Leerlaufspannung müssen bei bestimmten Counterwerten ausgelesen werden:

 

Hex

Werte

Laden

1E, 1D . 01, 1E,

bei 1Eh Spannung auslesen

Entladen

05, 04, 03, 02, 01, 05..

bei 05h Strom und Spannung auslesen  

technische Details des CM2020

Der CM2020 unterscheidet sich vom Aufbau und von der Software (Betriebssystem) grundsätzlich vom CM2010. Im CM2020 steckt ein Microprozessor MC68HC908GT16 (analog einer C-CONTROL I M-UNIT 2.0) mit einem 16-Bit A/D Wandler ADS1100. Die Programmierung könnte sogar in BASIC erfolgt sein (siehe http://c-control-support.de)

Beim Laden wird 58 Sekunden mit Konstantstrom geladen. Danach wird für knapp eine Sekunde der Ladestrom umgekehrt. Anschließend wird in der 60 Sekunde die Leerlaufspannung gemessen und dann am ComPort ausgegeben. Wegen der großen Zeitspanne von 58 Sekunden ist der CM2020 kein Reflex-Lader.
Weiterhin wird zum Ladeende der Strom nicht verringert, so dass bei hohen Ladeströmen von 2A (Baby-Zellen oder Mignon-Zellen im Power-Modus) starke Erwärmungen auftreten können.

Y-Achse: Oberer Messwert: Spannung mit 500mV/Linie, darunter Strom mit 500mA/Linie
X-Achse: 0,5sec/Linie

Beim Entladen wird erst 8 Sekunden entladen. Danach folgt eine Ruhepause von 2 Sekunden, in der die Leerlaufspannung gemessen und am Com-Port ausgegeben wird

Y-Achse: Obere Linie Spannung 500mV/Linie , darunter Strom mit 500mA/Linie (negativ wg. Entladung)
X-Achse: 2 sec/Linie

Hier noch einmal zur Verdeutlichung der Übergang vom Entladen zum Laden. Der Vorgang wurde manuell angestoßen, gut zu erkennen aber ist der Akku-Test.

Y-Achse: Strom mit 1000mA/Linie (Entladung: negativ / Ladung: positiv )
X-Achse: 30 sec/Linie

Hier hat Conrad das Ladeprinzip gegenüber dem CM2010 geändert. Siehe ein altes Posting von Roland Reiss in der Newgroup de.rec.fotografie der ebenfalls mit einem Tektronix nachgemessen hat ;-)

Ausgaben des Perl-Scriptes

Link zu einer Ausgabeseite des Scriptes und zu einem Dump von Slot 1.

Hier eine Grafik von 2 Baby-Zellen (Conrad 2000mAh):

Refresh / X Scale
30sec / 15min

Für die Erklärung der Linien und Teilungen: siehe Grafik weiter unten.
Die dazugehörige Tabellenausgabe des Scriptes:

Slot

Prog

Ladung CC

Entladung DC

Spannung

Strom

Time

RDY

 

1

ALV

1889 mAh

1423 mAh

1.382 V

0.000 A

6:35

RDY

 

2

ALV

7567 mAh

1717 mAh

1.416 V

1.994 A

6:58

^ (3)


bekannte Probleme der aktuellen Firmware des CM2020 (Stand: Januar 2005)


Installationsanleitung für ActivePerl

Zuerst das Modul win32-api mit dem Perl Package Manager (PPM) installieren (wenn das Modul nicht vorhanden ist).
Kommandozeile: PPM> install win32-api

Danach das Modul WIN32::SerialPort (Comport für Windows unter Perl) installieren. Das ist mit dem PPM nicht möglich. Deshalb alles entpacken und von Hand installieren, der genaue Weg ist in der readme beschrieben:

perl Makefile.PL [optional PORT]
perl test.pl
perl install.pl

Damit wird dann die Datei COM1_test.cfg (bzw. COM2_test.cfg - im Script entsprechend eintragen) erzeugt, welche im gleichen Verzeichnis, wie das Perl-Script liegen muss. Das Perl-Script erzeugt dann im 2 Sekundentakt die Ausgabe an Port 3037 (Link hier ohne reload).

Die html-Seite aktualisiert sich im Browser alle 5 Sekunden mittels reload, so dass ständig die aktuellen Ladestände angezeigt werden.

Zusätzliche Pakete ab Version 0.7:

das Modul MIME-Lite-HTML
mit dem o.g. Perl Package Manager: PPM> install MIME-Lite-HTML

das Modul GD
mit dem o.g. Perl Package Manager: PPM> install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd

Kontakt

Project Admin: http://sourceforge.net/projects/cm2020/


Downloads

Links


Letzte Änderung: 09/02/2005, J. Friedrich