Forum: Mikrocontroller und Digitale Elektronik ELV ALC 8500-2 Expert Schnittstellenprotokoll verstehen


von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe hier ein ALC 8500-2 Expert und würde gerne selbst Kommandos an 
das Gerät schicken, da ich eine Funktion benötige, welche nicht in der 
standard SW dabei ist: z.B. einen Akku 50 mal laden und entladen.
Mit der standard SW geht das nur 1 mal.
Per HTerm komme ich drauf und kann auch manche Kommandos schicken, nur 
bekomme ich bei anderen wiederum komische bzw. keine Antworten.

Hier findet man ab S. 28 die Beschreibung des Protokolls:
https://files2.elv.com/public/06/0693/069326/Internet/59066_69326_alc8500e_2_um.pdf

Was müsste ich im HTerm senden, damit z.B. ein Li-Ion Akku (4.1V) auf 
Kanal 1 mit 500mA entladen (bis 3.0V) und 1000mA geladen (bis 4.1V) 
wird?
Ich kann die Konfiguration auch in die Datenbank (Nr.1) schreiben.
Jedoch bekomme ich beim Befehl "A 0 3" nur die Antwort "x02 x04 x03"
x02 und x03 sind STX und ETX, x04 bedeutet laut ASCII Tabelle "End of 
TX".

Weiss da jemand weiter?

Vielen Dank euch im Voraus!
kally

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Kally K. schrieb:
> Was müsste ich im HTerm senden, damit z.B. ein Li-Ion Akku (4.1V) auf
> Kanal 1 mit 500mA entladen (bis 3.0V) und 1000mA geladen (bis 4.1V)
> wird?
1
Der Befehl zum Setzen der Parameter sieht wie folgt aus: P <Kanalnummer>
2
<Akkunummer> <Akkutyp> <Zellenanzahl> <Entladestrom> <Ladestrom>
3
<Kapazität> <Programmnummer> <Formierstrom> <PauseLE> <FLAGS> <VollFaktor>.
  Und:
1
Solange sich ein Kanal in der Ladestufe Leerlauf befindet, können die
2
Parameter neu gesetzt werden.

 Was genau verstehst du da nicht?

von Kally K. (kallyk)


Lesenswert?

Dass ich immer "x02 x04 x03" als Antwort bekomme.

Wenn ich folgenden Befehl schicke, bekomme ich die obige Antwort:
"P 0 0 2 0 1000 500 26000000 3 0 60 2 250"

Und wenn ich danach "A 0 0" schicke, um den Befehl zu starten, bekomme 
ich dieselbe Antwort und es passiert nichts.

von Harry (Gast)


Lesenswert?

Marc V. schrieb:
> Der Befehl zum Setzen der Parameter sieht wie folgt aus: P <Kanalnummer>
> <Akkunummer> <Akkutyp> <Zellenanzahl> <Entladestrom> <Ladestrom>
> <Kapazität> <Programmnummer> <Formierstrom> <PauseLE> <FLAGS>
> <VollFaktor>.

Kally K. schrieb:
> Wenn ich folgenden Befehl schicke, bekomme ich die obige Antwort:
> "P 0 0 2 0 1000 500 26000000 3 0 60 2 250"

Was soll das 26000000 ? 26000 Ah? 26000000 µAh?

von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Harry schrieb:
> Marc V. schrieb:
>> Der Befehl zum Setzen der Parameter sieht wie folgt aus: P <Kanalnummer>
>> <Akkunummer> <Akkutyp> <Zellenanzahl> <Entladestrom> <Ladestrom>
>> <Kapazität> <Programmnummer> <Formierstrom> <PauseLE> <FLAGS>
>> <VollFaktor>.
>
> Kally K. schrieb:
>> Wenn ich folgenden Befehl schicke, bekomme ich die obige Antwort:
>> "P 0 0 2 0 1000 500 26000000 3 0 60 2 250"
>
> Was soll das 26000000 ? 26000 Ah? 26000000 µAh?

Das sind 2600mAh. Siehe Anhang.

von Jens M. (schuchkleisser)


Lesenswert?

Wenn ich da "4 byte" und "0h bis 7...h" lese, solltest du nicht 26000000 
schicken, sondern 018cba80 ;)

Das Protokoll scheint mir eher "binär" nicht "ASCII", gelle?

: Bearbeitet durch User
von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Jens M. schrieb:
> Wenn ich da "4 byte" und "0h bis 7...h" lese, solltest du nicht 26000000
> schicken, sondern 018cba80 ;)
>
> Das Protokoll scheint mir eher "binär" nicht "ASCII", gelle?

Das könnte was sein! :)
Weiss jemand wie man im HTerm Hex verschicken kann?
Wenn ich z.B. im Type "Hex" habe und "F" schicke, dann wird nur "46" 
geschickt.
Jedes Kommando wird in ASCII umgewandelt...

: Bearbeitet durch User
von dummschwaetzer (Gast)


Lesenswert?

>Wenn ich z.B. im Type "Hex" habe und "F" schicke, dann wird nur "46"
>geschickt.
passt doch 'F'=0x46=70=...

von Kally K. (kallyk)


Lesenswert?

dummschwaetzer schrieb:
>>Wenn ich z.B. im Type "Hex" habe und "F" schicke, dann wird nur "46"
>>geschickt.
> passt doch 'F'=0x46=70=...

Ja, aber ich will 0x0F schicken...
Wie soll das gehen mit HTerm?

von Cyblord -. (cyblord)


Lesenswert?

Kally K. schrieb:
> dummschwaetzer schrieb:
>>>Wenn ich z.B. im Type "Hex" habe und "F" schicke, dann wird nur "46"
>>>geschickt.
>> passt doch 'F'=0x46=70=...
>
> Ja, aber ich will 0x0F schicken...
> Wie soll das gehen mit HTerm?

In dem du das Häkchen bei "Input Control" auf HEX setzt und "0F" 
eingibst.
Wenn es daran schon scheitert...

Das hast du allerdings schon gesetzt. Und noch STX/ETX bei "Send on 
Enter". Ist das gewünscht?

: Bearbeitet durch User
von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Cyblord -. schrieb:
> Kally K. schrieb:
>> dummschwaetzer schrieb:
>>>>Wenn ich z.B. im Type "Hex" habe und "F" schicke, dann wird nur "46"
>>>>geschickt.
>>> passt doch 'F'=0x46=70=...
>>
>> Ja, aber ich will 0x0F schicken...
>> Wie soll das gehen mit HTerm?
>
> In dem du das Häkchen bei "Input Control" auf HEX setzt und "0F"
> eingibst.
> Wenn es daran schon scheitert...
>
> Das hast du allerdings schon gesetzt. Und noch STX/ETX bei "Send on
> Enter". Ist das gewünscht?

Ja ist gewünscht, da sonst das Gerät nicht antwortet (siehe Anhang).
Wenn ich so 0F sende, wird 30 46 geschickt...

von Cyblord -. (cyblord)


Lesenswert?

Kally K. schrieb:

> Ja ist gewünscht, da sonst das Gerät nicht antwortet (siehe Anhang).
> Wenn ich so 0F sende, wird 30 46 geschickt...

Ich würde das trotzdem, zum Testen, immer erstmal manuell mitsenden. 
Dann hast du die direkte Kontrolle was raus geht, ohne das da was 
automatisch passiert und hast das komplette Paket vor dir in deinem 
Input Fenster.

von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Cyblord -. schrieb:
> Kally K. schrieb:
>
>> Ja ist gewünscht, da sonst das Gerät nicht antwortet (siehe Anhang).
>> Wenn ich so 0F sende, wird 30 46 geschickt...
>
> Ich würde das trotzdem, zum Testen, immer erstmal manuell mitsenden.
> Dann hast du die direkte Kontrolle was raus geht, ohne das da was
> automatisch passiert und hast das komplette Paket vor dir in deinem
> Input Fenster.

Es scheint ja schon zu funktionieren, da wenn ich "t" sende, ich auch 
eine korrekte Antwort bekomme (siehe Anhang).
Ohne STX/ETX bekomme ich gar nichts...
Ich schaffe es ja auch nicht STX ETX in irgendeinem anderen Format zu 
schicken, dass es auch als 0x02 und 0x03 gesendet wird.
Langsam glaube ich HTerm kann das irgendwie nicht...

von Cyblord -. (cyblord)


Lesenswert?

Kally K. schrieb:
>
> Langsam glaube ich HTerm kann das irgendwie nicht...

Na klar.... Wenn man nicht Schwimmen kann, ist die Badehose schuld.

Also STX=0x02, ETX=0x04, das hängst du einfach vorne und hinten an. So 
schwer ist das nicht. Aber ja, hterm kann das für dich machen. Das 
scheint nicht das Problem zu sein.

Und warum wählst du HEX aus und schreibst dann ein "t" da rein? Was soll 
das  bringen? Ist "t" eine HEX Ziffer? Hex ist 0-9 und A-F.

Du kapierst da irgendwas grundlegend nicht.

Also warum schreibst du hier nicht mal dein Datenpaket rein welches du 
senden willst. Dein Beispiel oben war ASCII das war falsch. Du musst es 
binär zusammenstellen. Fang doch mal damit an.

Wie du das dann sendest ist dann erst dein 2. Problem. Dein eigentliches 
Problem ist, dass du das Kommandopaket gar nicht erst bauen kannst.

: Bearbeitet durch User
von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Cyblord -. schrieb:
> Kally K. schrieb:
>>
>> Langsam glaube ich HTerm kann das irgendwie nicht...
>
> Na klar.... Wenn man nicht Schwimmen kann, ist die Badehose schuld.
>
> Also STX=0x02, ETX=0x04, das hängst du einfach vorne und hinten an. So
> schwer ist das nicht. Aber ja, hterm kann das für dich machen. Das
> scheint nicht das Problem zu sein.
>
> Und warum wählst du HEX aus und schreibst dann ein "t" da rein? Was soll
> das  bringen? Ist "t" eine HEX Ziffer? Hex ist 0-9 und A-F.
>
> Du kapierst da irgendwas grundlegend nicht.
>
> Also warum schreibst du hier nicht mal dein Datenpaket rein welches du
> senden willst. Dein Beispiel oben war ASCII das war falsch. Du musst es
> binär zusammenstellen. Fang doch mal damit an.
>
> Wie du das dann sendest ist dann erst dein 2. Problem. Dein eigentliches
> Problem ist, dass du das Kommandopaket gar nicht erst bauen kannst.

Ich habe nur den Kommentar gefunden und Ähnliches festgestellt:
Beitrag "Re: HTerm Input File"

Egal welchen Type ich einstelle, bei Transmitted Data kommt immer das 
gleiche...
Wenn ich 0x02 senden will, dann kommt eben 30 78 30 32. Es wird immer 
der Hex Wert von jedem einzelnen Charakter geschickt (siehe Anhang).

ASCII war es
P 0 0 2 0 1000 500 26000000 3 0 60 2 250

HEX
P 00 00 02 00 03 E8 01 F4 01 8C BA 80 03 00 00 00 3C 02 FA
bzw.
50 00 00 02 00 03 E8 01 F4 01 8C BA 80 03 00 00 00 3C 02 FA

Binär:
0101 0000 0000 0000 0010 0000 ‭0011 1110 1000 ‭0001 1111 0100 ‭0001 1000 
1100 1011 1010 1000 0000 0011 0000 0000 ‭0011 1100 0010 ‭1111 1010‬
(denke ich)

von dummschwaetzer (Gast)


Lesenswert?

du musst das 0x weglassen

von dummschwaetzer (Gast)


Angehängte Dateien:

Lesenswert?

so bei mir

von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

dummschwaetzer schrieb:
> so bei mir

bei mir leider nicht...

von dummschwaetzer (Gast)


Lesenswert?

und als Typ Hex,
den typ kannst du auch während der Eingabe Umschalten, die farbe der 
Zeichen ist die erkennung, als welcher Typ es Interpretiert wird!

von Kally K. (kallyk)


Lesenswert?

dummschwaetzer schrieb:
> und als Typ Hex,
> den typ kannst du auch während der Eingabe Umschalten, die farbe der
> Zeichen ist die erkennung, als welcher Typ es Interpretiert wird!

Ah das hatte ich vergessen für den Screenshot zu ändern.
Bei mir bleibt die Farbe immer gleich (türkis) egal was ich beim Type 
einstelle.

von Cyblord -. (cyblord)


Lesenswert?

Kally K. schrieb:
> dummschwaetzer schrieb:
>> und als Typ Hex,
>> den typ kannst du auch während der Eingabe Umschalten, die farbe der
>> Zeichen ist die erkennung, als welcher Typ es Interpretiert wird!
>
> Ah das hatte ich vergessen für den Screenshot zu ändern.
> Bei mir bleibt die Farbe immer gleich (türkis) egal was ich beim Type
> einstelle.

Starte dein hterm mal nochmal neu

von dummschwaetzer (Gast)


Angehängte Dateien:

Lesenswert?

so in etwa
erstes Zeichen: Type ASC
zweites Zeichen Type HEX
drittes Zeichen Type DEZ
viertes Zeichen Type BIN
...

von Cyblord -. (cyblord)


Lesenswert?

> Bei mir bleibt die Farbe immer gleich (türkis) egal was ich beim Type
> einstelle.

Kann es sein du machst deine Eingabe mit Type "ASCII" und stellst erst 
danach auf "HEX" um?

Du musst erst den Type einstellen und dann kannst du los schreiben. Da 
wird nichts konvertiert wenn man später umstellt.

: Bearbeitet durch User
von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Leider nicht.
Egal was ich mache, Neustart, erst alles auf HEX, dann verbinden, dann 
tippen etc...
Immer türkis...

von dummschwaetzer (Gast)


Lesenswert?

Ich hab 0.8.1beta

von Cyblord -. (cyblord)


Lesenswert?

Kally K. schrieb:
> Leider nicht.
> Egal was ich mache, Neustart, erst alles auf HEX, dann verbinden, dann
> tippen etc...
> Immer türkis...

Sehr merkwürdig. Da ist irgendwas kaputt.

von dummschwaetzer (Gast)


Lesenswert?

mit 8.3 geht es auch bei mir nicht.
hol dir von http://www.der-hammer.info/pages/terminal.html die 8.1

von dummschwaetzer (Gast)


Lesenswert?

oder die 8.2, da geht es (Windows)

von Kally K. (kallyk)


Lesenswert?

Danke! Mit 0.8.1 und 0.8.2 funktioniert es!
Jetzt kann ich kommunizieren :)

Nur das Schreiben meines Programms, erwidert das Gerät nicht mit 
denselben Parametern:
50 00 00 02 00 03 E8 01 F4 01 8C BA 80 03 00 00 00 3C 02 FA

Das sollte jetzt eigentlich bedeuten:
P
Kanalnummer 0
Akkunummer 0
Akkutyp 2 (Li-Ion)
Zellenanzahl 0 (bzw. 1)
Entladestrom 1000mA
Ladestrom 500mA
Kapazität 2600mAh
Programmnummer 3 (Laden-Entladen)
Formierstrom 0A
PauseLE 60s
Flags 2
VollFaktor 250

Das Gerät sollte wenn alles korrekt verstanden wurde nur das erste "P" 
gegen ein "p" austauschen. Ich bekomme aber nur ein 0x04 zurück.

Weiss jemand da weiter?

von Marc V. (Firma: Vescomp) (logarithmus)


Angehängte Dateien:

Lesenswert?

Kally K. schrieb:
> Das Gerät sollte wenn alles korrekt verstanden wurde nur das erste "P"
> gegen ein "p" austauschen. Ich bekomme aber nur ein 0x04 zurück.
>
> Weiss jemand da weiter?

 Habe zwar dieses Gerät nicht, aber probier es mal andersrum, wie im
 angehängten PNG.

von dummschwaetzer (Gast)


Lesenswert?

frag doch mal andere sachen ab, z.B m

von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Marc V. schrieb:
> Kally K. schrieb:
>> Das Gerät sollte wenn alles korrekt verstanden wurde nur das erste "P"
>> gegen ein "p" austauschen. Ich bekomme aber nur ein 0x04 zurück.
>>
>> Weiss jemand da weiter?
>
>  Habe zwar dieses Gerät nicht, aber probier es mal andersrum, wie im
>  angehängten PNG.

Leider das Gleiche.

dummschwaetzer schrieb:
> frag doch mal andere sachen ab, z.B m

Da bekomme ich schon korrekte Antworten (siehe Anhang).

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Kally K. schrieb:
>>  Habe zwar dieses Gerät nicht, aber probier es mal andersrum, wie im
>>  angehängten PNG.
>
> Leider das Gleiche.

 Dann werden die Bytes doch HI-LO gesendet.

Kally K. schrieb:
> Flags 2

 Bist du da sicher?
1
1 Byte <FLAGS> 00h bis ffh Zusätzliche Optionen, 2^7 bis 2^1: nicht verwendet, 2^0: Aktivator

 So wie ich das sehe, sollte Flags 1 sein.

von Kally K. (kallyk)


Angehängte Dateien:

Lesenswert?

Marc V. schrieb:
> Kally K. schrieb:
>>>  Habe zwar dieses Gerät nicht, aber probier es mal andersrum, wie im
>>>  angehängten PNG.
>>
>> Leider das Gleiche.
>
>  Dann werden die Bytes doch HI-LO gesendet.
>
> Kally K. schrieb:
>> Flags 2
>
>  Bist du da sicher?
>
1
> 1 Byte <FLAGS> 00h bis ffh Zusätzliche Optionen, 2^7 bis 2^1: nicht 
2
> verwendet, 2^0: Aktivator
3
>
>
>  So wie ich das sehe, sollte Flags 1 sein.

Der Aktivator betrifft nur Pb Akkus an Kanal 2 (siehe Anhang).
Ich habe es mit Flags 1 getestet, aber noch immer nicht die richtige 
Antwort bekommen.

von dummschwaetzer (Gast)


Lesenswert?

in der 8.4, da geht es wieder(Windows)

von Hussam O. (hussam_o)


Lesenswert?

Hallo zusammen,


weiß jemand wie ich den Datenlogger löschen kann?
Ich habe es oft versucht mit den Befehl L<Kanalnummer> aber dass hat 
nicht geklappt.

Vielen Dank euch im Voraus!

Hussam

: Bearbeitet durch User
von Gerd A. (gerd_a289)


Lesenswert?

Hussam O. schrieb:
> Hallo zusammen,
>
>
> weiß jemand wie ich den Datenlogger löschen kann?
> Ich habe es oft versucht mit den Befehl L<Kanalnummer> aber dass hat
> nicht geklappt.
>
> Vielen Dank euch im Voraus!
>
> Hussam

Hi, hat bei mir funktioniert:

# L (0x4C) Delete channel logging:

02 4C 00 03
      |
   L  └── Channel

# response:
02 6C 00 03
02 6C 01 03

Ich habe mir das ganze Protokoll mit Wireshark erschnüffelt, zumindest 
den nicht dokumentierten Teil ;)

Gruß Gerd

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.