Hallo Zusammen, ich bitte an dieser Stelle um Hilfe, da ich jetzt nicht mehr weiterkomme. Ich befürchte ja, dass ich mir das alles etwas zu einfach vorgestellt habe und es am Ende dann doch nichts für Ahnungslose wie mich ist, aber einen Versuch will ich der Sache noch geben. Aber von Anfang an: Ich habe zwei Lithium-Akkus für unsern Laster gekauft und möchte diese gerne Überwachen (Spannung, Ampere, Temperatur). Vom Hersteller habe ich dafür das angehängte Dokument mit der Beschreibung für die Kommunikation über die RS232 Schnittstelle bekommen. Später mal soll da ganze über einen Pi mit Openhab hab laufen habe ich mir gedacht. Aber zuerst wollte ich die ganze Sache mal testen. Daher habe ich mir einen USB --> RS232 Adapter besorgt und die Kabel TXD, RXD und GND mit dem Akku verbunden. Dann habe ich über verschieden Terminals (heißt das so?) z.B. putty, hterm und realterm versucht einen Befehl an den Akku zu schicken und eine Antwort zu bekommen. Leider habe ich es nicht geschafft eine Antwort zu bekommen. Probiert habe ich es z.B. mit: 0006 0006H AA 55 00 06 01 00 01 00 55 AA 0xAA 0x55 0x0006 0x01 0x00 0x01 0x00 0x55 0xAA Wahrscheinlich ist das alles völliger Unsinn und euch experten rollen sich die Fußnägel hoch. Daher die Frage, kann mir jemand sagen, was ich senden muss, um eine Antwort zu bekommen? Oder mir kurz erklären, was ich noch alles lernen sollte, bevor ich es nochmal versuche? Ich freue mich auf ernst gemeinte Tipps. Vielen Dank und Liebe Grüße, Hammer
Hammer M. schrieb: > Ich freue mich auf ernst gemeinte Tipps. Ich kann dir nicht direkt helfen, aber folgenden absolut ernstgemeinten Tipp lege ich dir ans Herz: besorge dir das Originaldokument. Das angehängte PDF ist entweder eine schlechte maschinelle Übersetzung, oder wurde von jemandem ins Deutsche übertragen, der die Sprache nur rudimentär versteht. Entsprechend ist mit Sinnfehlern zu rechnen, was erfahrungsgemäß zu großem Frust und völlig unnötigen Selbstzweifeln führen kann.
Hammer M. schrieb: > Probiert habe ich es z.B. mit: > > 0006 > > 0006H > > AA 55 00 06 01 00 01 00 55 AA > > 0xAA 0x55 0x0006 0x01 0x00 0x01 0x00 0x55 0xAA Dann schau dir doch das Handbuch zum Terminalprogramm an. Da steht dann auch drinnen, wie Hex zu übertragen ist. Ich gehe mal ganz stark davon aus, dass alle 4 Varianten von dir falsch sind weil sie Leerzeichen übertragen. Weitere Tips: Baudrate? Parität? Stopbits? Rx Tx vertauscht?
Hammer M. schrieb: > Wahrscheinlich ist das alles völliger Unsinn und euch experten rollen > sich die Fußnägel hoch. Völliger Unsinn ist es sicher nicht. Jack V. hat sicher recht mit der mangelhaften Übersetztung, ich z.B. kann mir keinen Reim drauf machen auf die Begriffe 'Prüfen' und 'Behalten'. Dann steht an verschiedenen Stellen 'Low Byte First (LSB)', das könntest du verwechselt haben. Und noch eine Fehlermöglichkeit: RxD und TxD werden gerne mal fehlinterpretiert bei RS232, weil die beiden gekreuzt werden müssen zwischen Host und Client.
Zwei blöde Fragen: - Baudrate und Datenformat (8N1) gewählt? - Binär und ASCII vielleicht verwechselt? Mit putty wüsste ich nicht, wie man Binärdaten sendet. Mit hterm geht's.
Hammer M. schrieb: > Probiert habe ich es z.B. mit: > 0006 > 0006H > AA 55 00 06 01 00 01 00 55 AA > 0xAA 0x55 0x0006 0x01 0x00 0x01 0x00 0x55 0xAA Du gibst das wahrscheinlich als Text ein. Der Akku erwartet aber binäre Daten. Manche Termialprogramme habrn einen Modus, in dem man sowas machen kann. DIe Dokumentation ist auf den ersten Blick nicht schlecht, an manchen Stellen aber seltsam übersetzt.Im Protokoll ist übrigens auch eine Prüfsumme enthalten, ohne die wird gar nichts gehen.
Hi, hier wirst du mit Terminal-SW nicht weit kommen. Die "Befehle" und "Werte" werden nicht als Textzeichen übermittelt, sondern binär. Also z.B. der "Rahmenkopf" 55AA ist nicht als Text (vier Tastendrücke 5 5 A A) zu senden sondern direkt als zwei Bytewerte 0x55 und 0xAA. So überträgt z.B. der Tastendruck "5" dem Bytewert 0x35, für den Bytewert 0x55 müßtest du z.B. "U" drücken, für 0xAA (je nach Zeichensatz) "ª" und das wirst du auf keiner Tastatur finden. Hier ist also Programmieren angesagt, oder ev. ein Temrinalprogramm wo man "skripten" kann... gruß, schufti
Nick M. schrieb: > dass alle 4 Varianten von dir falsch sind weil sie Leerzeichen übertragen. Sie sind vermutlich falsch, weil sie keine Binärwerte, sondern ASCII-Zeichen übertragen. Der Hex-Wert 54 entspricht einem Binärwert von 01010100 bzw einen Dezimalwert von 84. Er wird aber auf dem Bildschirm mit den 2 ASCII-Zeichen '5' und '4' dargestellt. Wenn jetzt einer in den Bildschirm tippt 54 54 54 54 Dann werden auf der seriellen Schnittstelle statt nur 4 Bytes mit den obigen Werten (54hex = 01010100bin = 84dez) gleich 11 Bytes mit den HEX-Werten 35 34 20 35 34 20 35 34 20 35 34 übertragen, weil '5'ASCII=35hex, '4'ASCII=34hex, Leerzeichen=20hex Einfach mal ein paar Stunden über die ASCII-Tabelle nachsinnieren: https://www.torsten-horn.de/techdocs/ascii.htm Irgendwann fällt der Groschen...
:
Bearbeitet durch Moderator
Hallo, Vielen Dank für die vielen Antworten!!!! Baudrate und Datenformat habe ich drauf geachtet und TX RX sollten auch stimmen. Werde mal versuchen, ob ich es schaffe, das was ich senden will in Binärcode zu übersetzten. Glaube bis jetzt, hat der Akku gar nie verstanden, was ich von ihm will. Lieb Grüße
Ich benutze gerne termite, kannst du kostenlos herunterladen. Unter Optionen stellst du wie im Bild die Einstellungen für hex view usw. (keine line endings) ein. Dann kannst du per prefix (0x) dem Terminal mitteilen, das alle weiteren eingegeben Zeichen als Hexadezimalwert zu interpretieren sind. "0x65" wäre dann equivalent zu 'a'
Lothar M. schrieb: > Nick M. schrieb: >> dass alle 4 Varianten von dir falsch sind weil sie Leerzeichen übertragen. > Sie sind vermutlich falsch, weil sie keine Binärwerte, sondern > ASCII-Zeichen übertragen. Ich frag mich, warum du die Zeile darüber nicht von mir zitiert hast. Ich hol das mal nach für dich ... Nick M. schrieb: > Dann schau dir doch das Handbuch zum Terminalprogramm an. Da steht dann > auch drinnen, wie Hex zu übertragen ist.
Hammer M. schrieb: > Baudrate und Datenformat habe ich drauf geachtet und TX RX sollten auch > stimmen. Sind die beiden Signale wirklich gekreuzt? Kontrolliere es lieber noch einmal. Also: TX vom PC (Pin3 am 9poligen SUB-D) an RX von dem Akku (Pin 4) RX vom PC (Pin2 am 9poligen SUB-D) an TX von dem Akku (Pin 5) GND vom PC (Pin5 am 9poligen SUB-D) an TX von dem Akku (Pin 1/2) Kontrollier das lieber ein mal mehr, da Dir bei einer falschen Verbindung das beste Terminalprogramm nichts nutzt. War das Datenkabel beim Akku mit dabei oder hast Du das selbst angefertigt? Bei dem Für den Westernstecker brauchst Du eine passende Crimpzange. Hast Du so etwas? Alternativ ginge eine Kabel wo so ein Stecker schon dran ist. Bist Du Dir sicher das Dein Akku das RS232 Protokoll benutzt? Lt. Anleitung könnte es auch RS485 sein. Wofür sind die Akkus den eigentlich gedacht? Ich nehme mal an für Solargeraffel. Dort wird meist Modbus also RS485 benutzt. Die Verwendung von Binärbefehlen deutet sehr stark darauf hin.
Hammer M. schrieb: > Vom Hersteller habe ich dafür das angehängte Dokument mit der > Beschreibung für die Kommunikation über die RS232 Schnittstelle > bekommen. Da steht doch einiges drin. Wenn da ein "Beispiel: zu tun ..." hängen geblieben ist - mein Gott, davon geht die Welt nicht unter. HildeK schrieb: > ich z.B. kann mir keinen Reim drauf machen auf die Begriffe 'Prüfen' > und 'Behalten'. Dem "Prüfen" ist nur die zweite Worthälft abhanden gekommen. Unter 4.1 sieht man, dass damit die Prüfsumme gemeint ist, deren Aufbau auf S.9 beschieben ist. Mit "Behalten" ist reserviert gemeint, z.B. in 6.2.2 auf S.9f) Jack V. schrieb: > Ich kann dir nicht direkt helfen, aber folgenden absolut ernstgemeinten > Tipp lege ich dir ans Herz: besorge dir das Originaldokument. Das will hier wohl keiner haben, denn das dürfte auf Chinesisch sein. Allenfalls kann man hoffen, dass das sein 2012 noch mal aktualisiert und vervollständigt ist. Als Grundlage ist dieses doch sooh schlecht nun auch nicht, wenn man von etwas Übereifer bei der Eindeutschung absieht. G. H. schrieb: > hier wirst du mit Terminal-SW nicht weit kommen. HTerm wird wunderbar funktionieren. Hammer M. schrieb: > Daher habe ich mir einen USB --> RS232 Adapter besorgt und die > Kabel TXD, RXD und GND mit dem Akku verbunden. Wenn du das alles richtig angeschlossen hast, ist das doch schon mal ein Schritt in die richtige Richtung. Falls da etwas schief gelaufen ist, könnte das die Ursache sein. Hammer M. schrieb: > Probiert habe ich es z.B. mit: > > AA 55 00 06 01 00 01 00 55 AA Das ist falsch. Der Befehl zum Lesen der Informationen zur Batterie heißt 0x0006. In der Anweisung steht: "Der Befehl besteht aus 2 Bytes, Low Byte First (LSB [first])". Daran solltest du dich auch halten und die 0x06 vor der 0x00 zum Gerät schicken - und das per Binärübertragung.
Die Daten werden binär codiert und nicht als ASCII-Zeichen oder HEX codierte ASCII Zeichen übertragen. Ich würde das HTERM verwenden : http://der-hammer.info/pages/terminal.html
>Die Daten werden binär codiert und nicht als ASCII-Zeichen oder HEX >codierte ASCII Zeichen übertragen. Jetzt ist er mit Sicherheit endgültig verwirrt :D
Hallo, Zeno schrieb: > GND vom PC (Pin5 am 9poligen SUB-D) an TX von dem Akku (Pin 1/2) Kleiner Fehler, nicht an Tx, sondern an GND: GND vom PC (Pin5 am 9poligen SUB-D) an GND von dem Akku (Pin 1/2) rhf
Habe mir gerade noch mal das Datenformat angeschaut und das sieht mir sehr nach Modbus aus also RS485 aus. Zähle mal die ganzen Datenbytes zusammen die mit einem Datenpaket übertragen werden. Grob geschätzt werden das um die 70Byte sein.
Roland F. schrieb: > Hallo, > Zeno schrieb: >> GND vom PC (Pin5 am 9poligen SUB-D) an TX von dem Akku (Pin 1/2) > > Kleiner Fehler, nicht an Tx, sondern an GND: > > GND vom PC (Pin5 am 9poligen SUB-D) an GND von dem Akku (Pin 1/2) Oh Danke den Fehler habe ich nicht bemerkt.
Hammer M. schrieb: > Werde mal versuchen, ob ich es schaffe, das was ich senden will in > Binärcode zu übersetzten. Nimm hterm, das kann dir diese Arbeit abnehmen und erlaubt direkte Hex-Eingabe (siehe Bild). Dass das wirklich aktive ist, merkst du dann daran, dass du fortlaufend Hexzahlen eingeben kannst und hterm lerzeichen nach jedem zweiten Zeichen automatisch einfügt. Diese Leerzeichen dienen aber nur dazu, dass du dich besser im eingegebenen Text orientieren kannst, sie werden nicht mit gesendet. Gesendet wird für jede Gruppe aus zwei Hexziffern genau ein Byte.
Wolfgang schrieb: > Das ist falsch. Der Befehl zum Lesen der Informationen zur Batterie > heißt 0x0006. In der Anweisung steht: "Der Befehl besteht aus 2 Bytes, > Low Byte First (LSB [first])". Daran solltest du dich auch halten und > die 0x06 vor der 0x00 zum Gerät schicken - und das per Binärübertragung. Der alleine reicht aber nicht aus. Schau Dir das Befehlsformat unter Punkt 4.1 der Anleitung an. Das geht erst mal mit 2Byte Header los. Dann kommt die Anweisung (z.B. 0x0006), danach die ID des Akkus, dann Daten, dann Prüfsumme und dann noch mal ein Frameheader. So etwas komplexes bekommt man eigentlich nur mit einem Programm hin. Wolfgang schrieb: > Hammer M. schrieb: >> Vom Hersteller habe ich dafür das angehängte Dokument mit der >> Beschreibung für die Kommunikation über die RS232 Schnittstelle >> bekommen. In dem Dokument steht aber nicht drin das Dein Akku auch wirklich RS232 benutzt. Dort sind beide Varianten aufgeführt. Es steht auch drin Du sollst beim Hersteller nachfragen welches Protokoll Dein Akku verwendet. Jonas B. schrieb: >>Die Daten werden binär codiert und nicht als ASCII-Zeichen oder HEX >>codierte ASCII Zeichen übertragen. > > Jetzt ist er mit Sicherheit endgültig verwirrt :D Das mag ja sein das es ihn verwirrt, aber so einfach wie er sich das vorstellt ist es offensichtlich nicht.
>Dass das wirklich aktive ist, merkst du dann daran, dass du fortlaufend >Hexzahlen eingeben kannst und hterm lerzeichen nach jedem zweiten >Zeichen automatisch einfügt. Bei termite kannst direkt sehen was wirklich gesendet wurde mit der option "local echo"
Hallo, der Hersteller meint, sie hätten alle Akkus von RS485 auf RS232 umgestellt. Ich habe auch noch eine Datei vom Hersteller sowie ein Programm bekommen. Leider kann ich mit beiden nicht so wirklich viel anfangen. Bei der Datei weiß ich nicht genau, was ich damit machen soll. Und, wenn ich das Programm öffne, passiert nicht viel. Danke auf jeden Fall für die ganzen Tipps. Bis jetzt schaffe ich es sogar zu folgen ;-) LG
Jonas B. schrieb: > Bei termite kannst direkt sehen was wirklich gesendet wurde mit der > option "local echo" Das geht bei hterm natürlich ebenfalls. Man muß nur die Ausgabe für das gesendete Zeug um die Option Hex ergänzen (oder, im konkreten Fall eher sinnvoll: als einzige Option wählen).
Hammer M. schrieb: > Ich habe auch noch eine Datei vom Hersteller sowie ein Programm > bekommen. Benenne mal die Datei in PNG um - es ist ein Bildchen. Das ZIP mußt Du halt auspacken. Ich kann nicht öffnen da ich hier am Mac sitze der mit eine Exe nichts anfangen kann. Habe bloß mal in das Zip geguckt und die die Bezeichnung der Exe sind rech kryptische Schriftzeichen. Benenne das Programm nach dem Auspacken einfach mal in batterie.exe um und starte es es in einem DOS/Shellfenster. Das Programm wird sicher was ausgeben. Ansonsten mal als Parameter /?, /help, -? oder --help mit geben. Die meisten Programme reagieren darauf. Wenn sie den Parameter nicht kennen kommt oftmals eine kleine Hilfestellung wie das Programm zu benutzen ist.
Zeno schrieb: > ... und starte es es in einem DOS/Shellfenster. Das Programm > wird sicher was ausgeben. Wozu in einem DOS/Shellfenster? Unter Windows kann man einen Doppelklick auf den Exe-File machen, um ihn zu starten ;-) Wenn man den im Zip enthaltenen File "┤ó─▄Áþ│Ï╔¤╬╗╗·╚Ý╝■V2.0.exe" in CBT-EnergyBatterieHostComputer_V2.0.exe o.ä. umbenennt, weiß man auch das nächste mal noch, was das ist.
Wolfgang schrieb: > Wenn man den im Zip enthaltenen File "┤ó─▄Áþ│Ï╔¤╬╗╗·╚Ý╝■V2.0.exe" in > CBT-EnergyBatterieHostComputer_V2.0.exe o.ä. umbenennt, weiß man auch > das nächste mal noch, was das ist. Und wenn man die fälschlicherweise in CP437 konvertierten UTF8-Dateinamen mal sinnvoll zurückkonvertiert, dann sieht man sogar, wie die Exe ursprünglich wirklich mal hiess. ;o)
c-hater schrieb: > Und wenn man die fälschlicherweise in CP437 Ähem, natürlich nicht CP437, sondern IBM-OEM.
Wolfgang schrieb: > Unter Windows kann man einen Doppelklick auf den Exe-File machen, um ihn > zu starten ;-) Na Du bist ja ein richtiger Schlauberger. Wenn das Programm keine GUI hat, dann macht es halt maximal kurz flacker und man sieht genau nix, weil das Fenster sofort wieder geschlossen wird. Ruft man hingegen das Programm in einen DOS respektive Shellfenster auf, kann man in aller Ruhe die Ausgaben des Programmes studieren. Diesen Doppelklick hat der TO bestimmt schon gemacht und genau nichts gesehen. Manchmal muß man halt ein bissel mehr tun als als nur zu klicken. Fällt aber dem heutigen Windowsuser offensichtlich sehr schwer.
c-hater schrieb: > Und wenn man die fälschlicherweise in CP437 konvertierten > UTF8-Dateinamen mal sinnvoll zurückkonvertiert, dann sieht man sogar, > wie die Exe ursprünglich wirklich mal hiess. ;o) Das ist natürlich auch ne Möglichkeit. Viele Wege führen halt nach Rom.
Das Programm sieht eigentlich nach genau dem aus, was ich gesucht habe. Nur irgendwie passiert bei mir nichts, wenn ich versuche es zu öffnen auch nicht in einem DOS/Shellfenster.
c-hater schrieb: > Und wenn man die fälschlicherweise in CP437 konvertierten > UTF8-Dateinamen mal sinnvoll zurückkonvertiert, dann sieht man sogar, > wie die Exe ursprünglich wirklich mal hiess. ;o) Das ist natürlich auch ne Möglichkeit. Viele Wege führen halt nach Rom. Wolfgang schrieb: > Unter Windows kann man einen Doppelklick auf den Exe-File machen, um ihn > zu starten ;-) Kleiner Nachtrag: Man sieht einer Exe erstmal nicht an ob sie eine GUI hat oder nicht, aus diesem Grund ist das ausführen im Shellfenster erst mal eine gute Idee. Wenn man dann mehr zum Programm weis kann man es ja mit Doppelklick starten. Ich kanns eben grad nicht probieren, weil ich am Mac sitze.
Zeno schrieb: > Na Du bist ja ein richtiger Schlauberger. Wenn das Programm keine GUI > hat, dann macht es halt maximal kurz flacker ... tut es aber nicht. > ... und man sieht genau nix, > weil das Fenster sofort wieder geschlossen wird. > Ruft man hingegen das Programm in einen DOS respektive Shellfenster auf, > kann man in aller Ruhe die Ausgaben des Programmes studieren. Das kann man sich alles sparen, wenn das Programm eine GUI hat. Als zweiten Schritt kann man das sonst immer noch tun. > Diesen Doppelklick hat der TO bestimmt schon gemacht und genau nichts > gesehen. Anscheinend nicht, sonst hätte er die GUI (s. Screenshot) gesehen.
Hammer M. schrieb: > Das Programm sieht eigentlich nach genau dem aus, was ich gesucht habe. > > Nur irgendwie passiert bei mir nichts, wenn ich versuche es zu öffnen > auch nicht in einem DOS/Shellfenster. Da das Programm eine GUI zu haben scheint mußt Du es auch nicht aus einem DOS-Fenster heraus starten. Hast Du den richtigen Port eingestellt? Ich glaube nicht das Dein Port COM1 ist.
Wolfgang schrieb: > Zeno schrieb: >> Na Du bist ja ein richtiger Schlauberger. Wenn das Programm keine GUI >> hat, dann macht es halt maximal kurz flacker ... > > tut es aber nicht. Und das weist Du bevor Du das Programm das erste Mal ausführst? Also ich weis das nicht wenn ich eine Exe in einem Zip bekomme. Da ich nicht weis was der TO gemacht hat, habe ich es ihm eben so geraten.
Da ich einen USB toRS232 Adapter benutze, kann ich den Port frei wählen und das hat beim Testen auch mit COM1 funktioniert. Nur schaffe ich es gar nicht das Programm zu öffnen um das Fenster aus dem oben gezeigtem Screenshot zu sehen.
Zeno schrieb: > Hast Du den richtigen Port eingestellt? Ich glaube nicht das Dein Port > COM1 ist. Das ist doch erstmal ein Nebenschauplatz. Solange die GUI nicht sichtbar ist, steht die Einstellung des richtigen Ports gar nicht zur Debatte. Das Programm startet (unter Win10) unabhängig von auf dem PC vorhandenen Ports und verwendet eine Portauswahlliste, die nicht auf einem Scan der Systemresourcen basiert.
Zeno schrieb: > Und das weist Du bevor Du das Programm das erste Mal ausführst? Nein, ich habe es (nach einem Virenscan) blind probiert.
Hammer M. schrieb: > Nur schaffe ich es gar nicht das Programm zu öffnen um das Fenster aus > dem oben gezeigtem Screenshot zu sehen. Vermutlich ist es auch völlig egal welches Windows du hast. Ich würde dann mal XP probieren.
c-hater schrieb: > Gesendet wird für jede Gruppe aus zwei Hexziffern genau ein Byte. Gut erklärte. Zahlen können als ASCII Zeichen codiert sein, verschickt werden sie immer binär. '0' => 0011_0000 '1' => 0011_0001 '2' => 0011_0010 '3' => 0011_0011 '4' => 0011_0100 hingegen: der Binärwert 0011_0100 kann in die Zahl
umgerechnet werden. Siehe 0 => 0000_0000 1 => 0000_0001 2 => 0000_0010 3 => 0000_0011 4 => 0000_0100
Wolfgang schrieb: > Zeno schrieb: >> Hast Du den richtigen Port eingestellt? Ich glaube nicht das Dein Port >> COM1 ist. > > Das ist doch erstmal ein Nebenschauplatz. Solange die GUI nicht sichtbar > ist, steht die Einstellung des richtigen Ports gar nicht zur Debatte. Wie denn nun? Ich denke das Ding hat ne GUI. Ja wenn die der TO nicht zu Gesicht bekommt ist das natürlich eher suboptimal. Das er das Ding gar nicht starten kann hat er erst nach meinem Post geschrieben. Insofern war der Hinweis mit dem COM-Port schon nicht so verkehrt. Wolfgang schrieb: > Das Programm startet (unter Win10) unabhängig von auf dem PC vorhandenen > Ports und verwendet eine Portauswahlliste, die nicht auf einem Scan der > Systemresourcen basiert. Ach und das hilft dem TO jetzt weiter? Es nutzt ihm gar nichts wenn Du es unter Win10 starten kannst. Vielleicht benutzt er ja ein anderes Windows oder gar ein anderes OS - wir wissen das nämlich nicht. Deine Liste mit den ganzen COM-Ports ist ja für ihn auch nicht hilfreich, da er sie nicht sieht. Für eine weitere Fehleranalyse wäre jetzt erst mal hilfreich zu wissen warum das Programm nicht startet. Da es offensichtlich keine Fehlermeldung (in der GUI) gibt, wäre noch ein Start in der Box hilfreich, denn dann gibt es in 99% der Fälle einen Hinweis. Da der TO mit Informationen eher knausert wissen wir nicht was er tut. Ich habe auch keine Glaskugel, die mir das sagen könnte. Dafür ist halt so ein Schlauberger wie Du unterwegs, der eh alles besser weis und deshalb bin jetzt hier raus. Dann zeig doch mal dem TO wie er zum Ziel kommt. Schauen wir doch mal ob Du auch was Zielführendes beitragen kanns - wünschen würde ich es dem TO.
Hallo, ich habe versucht das Programm auf einem Rechner mit Windows 10 zu öffnen. Wenn ich doppelt klicke flackert es kurz, aber mehr passiert nicht und wenn ich es versuche mit powershell zu öffnen kommt die Antwort aus dem Screenshoot. Auch der Versuch mit verschiedenen Kompatibilitätsmodi hat nichts gebracht.
:
Bearbeitet durch User
Gewöhn dir zuerst mal die Leerzeichen in Ordner Namen ab. Das wird zwar vom Betriebsystem voll unterstützt, aber nicht voll allen Programmen. Da kann der Hund schon begraben liegen. Ich check das mal kurz in der Zeit...
He, was ist das für ein komisches Program :D Die Serialports werden einfach von 1-16 durch nummeriert, statt die live abzufragen... ganz schlecht. So was war jetzt das Problem nochmal? Im übrigen hab ich es einfach auspackt und angeklickt :D
Hammer M. schrieb: > Wenn ich doppelt klicke flackert es kurz, aber mehr passiert nicht und > wenn ich es versuche mit powershell zu öffnen kommt die Antwort aus dem > Screenshoot. Offensichtlich kann PowerShell mit den Leerzeichen in dem Pfadnamen so nicht umgehen. Dagegen hilft es, den ganzen Pfad in "" zu setzen. Jonas B. schrieb: > He, was ist das für ein komisches Program :D > Die Serialports werden einfach von 1-16 durch nummeriert, statt die live > abzufragen... ganz schlecht. Ist aber nun mal so und keine neue Erkenntnis. Falls der USB-RS232 Adapter nicht unter einer dieser 16 Portnummern registriert wird, ist das schnell mit dem Gerätemanager behoben - also keine Panik,
Genau das habe ich auch versucht, aber irgendwie mag das Ding meinen Rechner nicht. Bzw., der Typ vor dem Bildschirm ist vielleicht das Problem. Könnte man denn, wenn das Programm mal läuft rausfinden, welche Befehle es über den seriellen Port sendet? Eigentlich möchte ich ja „nur“ diesen 0006 Befehl senden und eine Antwort vom Akku haben. Das Programm ist da eigentlich gar nicht so wichtig. Ohne Leerzeichen hat leider auch nicht geholfen. War der zweite Versuch auf dem Screenshoot.
:
Bearbeitet durch User
>Gewöhn dir zuerst mal die Leerzeichen in Ordner Namen ab. Das wird zwar >vom Betriebsystem voll unterstützt, aber nicht voll allen Programmen. Da >kann der Hund schon begraben liegen. => >Offensichtlich kann PowerShell mit den Leerzeichen in dem Pfadnamen so >nicht umgehen. Dagegen hilft es, den ganzen Pfad in "" zu setzen. Soviel zu neuen Erkenntnissen. >Ist aber nun mal so und keine neue Erkenntnis. >Falls der USB-RS232 Adapter nicht unter einer dieser 16 Portnummern >registriert wird, ist das schnell mit dem Gerätemanager behoben - also >keine Panik, Das hat nichts mit Panik zu tun, aber so enumeriert man keine seriellen Ports. Definitiv nicht.
>Eigentlich möchte ich ja „nur“ diesen 0006 Befehl senden und eine >Antwort vom Akku haben. Das Programm ist da eigentlich gar nicht so >wichtig. Es wäre doch aber viel einfacher das Programm zu benutzen, dass du scheinbar aber nicht auf die Kette kriegst. Ich meine selbst mit neuem Betriebssystem. Hast du mal irgendeinen weiteren Tip beherzigt? Also hast du mal hterm oder termite installiert?
hterm und termite habe ich beide ausprobiert. nur da kommt wieder der Punkt, dass mir nicht so ganz klar ist, welchen Befehl, bzw. wie der Befehl aussehen muss, damit der Akku antwortet. Alles was ich sende, geht raus, kommt aber nichts an.
:
Bearbeitet durch User
>Alles was ich sende, geht raus, kommt aber nichts an.
Wie stellst du das fest?
100% ig kann ich das wahrscheinlich nicht sagen, aber wenn ich RX und TX von meinem Adapter verbinde und etwas schicke, empfange ich das daraufhin auch wieder. Da hab ich dann irgendwie drauf geschlossen, dass das was ich sende auch raus geht.
>100% ig kann ich das wahrscheinlich nicht sagen, aber wenn ich RX und TX >von meinem Adapter verbinde und etwas schicke, empfange ich das >daraufhin auch wieder. Da hab ich dann irgendwie drauf geschlossen, dass >das was ich sende auch raus geht. Sehr gut. Mach das nochmal bitte. Und dann gehe wie oben beschrieben vor und verschicke mal die Nachrichten (Aber wie beschrieben als Hex interpretiert) und mach ein Screenshot.
Hammer M. schrieb: > nur da kommt wieder der Punkt, dass mir nicht so ganz klar ist, welchen > Befehl, bzw. wie der Befehl aussehen muss, damit der Akku antwortet. Naja, die Beschreibung des Protokolls ist, vorsichtig ausgedrückt, absolut lausig. Da wirst du ein wenig probieren müssen. > AA 55 00 06 01 00 01 00 55 AA Das war auf jeden Fall falsch, da fehlt die Prüfsumme. Ich würd's mal mit: AA 55 00 06 01 00 01 00 FE FF 55 AA probieren. Blöd ist allerdings, dass zwar jeder Befehl eine Geräte-ID haben will, aber nicht erklärt wird, wo die eigentlich her kommt, bzw. wie man sie ermittelt. Das macht das Durchtesten in Frage kommender Prüfsummenalgorithmen etwas langwierig...
Bin mir leider immer noch nicht sicher, wie der Befehl genau aussehen muss, aber hab mal was geschickt.
c-hater schrieb: > Blöd ist allerdings, dass zwar jeder Befehl eine Geräte-ID haben will, > aber nicht erklärt wird, wo die eigentlich her kommt, bzw. wie man sie > ermittelt. > > Das macht das Durchtesten in Frage kommender Prüfsummenalgorithmen etwas > langwierig... Da hast du definitiv recht. Danke für deinen "Befehl". Hab deinen Befehl mal ausprobiert, hat leider auch nicht funktioniert.
Hammer M. schrieb: > Bin mir leider immer noch nicht sicher, wie der Befehl genau aussehen > muss Also ich bin mir nicht sicher, ob du das Bedienkonzept von hterm kapiert hast... Warum läßt du gesendete Daten binär anzeigen und wozu soll die ASCII-Anzeige bei den Empfangsdaten gut sein? Außerdem fehlt auch im "richtigsten" Beispiel immer noch die Prüfsumme...
>Bin mir leider immer noch nicht sicher, wie der Befehl genau aussehen >muss, aber hab mal was geschickt. Kein Problem, kein Meister ist vom Himmel gefallen. Das sieht aber gut aus. Jetzt wieder umstecken und mit Prüfsumme probieren: >Das war auf jeden Fall falsch, da fehlt die Prüfsumme. Ich würd's mal >mit: >AA 55 00 06 01 00 01 00 FE FF 55 AA
>Also ich bin mir nicht sicher, ob du das Bedienkonzept von hterm kapiert >hast... >Warum läßt du gesendete Daten binär anzeigen und wozu soll die >ASCII-Anzeige bei den Empfangsdaten gut sein? Weil er kein Profi wie du ist. Außerdem passt es doch bis auf die Prüfsumme, das probiert er doch jetzt aus. Dafür muss ja auch der Akku angeschlossen sein.
Das wird vom Programm auf die serielle Schnittstelle gesendet:
1 | aa 55 06 00 00 00 01 00 01 00 55 aa |
>Da hast du definitiv recht. >Danke für deinen "Befehl". >Hab deinen Befehl mal ausprobiert, hat leider auch nicht funktioniert. Ich fürchte ohne zu wissen wie die Prüfsumme gebildet wird müsste man tatsächlich den Datenverkehr mal mitschneiden und ein bisschen rumrechnen, meisten sind das xor32 oder so Geschichten
>aa 55 06 00 00 00 01 00 01 00 55 aa
Sieht stark nach pre- und postambel aa 55 und 55 aa aus.
Cool. Teste das mal. Wenn du nur den einen Befehl brauchst dürfte du
damit zufrieden sein. Wobei die ID...
@C-hater: was denkst du?
:
Bearbeitet durch User
Jonas B. schrieb: > @C-hater: was denkst du? Ja, besser. Kommondo ist ja 0006, LSB first ergibt also 06 00.
Jonas B. schrieb: > ... meisten sind das xor32 oder so Geschichten Naja, bei der Protokollbeschreibung steht: "2Byte: Prüfsumme(kumulierteSumme),Low-Bytezuerst." Das hört sich nicht nach XOR an, sondern eher nach Aufsummieren.
Hm also wird die Prüfsumme nicht über die "Anweisung" sondern nur über die Daten berechnet. Warum auch immer. Aus 00 00 01 00 wird dann also die Prüfsumme 0001.
Wolfgang schrieb: > Das hört sich nicht nach XOR an, sondern eher nach Aufsummieren. Nunja, auch XOR stellt in gewissem Sinne ein Aufsummieren dar. Ich tippe zwar auch eher auf eine einfache Summe (bzw. deren Zweierkomplement), aber es würde mich angesicht der allgemeinen Doku-Qualität auch kein bissel wundern, wenn sich am Ende sich doch eine XOR-Variante als richtig herausstellt.
"Ein Datenpaket enthält eine Zwei-Byte-Datengültigkeitsprüfung. Diese Prüfung verwendet eine einfache Akkumulation und Prüfung. Die Prüfsumme ist das Low-Byte First (LSB) vor dem Ende des Rahmens am Ende des Pakets." Was ein Kauderwelsch... So schlecht sind doch automatische Übersetzer gar nicht mehr.
Jonas B. schrieb: > Was ein Kauderwelsch... So schlecht sind doch automatische Übersetzer > gar nicht mehr. Als Ausgangsmaterial wurde ja Chinglish verwendet.
>Als Ausgangsmaterial wurde ja Chinglish verwendet.
Ja das wird das Problem sein.
Mario M. schrieb: > aa 55 06 00 00 00 01 00 01 00 55 aa Super danke, dass du nachgeschaut hast. Und vielen Dank für eure Mühe!! Hab das auch ausprobiert, Ergebnis leider immer noch das gleiche. In der Beschreibung steht, die ID ist 1 Byte lang. Wieviel Möglichkeiten gibt es denn dann? Dann würde ich die einfach mal durchtesten. Wie ich dann die korrekte Prüfsumme bilde ist mir im Moment auch noch etwas schleierhaft.
256 >Wie ich dann die korrekte Prüfsumme bilde ist mir im Moment auch noch >etwas schleierhaft. Brauchst du nicht, die wird nur über die Daten gebildet, bleibt also 1
:
Bearbeitet durch User
Hammer M. schrieb: > Mario M. schrieb: >> aa 55 06 00 00 00 01 00 01 00 55 aa > In der Beschreibung steht, die ID ist 1 Byte lang. Wieviel Möglichkeiten > gibt es denn dann? 2^8=256 > Dann würde ich die einfach mal durchtesten. Blöd ist dabei halt, dass diese ID Teil des durch die Prüfsumme geschützten Bereichs ist. D.h.: für jede angenommene Prüfsummenroutine mußt du 256 Versuche (mit jeweils angepaßter Prüfsumme) unternehmen. Das ist Sackstand. Sowas erledigt man mit einem Programm. Schon allein deshalb, weil die Fehlerquote der manuellen Eingabe viel zu hoch ist, da schleichen sich viel zu oft Fehler ein, man kann also nach Abschluß einer Reihe niemals sicher sein, ob man wirklich korrekt getestet hat. > Wie ich dann die korrekte Prüfsumme bilde ist mir im Moment auch noch > etwas schleierhaft. Das ist allen schleierhaft. Am wahrscheinlichsten ist, dass die zwei 16-Bit Datenwörter (oder auch die vier Datenbytes) einfach aufsummiert werden und dann entweder diese Summe oder ihr Zweierkomplement in das Prüfsummenfeld zu schreiben ist. Also schon vier Testfälle nur für die naheliegendsten Varianten, mal jeweils 256 Möglichkeiten wegen der fehlenden ID. Das sind schonmal 1024 Tests... Seine Lebenszeit kann man auch sinnvoller verbringen...
aa5506000000000100010055aa aa5506000100000100010055aa aa5506000200000100010055aa aa5506000300000100010055aa aa5506000400000100010055aa aa5506000500000100010055aa aa5506000600000100010055aa aa5506000700000100010055aa aa5506000800000100010055aa aa5506000900000100010055aa aa550600A00000100010055aa aa550600B00000100010055aa aa550600C00000100010055aa aa550600D00000100010055aa aa550600E00000100010055aa aa550600F00000100010055aa aa5506001000000100010055aa aa5506001100000100010055aa aa5506001200000100010055aa aa5506001300000100010055aa aa5506001400000100010055aa aa5506001500000100010055aa aa5506001600000100010055aa aa5506001700000100010055aa aa5506001800000100010055aa aa5506001900000100010055aa aa5506001A00000100010055aa aa5506001B00000100010055aa aa5506001C00000100010055aa aa5506001D00000100010055aa aa5506000100000100010055aa aa5506001F00000100010055aa aa5506002000000100010055aa aa5506002100000100010055aa aa5506002200000100010055aa aa5506002300000100010055aa aa5506002400000100010055aa aa5506002500000100010055aa aa5506002600000100010055aa aa5506002700000100010055aa aa5506002800000100010055aa aa5506002900000100010055aa aa5506002A00000100010055aa aa5506002B00000100010055aa aa5506002C00000100010055aa aa5506002D00000100010055aa aa5506000200000100010055aa aa5506002F00000100010055aa aa5506003000000100010055aa aa5506003100000100010055aa aa5506003200000100010055aa aa5506003300000100010055aa aa5506003400000100010055aa aa5506003500000100010055aa aa5506003600000100010055aa aa5506003700000100010055aa aa5506003800000100010055aa aa5506003900000100010055aa aa5506003A00000100010055aa aa5506003B00000100010055aa aa5506003C00000100010055aa aa5506003D00000100010055aa aa5506000300000100010055aa aa5506003F00000100010055aa aa5506004000000100010055aa aa5506004100000100010055aa aa5506004200000100010055aa aa5506004300000100010055aa aa5506004400000100010055aa aa5506004500000100010055aa aa5506004600000100010055aa aa5506004700000100010055aa aa5506004800000100010055aa aa5506004900000100010055aa aa5506004A00000100010055aa aa5506004B00000100010055aa aa5506004C00000100010055aa aa5506004D00000100010055aa aa5506000400000100010055aa aa5506004F00000100010055aa aa5506005000000100010055aa aa5506005100000100010055aa aa5506005200000100010055aa aa5506005300000100010055aa aa5506005400000100010055aa aa5506005500000100010055aa aa5506005600000100010055aa aa5506005700000100010055aa aa5506005800000100010055aa aa5506005900000100010055aa aa5506005A00000100010055aa aa5506005B00000100010055aa aa5506005C00000100010055aa aa5506005D00000100010055aa aa5506000500000100010055aa aa5506005F00000100010055aa aa5506006000000100010055aa aa5506006100000100010055aa aa5506006200000100010055aa aa5506006300000100010055aa aa5506006400000100010055aa aa5506006500000100010055aa aa5506006600000100010055aa aa5506006700000100010055aa aa5506006800000100010055aa aa5506006900000100010055aa aa5506006A00000100010055aa aa5506006B00000100010055aa aa5506006C00000100010055aa aa5506006D00000100010055aa aa5506000600000100010055aa aa5506006F00000100010055aa aa5506007000000100010055aa aa5506007100000100010055aa aa5506007200000100010055aa aa5506007300000100010055aa aa5506007400000100010055aa aa5506007500000100010055aa aa5506007600000100010055aa aa5506007700000100010055aa aa5506007800000100010055aa aa5506007900000100010055aa aa5506007A00000100010055aa aa5506007B00000100010055aa aa5506007C00000100010055aa aa5506007D00000100010055aa aa5506000700000100010055aa aa5506007F00000100010055aa aa5506008000000100010055aa aa5506008100000100010055aa aa5506008200000100010055aa aa5506008300000100010055aa aa5506008400000100010055aa aa5506008500000100010055aa aa5506008600000100010055aa aa5506008700000100010055aa aa5506008800000100010055aa aa5506008900000100010055aa aa5506008A00000100010055aa aa5506008B00000100010055aa aa5506008C00000100010055aa aa5506008D00000100010055aa aa5506000800000100010055aa aa5506008F00000100010055aa aa5506009000000100010055aa aa5506009100000100010055aa aa5506009200000100010055aa aa5506009300000100010055aa aa5506009400000100010055aa aa5506009500000100010055aa aa5506009600000100010055aa aa5506009700000100010055aa aa5506009800000100010055aa aa5506009900000100010055aa aa5506009A00000100010055aa aa5506009B00000100010055aa aa5506009C00000100010055aa aa5506009D00000100010055aa aa5506000900000100010055aa aa5506009F00000100010055aa aa550600A000000100010055aa aa550600A100000100010055aa aa550600A200000100010055aa aa550600A300000100010055aa aa550600A400000100010055aa aa550600A500000100010055aa aa550600A600000100010055aa aa550600A700000100010055aa aa550600A800000100010055aa aa550600A900000100010055aa aa550600AA00000100010055aa aa550600AB00000100010055aa aa550600AC00000100010055aa aa550600AD00000100010055aa aa550600AE00000100010055aa aa550600AF00000100010055aa aa550600B000000100010055aa aa550600B100000100010055aa aa550600B200000100010055aa aa550600B300000100010055aa aa550600B400000100010055aa aa550600B500000100010055aa aa550600B600000100010055aa aa550600B700000100010055aa aa550600B800000100010055aa aa550600B900000100010055aa aa550600BA00000100010055aa aa550600BB00000100010055aa aa550600BC00000100010055aa aa550600BD00000100010055aa aa550600BE00000100010055aa aa550600BF00000100010055aa aa550600C000000100010055aa aa550600C100000100010055aa aa550600C200000100010055aa aa550600C300000100010055aa aa550600C400000100010055aa aa550600C500000100010055aa aa550600C600000100010055aa aa550600C700000100010055aa aa550600C800000100010055aa aa550600C900000100010055aa aa550600CA00000100010055aa aa550600CB00000100010055aa aa550600CC00000100010055aa aa550600CD00000100010055aa aa550600CE00000100010055aa aa550600CF00000100010055aa aa550600D000000100010055aa aa550600D100000100010055aa aa550600D200000100010055aa aa550600D300000100010055aa aa550600D400000100010055aa aa550600D500000100010055aa aa550600D600000100010055aa aa550600D700000100010055aa aa550600D800000100010055aa aa550600D900000100010055aa aa550600DA00000100010055aa aa550600DB00000100010055aa aa550600DC00000100010055aa aa550600DD00000100010055aa aa550600DE00000100010055aa aa550600DF00000100010055aa aa550600E000000100010055aa aa550600E100000100010055aa aa550600E200000100010055aa aa550600E300000100010055aa aa550600E400000100010055aa aa550600E500000100010055aa aa550600E600000100010055aa aa550600E700000100010055aa aa550600E800000100010055aa aa550600E900000100010055aa aa550600EA00000100010055aa aa550600EB00000100010055aa aa550600EC00000100010055aa aa550600ED00000100010055aa aa550600EE00000100010055aa aa550600EF00000100010055aa aa550600F000000100010055aa aa550600F100000100010055aa aa550600F200000100010055aa aa550600F300000100010055aa aa550600F400000100010055aa aa550600F500000100010055aa aa550600F600000100010055aa aa550600F700000100010055aa aa550600F800000100010055aa aa550600F900000100010055aa aa550600FA00000100010055aa aa550600FB00000100010055aa aa550600FC00000100010055aa aa550600FD00000100010055aa aa550600FE00000100010055aa
>Blöd ist dabei halt, dass diese ID Teil des durch die Prüfsumme >geschützten Bereichs ist. D.h.: für jede angenommene Prüfsummenroutine >mußt du 256 Versuche (mit jeweils angepaßter Prüfsumme) unternehmen. Das würde man annehmen, die Prüfsumme wird aber nicht über die ID gebildet sondern nur über die Daten (siehe meinen Post oben). @Mario: kopier meinen letzten Post komplett ins terminal (müsste gehen).
Ups der klassische off-by-one error: (eins vergessen, dubdidu) aa550600FE00000100010055aa
Beitrag #6596310 wurde vom Autor gelöscht.
Jonas B. schrieb: > kopier meinen letzten Post komplett ins terminal (müsste gehen). ID 0A bis 0F sehen 1 Byte kürzer aus, da steht statt 0A nur A usw.
Jonas B. schrieb: > Das würde man annehmen, die Prüfsumme wird aber nicht über die ID > gebildet sondern nur über die Daten (siehe meinen Post oben). Nö. Die ID ist Teil der "Daten". Das zumindest geht recht eindeutig aus der Beschreibung hervor. > aa550600FE00000100010055aa Das passt doch vorne und hinten nicht zur Protokollbeschreibung, da sind einige Bytes zu viel. Der Kommandoframe muss 12 Bytes haben, 4 davon sind "Daten" (schließt ID ein!), 4 Post/Pre, 2 Kommando und 2 Checksum.
Sehr gut gesehen, scheint ein Bug in openoffice oder openJonas zu sein :) Hier die ganzen Purschen nochmal: aa5506000000000100010055aa aa5506000100000100010055aa aa5506000200000100010055aa aa5506000300000100010055aa aa5506000400000100010055aa aa5506000500000100010055aa aa5506000600000100010055aa aa5506000700000100010055aa aa5506000800000100010055aa aa5506000900000100010055aa aa5506000A00000100010055aa aa5506000B00000100010055aa aa5506000C00000100010055aa aa5506000D00000100010055aa aa5506000E00000100010055aa aa5506000F00000100010055aa aa5506001000000100010055aa aa5506001100000100010055aa aa5506001200000100010055aa aa5506001300000100010055aa aa5506001400000100010055aa aa5506001500000100010055aa aa5506001600000100010055aa aa5506001700000100010055aa aa5506001800000100010055aa aa5506001900000100010055aa aa5506001A00000100010055aa aa5506001B00000100010055aa aa5506001C00000100010055aa aa5506001D00000100010055aa aa5506000100000100010055aa aa5506001F00000100010055aa aa5506002000000100010055aa aa5506002100000100010055aa aa5506002200000100010055aa aa5506002300000100010055aa aa5506002400000100010055aa aa5506002500000100010055aa aa5506002600000100010055aa aa5506002700000100010055aa aa5506002800000100010055aa aa5506002900000100010055aa aa5506002A00000100010055aa aa5506002B00000100010055aa aa5506002C00000100010055aa aa5506002D00000100010055aa aa5506000200000100010055aa aa5506002F00000100010055aa aa5506003000000100010055aa aa5506003100000100010055aa aa5506003200000100010055aa aa5506003300000100010055aa aa5506003400000100010055aa aa5506003500000100010055aa aa5506003600000100010055aa aa5506003700000100010055aa aa5506003800000100010055aa aa5506003900000100010055aa aa5506003A00000100010055aa aa5506003B00000100010055aa aa5506003C00000100010055aa aa5506003D00000100010055aa aa5506000300000100010055aa aa5506003F00000100010055aa aa5506004000000100010055aa aa5506004100000100010055aa aa5506004200000100010055aa aa5506004300000100010055aa aa5506004400000100010055aa aa5506004500000100010055aa aa5506004600000100010055aa aa5506004700000100010055aa aa5506004800000100010055aa aa5506004900000100010055aa aa5506004A00000100010055aa aa5506004B00000100010055aa aa5506004C00000100010055aa aa5506004D00000100010055aa aa5506000400000100010055aa aa5506004F00000100010055aa aa5506005000000100010055aa aa5506005100000100010055aa aa5506005200000100010055aa aa5506005300000100010055aa aa5506005400000100010055aa aa5506005500000100010055aa aa5506005600000100010055aa aa5506005700000100010055aa aa5506005800000100010055aa aa5506005900000100010055aa aa5506005A00000100010055aa aa5506005B00000100010055aa aa5506005C00000100010055aa aa5506005D00000100010055aa aa5506000500000100010055aa aa5506005F00000100010055aa aa5506006000000100010055aa aa5506006100000100010055aa aa5506006200000100010055aa aa5506006300000100010055aa aa5506006400000100010055aa aa5506006500000100010055aa aa5506006600000100010055aa aa5506006700000100010055aa aa5506006800000100010055aa aa5506006900000100010055aa aa5506006A00000100010055aa aa5506006B00000100010055aa aa5506006C00000100010055aa aa5506006D00000100010055aa aa5506000600000100010055aa aa5506006F00000100010055aa aa5506007000000100010055aa aa5506007100000100010055aa aa5506007200000100010055aa aa5506007300000100010055aa aa5506007400000100010055aa aa5506007500000100010055aa aa5506007600000100010055aa aa5506007700000100010055aa aa5506007800000100010055aa aa5506007900000100010055aa aa5506007A00000100010055aa aa5506007B00000100010055aa aa5506007C00000100010055aa aa5506007D00000100010055aa aa5506000700000100010055aa aa5506007F00000100010055aa aa5506008000000100010055aa aa5506008100000100010055aa aa5506008200000100010055aa aa5506008300000100010055aa aa5506008400000100010055aa aa5506008500000100010055aa aa5506008600000100010055aa aa5506008700000100010055aa aa5506008800000100010055aa aa5506008900000100010055aa aa5506008A00000100010055aa aa5506008B00000100010055aa aa5506008C00000100010055aa aa5506008D00000100010055aa aa5506000800000100010055aa aa5506008F00000100010055aa aa5506009000000100010055aa aa5506009100000100010055aa aa5506009200000100010055aa aa5506009300000100010055aa aa5506009400000100010055aa aa5506009500000100010055aa aa5506009600000100010055aa aa5506009700000100010055aa aa5506009800000100010055aa aa5506009900000100010055aa aa5506009A00000100010055aa aa5506009B00000100010055aa aa5506009C00000100010055aa aa5506009D00000100010055aa aa5506000900000100010055aa aa5506009F00000100010055aa aa550600A000000100010055aa aa550600A100000100010055aa aa550600A200000100010055aa aa550600A300000100010055aa aa550600A400000100010055aa aa550600A500000100010055aa aa550600A600000100010055aa aa550600A700000100010055aa aa550600A800000100010055aa aa550600A900000100010055aa aa550600AA00000100010055aa aa550600AB00000100010055aa aa550600AC00000100010055aa aa550600AD00000100010055aa aa550600AE00000100010055aa aa550600AF00000100010055aa aa550600B000000100010055aa aa550600B100000100010055aa aa550600B200000100010055aa aa550600B300000100010055aa aa550600B400000100010055aa aa550600B500000100010055aa aa550600B600000100010055aa aa550600B700000100010055aa aa550600B800000100010055aa aa550600B900000100010055aa aa550600BA00000100010055aa aa550600BB00000100010055aa aa550600BC00000100010055aa aa550600BD00000100010055aa aa550600BE00000100010055aa aa550600BF00000100010055aa aa550600C000000100010055aa aa550600C100000100010055aa aa550600C200000100010055aa aa550600C300000100010055aa aa550600C400000100010055aa aa550600C500000100010055aa aa550600C600000100010055aa aa550600C700000100010055aa aa550600C800000100010055aa aa550600C900000100010055aa aa550600CA00000100010055aa aa550600CB00000100010055aa aa550600CC00000100010055aa aa550600CD00000100010055aa aa550600CE00000100010055aa aa550600CF00000100010055aa aa550600D000000100010055aa aa550600D100000100010055aa aa550600D200000100010055aa aa550600D300000100010055aa aa550600D400000100010055aa aa550600D500000100010055aa aa550600D600000100010055aa aa550600D700000100010055aa aa550600D800000100010055aa aa550600D900000100010055aa aa550600DA00000100010055aa aa550600DB00000100010055aa aa550600DC00000100010055aa aa550600DD00000100010055aa aa550600DE00000100010055aa aa550600DF00000100010055aa aa550600E000000100010055aa aa550600E100000100010055aa aa550600E200000100010055aa aa550600E300000100010055aa aa550600E400000100010055aa aa550600E500000100010055aa aa550600E600000100010055aa aa550600E700000100010055aa aa550600E800000100010055aa aa550600E900000100010055aa aa550600EA00000100010055aa aa550600EB00000100010055aa aa550600EC00000100010055aa aa550600ED00000100010055aa aa550600EE00000100010055aa aa550600EF00000100010055aa aa550600F000000100010055aa aa550600F100000100010055aa aa550600F200000100010055aa aa550600F300000100010055aa aa550600F400000100010055aa aa550600F500000100010055aa aa550600F600000100010055aa aa550600F700000100010055aa aa550600F800000100010055aa aa550600F900000100010055aa aa550600FA00000100010055aa aa550600FB00000100010055aa aa550600FC00000100010055aa aa550600FD00000100010055aa aa550600FE00000100010055aa
Hammer M. schrieb: > In der Beschreibung steht, die ID ist 1 Byte lang. Wieviel Möglichkeiten > gibt es denn dann? Dann würde ich die einfach mal durchtesten. Genau 255 - also von 0x00 bis 0xFF. Viel Spaß beim Ausbrobieren. Da Dir der Schlauberger Wolfgang nun auch nicht wirklich weiter hilft will ich es noch mal mal versuchen. Da Du das Protokoll der Datenübertragung nicht wirklich kennst und Du sehr wahrscheinlich auch nicht genau weist was da im einzelnen abgeht, lass den Käse mit dem Terminal - das ist in diesem Fall nicht zielführend. Dich dürfte erst mal nur das Programm vom Hersteller weiter bringen. Selbiges läuft aber nicht unter Windows XP - habe ich gerade ausprobiert. Das Program ist in Visual Basic mit .Net geschrieben. Dies bedeutet Du brauchst sehr wahrscheinlich ein recht aktuelles .Net-Framework. Mit einer aktuellen Win10 Installation solltes Du gute Karten haben. Wenn Du Win10 hast, dann gehe wie folgt vor: 1. Lege mit dem Explorer direkt unter C ein Verzeichnis (Neuen Ordner) an. Ich nennenne ihn mal schlicht und einfach test. 2. Mache einen Doppelklick auf das ZIP, es sollte Dir jetzt der Inhalt angezeigt werden. Das ist genau das Verzeichnis mit den vielen Leerzeichen an dem Du schon gescheitert bist. 3. Mache einen Doppelklick auf dieses Verzeichnis, es wird Dir der Inhalt - das eigentliche Programm - angezeigt. Es ist eine EXE Datei wobei der Dateiname eher kryptische Zeichen enthält. 4. Öffne ein 2. Explorerfenster und gehe dort in das neu angelegte Verzeichnis test. 5. Ziehe jetzt die Datei aus dem ZIP-Fenster nach test, also in das gerade geöffnete Explorerfenster. 6. Benenne die Datei im Verzeichnis test jetzt um. Am besten kurz und knackig z.B. akkutester.exe 7. Versuche sie mit einem Doppelklick zu öffnen. Wenn das nicht funktioniert, dann mache Folgendes: 1. gebe in das Suchfeld cmd ein und drücke die Entertaste. Es sollte sich so ein schwarzes Kommandozeilen enster öffne 2. in diesem Fenster gibst Du cd c:\test ein Befehl auch mit Entertaste abschließen 3. jetzt tippst Du akkutester ein und schließt mit der Entertaste ab. Normalerweise sollte jetzt das Programm starten. Wenn nicht gibt es eine Fehlermeldung und die postest Du hier. Melde Dich auch wenn das Programm startet, dann machen wir weiter.
Zeno schrieb: > Genau 255 - also von 0x00 bis 0xFF. Viel Spaß beim Ausbrobieren. 256! > Dich dürfte erst mal nur das Programm vom Hersteller weiter bringen. > Selbiges läuft aber nicht unter Windows XP - habe ich gerade > ausprobiert. Das Program ist in Visual Basic mit .Net geschrieben. Dies > bedeutet Du brauchst sehr wahrscheinlich ein recht aktuelles > .Net-Framework. Da würde ich nicht drauf wetten...
Jonas B. schrieb: > He, was ist das für ein komisches Program :D > Die Serialports werden einfach von 1-16 durch nummeriert, statt die live > abzufragen... ganz schlecht. Ach weist Du, die haben da mal was auf die Schnelle mit Visualstudio in .Net zusammen geklickt und da auch nicht weiter überlegt. Halt typisch für die heutige Zeit.
>Halt typisch für die heutige Zeit. Ja ich weiß früher war alles besser und aus Holz, selbst die Gummistiefel ;) >Genau 255 - also von 0x00 bis 0xFF. Viel Spaß beim Ausbrobieren. heute gibt das sogar 256...
Das mit dem Programm hat leider nicht funktioniert. Windows ist 10 (64-Bit) und auf dem aktuellen stand.
c-hater schrieb: > Da würde ich nicht drauf wetten... Wetten würde ich da auch nicht drauf, allerdings dürfte die Probiererei mit dem Terminal ihn auch nicht weiter bringen. Wir wissen ja nicht ob die Beschreibung des Datenformats so richtig stimmt. Das Programm des Herstellers bietet biete zumindest erst mal ne Chance, denn der sollte eigentlich wissen wie man mit seinen Produkten umgeht. Würde mal behaupten das das Programm eigentlich nicht für den Kunden gedacht ist, er hat es halt aus Kulanz bekommen. Das hat der Hersteller für interne Verwendung gemacht - so sieht es jedenfalls für mich aus. Ich würde mal googeln - da hat vielleich schon mal einer was gemacht.
>aa5506000000000100010055aa >Immer noch zu fett. 12 Bytes müssen es sein. Was stimmt den mit mir nur nicht :( Letzter Versuch: aa55060000000100010055aa aa55060001000100010055aa aa55060002000100010055aa aa55060003000100010055aa aa55060004000100010055aa aa55060005000100010055aa aa55060006000100010055aa aa55060007000100010055aa aa55060008000100010055aa aa55060009000100010055aa aa5506000A000100010055aa aa5506000B000100010055aa aa5506000C000100010055aa aa5506000D000100010055aa aa5506000E000100010055aa aa5506000F000100010055aa aa55060010000100010055aa aa55060011000100010055aa aa55060012000100010055aa aa55060013000100010055aa aa55060014000100010055aa aa55060015000100010055aa aa55060016000100010055aa aa55060017000100010055aa aa55060018000100010055aa aa55060019000100010055aa aa5506001A000100010055aa aa5506001B000100010055aa aa5506001C000100010055aa aa5506001D000100010055aa aa55060001000100010055aa aa5506001F000100010055aa aa55060020000100010055aa aa55060021000100010055aa aa55060022000100010055aa aa55060023000100010055aa aa55060024000100010055aa aa55060025000100010055aa aa55060026000100010055aa aa55060027000100010055aa aa55060028000100010055aa aa55060029000100010055aa aa5506002A000100010055aa aa5506002B000100010055aa aa5506002C000100010055aa aa5506002D000100010055aa aa55060002000100010055aa aa5506002F000100010055aa aa55060030000100010055aa aa55060031000100010055aa aa55060032000100010055aa aa55060033000100010055aa aa55060034000100010055aa aa55060035000100010055aa aa55060036000100010055aa aa55060037000100010055aa aa55060038000100010055aa aa55060039000100010055aa aa5506003A000100010055aa aa5506003B000100010055aa aa5506003C000100010055aa aa5506003D000100010055aa aa55060003000100010055aa aa5506003F000100010055aa aa55060040000100010055aa aa55060041000100010055aa aa55060042000100010055aa aa55060043000100010055aa aa55060044000100010055aa aa55060045000100010055aa aa55060046000100010055aa aa55060047000100010055aa aa55060048000100010055aa aa55060049000100010055aa aa5506004A000100010055aa aa5506004B000100010055aa aa5506004C000100010055aa aa5506004D000100010055aa aa55060004000100010055aa aa5506004F000100010055aa aa55060050000100010055aa aa55060051000100010055aa aa55060052000100010055aa aa55060053000100010055aa aa55060054000100010055aa aa55060055000100010055aa aa55060056000100010055aa aa55060057000100010055aa aa55060058000100010055aa aa55060059000100010055aa aa5506005A000100010055aa aa5506005B000100010055aa aa5506005C000100010055aa aa5506005D000100010055aa aa55060005000100010055aa aa5506005F000100010055aa aa55060060000100010055aa aa55060061000100010055aa aa55060062000100010055aa aa55060063000100010055aa aa55060064000100010055aa aa55060065000100010055aa aa55060066000100010055aa aa55060067000100010055aa aa55060068000100010055aa aa55060069000100010055aa aa5506006A000100010055aa aa5506006B000100010055aa aa5506006C000100010055aa aa5506006D000100010055aa aa55060006000100010055aa aa5506006F000100010055aa aa55060070000100010055aa aa55060071000100010055aa aa55060072000100010055aa aa55060073000100010055aa aa55060074000100010055aa aa55060075000100010055aa aa55060076000100010055aa aa55060077000100010055aa aa55060078000100010055aa aa55060079000100010055aa aa5506007A000100010055aa aa5506007B000100010055aa aa5506007C000100010055aa aa5506007D000100010055aa aa55060007000100010055aa aa5506007F000100010055aa aa55060080000100010055aa aa55060081000100010055aa aa55060082000100010055aa aa55060083000100010055aa aa55060084000100010055aa aa55060085000100010055aa aa55060086000100010055aa aa55060087000100010055aa aa55060088000100010055aa aa55060089000100010055aa aa5506008A000100010055aa aa5506008B000100010055aa aa5506008C000100010055aa aa5506008D000100010055aa aa55060008000100010055aa aa5506008F000100010055aa aa55060090000100010055aa aa55060091000100010055aa aa55060092000100010055aa aa55060093000100010055aa aa55060094000100010055aa aa55060095000100010055aa aa55060096000100010055aa aa55060097000100010055aa aa55060098000100010055aa aa55060099000100010055aa aa5506009A000100010055aa aa5506009B000100010055aa aa5506009C000100010055aa aa5506009D000100010055aa aa55060009000100010055aa aa5506009F000100010055aa aa550600A0000100010055aa aa550600A1000100010055aa aa550600A2000100010055aa aa550600A3000100010055aa aa550600A4000100010055aa aa550600A5000100010055aa aa550600A6000100010055aa aa550600A7000100010055aa aa550600A8000100010055aa aa550600A9000100010055aa aa550600AA000100010055aa aa550600AB000100010055aa aa550600AC000100010055aa aa550600AD000100010055aa aa550600AE000100010055aa aa550600AF000100010055aa aa550600B0000100010055aa aa550600B1000100010055aa aa550600B2000100010055aa aa550600B3000100010055aa aa550600B4000100010055aa aa550600B5000100010055aa aa550600B6000100010055aa aa550600B7000100010055aa aa550600B8000100010055aa aa550600B9000100010055aa aa550600BA000100010055aa aa550600BB000100010055aa aa550600BC000100010055aa aa550600BD000100010055aa aa550600BE000100010055aa aa550600BF000100010055aa aa550600C0000100010055aa aa550600C1000100010055aa aa550600C2000100010055aa aa550600C3000100010055aa aa550600C4000100010055aa aa550600C5000100010055aa aa550600C6000100010055aa aa550600C7000100010055aa aa550600C8000100010055aa aa550600C9000100010055aa aa550600CA000100010055aa aa550600CB000100010055aa aa550600CC000100010055aa aa550600CD000100010055aa aa550600CE000100010055aa aa550600CF000100010055aa aa550600D0000100010055aa aa550600D1000100010055aa aa550600D2000100010055aa aa550600D3000100010055aa aa550600D4000100010055aa aa550600D5000100010055aa aa550600D6000100010055aa aa550600D7000100010055aa aa550600D8000100010055aa aa550600D9000100010055aa aa550600DA000100010055aa aa550600DB000100010055aa aa550600DC000100010055aa aa550600DD000100010055aa aa550600DE000100010055aa aa550600DF000100010055aa aa550600E0000100010055aa aa550600E1000100010055aa aa550600E2000100010055aa aa550600E3000100010055aa aa550600E4000100010055aa aa550600E5000100010055aa aa550600E6000100010055aa aa550600E7000100010055aa aa550600E8000100010055aa aa550600E9000100010055aa aa550600EA000100010055aa aa550600EB000100010055aa aa550600EC000100010055aa aa550600ED000100010055aa aa550600EE000100010055aa aa550600EF000100010055aa aa550600F0000100010055aa aa550600F1000100010055aa aa550600F2000100010055aa aa550600F3000100010055aa aa550600F4000100010055aa aa550600F5000100010055aa aa550600F6000100010055aa aa550600F7000100010055aa aa550600F8000100010055aa aa550600F9000100010055aa aa550600FA000100010055aa aa550600FB000100010055aa aa550600FC000100010055aa aa550600FD000100010055aa aa550600FE000100010055aa
Zeno schrieb: > Ach weist Du, die haben da mal was auf die Schnelle mit Visualstudio in > .Net zusammen geklickt und da auch nicht weiter überlegt. Halt typisch > für die heutige Zeit. Unsinn. Das ist erstens kein Programm, was irgendwie mit .net hantiert und zweitens keins, was in VB geschrieben wurde. Das ist uralte 32Bit-MFC-Gülle, wahrscheinlich in C++ geschrieben. Das einzige, was wohl stimmt: ja, das wurde sehr wahrscheinlich mit VisualStudio erstellt... Das "VB" in den Ressourcen kommt wohl von der Produktreihe des Herstellers, so wie auch in dieser Doku irgendwas mit "VB" steht...
Ich habe eine Antwort vom Akku bekommen!!!! Jonas B. schrieb: > Letzter Versuch: Hab alles kopiert und gesendet. Aber irgendwie ist die Antwort nicht sehr aussagekräftig, oder?
Ups, falsche Baudrate gewählt. Jetzt gibts ne längere Antwort. Aber irgendwie auch ohne wirklichen Inhalt.
>Hab alles kopiert und gesendet.
Baudrate ist irgendwie bei 115200 nun?
>Ich habe eine Antwort vom Akku bekommen!!!!
Sehr gut. Wir wissen nun das einer der 256 Befehle funktioniert hat. So
nun probiere die ersten 128 (auf einmal natürlich) und schaue ob was
zurück kommt. Wenn ja nehme die ersten 64 der 128 und teste wieder,
ansonsten nimmst du die ersten 64 von den übrig gebliebenen 128 und
testet damit? Prinzip erkannt? So müsstet du mit maximal 8 Tests deine
ID gefunden haben...
Wobei eigentlich ist es ja egal, er müsste ja die anderen ignorieren.
Also dürfte eigentlich jetzt schon eine sinnvolle Antwort kommen...Und
die müsste ziemlich lang sein (länger als 26 Bytes). Jetzt bin ich
gerade überfragt.
:
Bearbeitet durch User
Hammer M. schrieb: > Das mit dem Programm hat leider nicht funktioniert. > > Windows ist 10 (64-Bit) und auf dem aktuellen stand. Na will ich mal mein Glück versuchen. Vielleicht ist das Programm auf 32Bit compiliert bzw. verwendet das 32bitige Framework. Ich habe jetzt mal bei mir auf verschiedenen Rechnern probiert. Wenn ich unter Wiondows10 einen Doppelklick auf die Datei mache - ob umbenannt oder nicht - erscheint zumindest erst mal ne Fehlermeldung: -MSVCP110.DLL fehlt -MFC110U.DLL fehlt -MSVCR110.DLL fehlt Die Dateien gehören zum Visual C++ Redistributable. Wie es installiert wird steht hier https://www.giga.de/downloads/windows-10/tipps/msvcr110.dll-fehlt-so-installiert-ihr-die-datei/ Wie es aussieht doch nicht Visual Basic. Also versuch mal Dein Glück.
>Also versuch mal Dein Glück.
Das würde ich auch vorziehen...Selbst wenn du ne Antwort bekommst, die
auseinander zu frickeln, puh das traue ich dir ehrlich gesagt nicht zu
Mario, das ist aber auch gar nicht böse gemeint.
P.S. ist da im hterm etwa wieder ein Haken bei Ascii gesetzt??? mario du
machst einen ja wahnsinnig ;)
VG Jonas
:
Bearbeitet durch User
Das ist spannend, je mehr ich es eingrenze, desto kürzer werden die Antworten. Bei 128 = 10 bei 64 = 6 bei 32 = 7 bei 16 = 2 bei 8 = 2 bei 4 = 1 bei 2 = 0
Jonas B. schrieb: > Das würde ich auch vorziehen...Selbst wenn du ne Antwort bekommst, die > auseinander zu frickeln, puh das traue ich dir ehrlich gesagt nicht zu > Mario, das ist aber auch gar nicht böse gemeint Ich befürchte fast, da könntest du recht haben
c-hater schrieb: > Unsinn. Das ist erstens kein Programm, was irgendwie mit .net hantiert > und zweitens keins, was in VB geschrieben wurde. > > Das ist uralte 32Bit-MFC-Gülle, wahrscheinlich in C++ geschrieben. Das > einzige, was wohl stimmt: ja, das wurde sehr wahrscheinlich mit > VisualStudio erstellt... Mit 32Bit (XP) kann ich dem Teil keinen Pips entlocken. Einzig und allein auf meinem Win10 - 64Bit- gibt es bei mir eine Reaktion. Werde es noch mal auf einem 32Bit Win7 probieren. Win7 32Bit habe ich auc eine Reaktion, da fehlt bei mir die MFC110U.DLL Aber Du wirst schon recht haben das Ding ist 32Bit, habe noch mal rein geschaut es ist gegen einige 32Bit DLL's gelinkt. Also sollte sich der TO die 32Bit Versionen der genannten DLL's holen und nach C:\Windows\SysWOW64 kopieren. Das mit dem VB hatte ich ja bereits korrigiert.
>Ich befürchte fast, da könntest du recht haben Keine Sorge, wir helfen dir. Hast du das mal installiert? https://www.giga.de/downloads/windows-10/tipps/msvcr110.dll-fehlt-so-installiert-ihr-die-datei/ Auf meinem System Win7 64bit läuft das einfach so, allerdings ist da auch alles für die Entwicklung und Softwarepaketierung mit C++ vorbereitet.
:
Bearbeitet durch User
Hammer M. schrieb: > je mehr ich es eingrenze, desto kürzer werden die Antworten. Da bekommst Du nicht wirklich was zurück, sondern nur irgendwas. Ich habe mir die Anleitung (s.7-9) nochmals angeschaut. Da müßten mit einem Hieb bei erfolgreicher Anfrage um die 82 Byte Daten zurückkommen, wenn ich mich nicht verzählt habe. Aber über 80 waren es in jedem Fall. Die müßtest Du dann auseinander fummeln, um an die interessierenden Daten zu kommen.
>Da bekommst Du nicht wirklich was zurück, sondern nur irgendwas.
Vorher kam ja keine Antwort, also einen kleinen Schritt weiter sind wir
schon. Ich frage mich gerade, wo wird die Geräte-ID eigentich
festgelegt. Ich hätte ja vermutet, das die auf dem Gerät selbst
gespeichert ist und abgefragt werden kann. Hm...
Ich hoffe aber das Mario einfach das Programm zum Laufen kriegt...
Die Anleitung von der Installation zu C++ bin ich gefolgt und das hat auch funktioniert. Jetzt erscheint dieser Fehler
lade die mal direkt von hier: https://de.dll-files.com/search/?q=msvcr110.dll und speichere sie unter C:\Windows\System32 (dafür musst du den Explorer mit Administrator Rechten starten)
:
Bearbeitet durch User
Wie ist der folgende Satz zu interpredieren? "Die zu prüfenden Daten reichen von nach dem Befehlswort (5. Byte) bis vor der Prüfung selbst (nicht enthalten) (5. Byte von unten)"
"Die zu prüfenden Daten reichen von nach dem Befehlswort (5. Byte) bis vor der Prüfung selbst (nicht enthalten) (5. Byte von unten)" Das die Prüfsumme doch über alle Bytes berechnet wird (außer prä und postambel).
Wie ist der folgende Satz zu interpredieren? "Die zu prüfenden Daten reichen von nach dem Befehlswort (5. Byte) bis vor der Prüfung selbst (nicht enthalten) (5. Byte von unten)" Ohne funktionierender Prüfsumme wird's nichts mit erfreichender Kommunikation.
>Ohne funktionierender Prüfsumme wird's nichts mit erfreichender >Kommunikation. Ja das ist bekannt. Aber jetzt gibt auch alles Sinn. Die Antwort mit den vielen Nullen, sind bestimmt Antworten auf Messages mit richtiger ID aber falscher Prüfsumme.
:
Bearbeitet durch User
c-hater schrieb: > Nö. Die ID ist Teil der "Daten". Das zumindest geht recht eindeutig aus > der Beschreibung hervor. > >> aa550600FE00000100010055aa > > Das passt doch vorne und hinten nicht zur Protokollbeschreibung, da sind > einige Bytes zu viel. Der Kommandoframe muss 12 Bytes haben, 4 davon > sind "Daten" (schließt ID ein!), 4 Post/Pre, 2 Kommando und 2 Checksum. Wozu soll das Programm sonst gut sein. Ich würde mal ganz naiv davon ausgehen, dass die Kiste mit der Anfrage, die das Programm über die Serielle Schnittstelle rausschickt, auch etwas anfangen kann. Und da kommt nun mal jede Sekunde
1 | AA 55 06 00 00 00 01 00 01 00 55 AA |
Eine Möglichkeit zur Eingabe/Konfiguration einer anderen ID konnte ich da erstmal nicht entdecken. Hammer M. schrieb: > Energy_storage_battery_host_computer_software_V2.0.zip
Datei ist "installiert" Aber passieren tut irgendwie nix. Wolfgang schrieb: > AA 55 06 00 00 00 01 00 01 00 55 AA Wenn ich das sende bekomme ich keine Antwort. Sehr merkwürdig, oder?
Verbindung getrennt und wieder hergestellt: Jetzt kommt eine Antwort. Aber wieder bisschen kurz, oder?
>Datei ist "installiert" >Aber passieren tut irgendwie nix. Was kommt den für ein Fehler?
Hammer M. schrieb: > Aber wieder bisschen kurz, oder? Da fehlt der Frame-Header (AA 55) am Anfang. Das sieht IMHO unvollständig aus.
Kommt gar kein Fehler. Im cmd passiert nichts und durch Doppelklick ist es, wie wenn sich etwas öffnet, das sich direkt wieder schließt.
Hammer M. schrieb: > Jetzt kommt eine Antwort. Probier doch mal, die Abfrage jede Sekunde zu senden, ao wie es das Programm macht.
Hammer M. schrieb: > Datei ist "installiert" > Aber passieren tut irgendwie nix. Wo hast Du die Datei hin installiert? Unter 64Bit Win10 kommen 32Bit DLL's eben nicht nach Windows\System32 sondern nach C:\Windows\SysWOW64 Hammer M. schrieb: > Die Anleitung von der Installation zu C++ bin ich gefolgt und das hat > auch funktioniert. > > Jetzt erscheint dieser Fehler Das hatte ich doch auch gepostet das diese DLL zu installieren ist.
Hammer M. schrieb: > Kommt nur immer wieder das selbe Ergebnis. Ohne die korrekte Prüfsumme wird das wohl nichts werden.
Hammer M. schrieb: > Kommt nur immer wieder das selbe Ergebnis. Bist du ganz sicher, dass du die Verkabelung richtig hast. Die empfangenen Daten könnten durch übersprechen entstehen. Die Verbindung zwischen USB-RS232 Adapter (D-Sub Stecker?) und RJ-45 Stecker am Gerät muss wie folgt aussehen:
1 | D-Sub RJ45 Signal |
2 | 2 5 TX Gerät/RX PC |
3 | 3 4 RX Gerät/TX PC |
4 | 5 1 od. 2 Gnd |
Und außerdem muss am RJ-45 die Verbindung von Pin 6 nach 7 oder 8 vorhanden sein.
Zeno schrieb: > Ohne die korrekte Prüfsumme wird das wohl nichts werden. Warum sollte die Prüfsumme, die die GUI-Software sendet, falsch sein?
Vielleicht liegt es doch an der Hardware. Welchen USB --> RS232 Adapter hast du denn ? Mit den Noname-Adaptern ohne FTDI-Chip hatte ich auch schon ähnliche Probleme gehabt. Ist dann auch ein Treiberproblem. Der CP2100x... paßt am besten. Am besten fand ich noch den DIGITUS mit FTDI. Auch sollte man ein durchkontaktiertes Nullmodemkabel oder Adapter parat haben. Und diverse Adapter (m/w) (breites/9pol.) ebenfalls. Da hatte ich schon die abentuerlichste Kabelverbindung von Klein nach Groß, über Nullmodemadapter und wieder von Groß nach klein gehabt, bis ich da Ergebnisse hatte. So ist mal meine Erfahrung damit.
:
Bearbeitet durch User
Hallo Zusammen, Vielen vielen vielen Dank für die Mühe, die ihr euch alle gemacht habt!!!!!! Das ist wirklich großartig. Leider konnte ich das "Problem" zwar nicht beheben, aber ich habe sehr viel gelernt. Es fehlt wahrscheinlich noch an zu vielen Grundkenntnissen, um den ursprünglichen Plan zu verfolgen, den Akku später mit Hilfe eines Raspberry Pi zu überwachen. Vielleicht findet sich in der Zukunft ja ein findiger Tüftler, der einen ähnlichen Plan verfolgt und bereit ist die Ergebnisse dann zu teilen. Ich bin wirklich sehr begeistert, von eurer Hilfsbereitschaft. Liebe Grüße
Oftmals haben RS-232 Protokolle auch einen Timeout. Man kann also in einem Terminalprogramm gar nicht so schnell eintippen, daß der Befehl akzeptiert wird. In der Serviceanleitung wurde daher vorgeschlagen, man öffne einen Texteditor, gebe den Befehl mit Prüfsumme ein und dann übernimmt man die Zeile mit Copy&Paste in das Terminalprogramm, damit alle Bytes in einem Rutsch gesendet werden.
Peter D. schrieb: > Oftmals haben RS-232 Protokolle auch einen Timeout. Man kann also in > einem Terminalprogramm gar nicht so schnell eintippen, daß der Befehl > akzeptiert wird. Das war die Idee hinter: Wolfgang schrieb: > Probier doch mal ... Damit kommen die Daten genauso aus dem Terminalprogramm wie aus dem GUI-Programm ;-) Aber das nützt nur, wenn die Verdrahtung auch passt. Wie steht es damit, inbesondere mit der Brücke 6-7/8?
Wolfgang schrieb: > Aber das nützt nur, wenn die Verdrahtung auch passt. > Wie steht es damit, inbesondere mit der Brücke 6-7/8? Die Überbrückung habe ich gemacht. Muss die denn dauerhaft sein? Hab ein Kabel zum überbrücken genommen.
Peter D. schrieb: > Man kann also in > einem Terminalprogramm gar nicht so schnell eintippen, daß der Befehl > akzeptiert wird. Guter Punkt! Kann aber zusätzlich sein, dass das Terminalprogramm (das eher nicht) und / oder der USB-RS232-Wandler puffert und irgendwann die restlichen Zeichen sendet (also kein flush macht). Könnte man nochmal mit einem loopback (also Tx mit Rx verbinden) verifizieren.
Hammer M. schrieb: > Muss die denn dauerhaft sein? Zumindest so lange, wie du mit der Kiste über die RS-232 Schnittstelle kommunizieren willst.
Hab auch schon so einen 9poligen Adapter Male<->Gender gehabt, der Rx und Tx intern gekreuzt hatte. Damals suchte ich auch tagelang. Habe mir dann mit Filzstift eine 0 auf das Gehäuse draufgeschrieben. Scheint wahrscheinlich so eine billige China-Produktion ohne Endkontrolle gewesen zu sein. Sage ich hier mal, falls du einen solchen benutzen solltest.
Wolfgang schrieb: > Warum sollte die Prüfsumme, die die GUI-Software sendet, falsch sein? Wer redet hier von der GUI-Software? Es geht um das Rumgehampel mit dem Terminal.
Zeno schrieb: > Wer redet hier von der GUI-Software? > Es geht um das Rumgehampel mit dem Terminal. Der Sendestring der da mit dem Terminal gesendet wird, ist genau die Sequenz, die das GUI-Programm sendet - wenn du den Thread vielleicht mal verfolgen magst. Hammer M. schrieb: > Screenshot_2021-02-21_234941.png
Heinz B. schrieb: > der Rx und Tx intern gekreuzt hatte. hab mal TX und RX wild hin und her getauscht. Wenn es "falsch" verkabelt ist, bekomme ich eine Antwort. Wolfgang schrieb: > Bist du ganz sicher, dass du die Verkabelung richtig hast. Die > empfangenen Daten könnten durch übersprechen entstehen. Könnte aber daran liegen. Wenn ich es "richtig" verkabel, bekomme ich gar keine Antwort. Ich benutze einen CP2102 als USB --> RS232 Adapter
Hammer M. schrieb: > Ich benutze einen CP2102 als USB --> RS232 Adapter Hasse mal ein Bild, oder einen Link?
Hammer M. schrieb: > Hab mal Bilder gemacht Ja! Ein tolles Dingen! Ein USB UART Adapter. Aber mit RS232C hat das Dingen erstmal nix zu tun. Nix gegen das Dingen, die tuns. Aber RS232C ist das nicht.
Ok, dass könnte natürlich unter anderem erklären, warum nichts funktioniert, wenn ich das falsche Teil benutze 🤦🏼♂️.
Arduino Fanboy D. schrieb: > Aber mit RS232C hat das Dingen erstmal nix zu tun. Kannst du mir nen Tipp geben, was für ein Adapter geeignet wäre? Nicht, dass ich noch mal was falsches kaufe
:
Bearbeitet durch User
Hmm... Du könntest deinen Adapter mit einem Max232 aufpeppen. Alternativ, würde auch wohl sowas gehen, ebay: 313404350976
Kurze Verständnisfrage: Arduino Fanboy D. schrieb: > Alternativ, würde auch wohl sowas gehen, ebay Wo genau liegt der Unterschied zu meinem Adapter? Ich dachte es wäre eigentlich nur der Anschluss. Aber wohl irgendwie falsch gedacht. Ist RS232 nicht auch UART?
Hammer M. schrieb: > Ist RS232 nicht auch UART? Ist es! Wobei aber dein UART mit TTL Pegeln(0V - 5V(3,3V?)) arbeitet, und RS232C mit (ca -12V - +12V). Und zudem invertiert. Darum ja auch der Max, als spezieller Pegelwandler, genau für diesen Zweck.
Arduino Fanboy D. schrieb: > Wobei aber dein UART mit TTL Pegeln(0V - 5V(3,3V?)) arbeitet Laut Seite 5 des vom TO hochgeladenen Datenblattes 3,3V also sollte der Schnittstellenadapter, den der TO gerade benutzt geeignet sein. Bei der Nutzung eines richtigen RS232 Wandlers, könnte die Elektronik des Akkus beschädigt werden. Hammer M. schrieb: > Ich dachte es wäre eigentlich nur der Anschluss Jain. RS232C spezifiziert die physikalische Übertragung, wie Spannungspegel, Steckverbinder, etc. UART (Universal Asynchronous Receiver Transmitter) heißt hingegen der Tranceiver, der den seriellen Datenstrom erzeugt/empfängt. Beide Begriffe werden oft fälschlicherweise synonym benutzt. Hammer M. schrieb: > hab mal TX und RX wild hin und her getauscht. > Wenn es "falsch" verkabelt ist, bekomme ich eine Antwort. Vielleicht sind die Pins des Schnittstellenadapters "falsch" beschriftet und du musst die Leitungen NICHT kreuzen. Ich hatte mal einen solchen und habe den LA gebraucht um das festzustellen. Hammer M. schrieb: > der Hersteller meint, sie hätten alle Akkus von RS485 auf RS232 > umgestellt. Zitat aus dem Datenblatt: "(bitte wenden Sie sich an das Creabest-Team, um die Version Ihres Akkus zu bestätigen)." Vielleicht hast du trozdem eine alte Version mit RS485? Solange nichts anhand der Seriennummer oder ähnlichem verifiziert wurde, ist alles möglich.
:
Bearbeitet durch User
A. M. schrieb: > Vielleicht sind die Pins des Schnittstellenadapters "falsch" beschriftet > und du musst die Leitungen NICHT kreuzen. Ich hatte mal einen solchen > und habe den LA gebraucht um das festzustellen. Dafür braucht man keinen LA, es hilft schon ein Multimeter. Man kann einfach bei nicht an der Gegenstelle angeschlossenen USB-X-Adapter auf beiden Leitung die Spannung gegen Gnd messen (TXD-Gnd, RXD-Gnd). Welche Spannung sieht man im Ruhezustand? Was passiert, wenn man per Terminalprogramm eine Dauersendung mit 2400 Baude macht und dann misst? Auf dem Sende-Pin muss der Pegel beim Senden zappeln, auf dem Empfangs-Pin muss Ruhe herrschen.
Hammer M. schrieb: > Wenn es "falsch" verkabelt ist, bekomme ich eine Antwort. IMHO siehst du keine Antwort, sondern die etwas verkrüppelten Sendedaten, die auf die RX-Leitung übersprechen. Miss auch mal (bei aufgetrennter Verbindung zum USB-X-Adapter) auf der Geräteseite am RJ45 die Spannungen zwischen 2-4 RX und 2-5 TX.
Arduino Fanboy D. schrieb: > Alternativ, würde auch wohl sowas gehen, ebay: 313404350976 Bitte nicht diese billigen blauen Wandler kaufen, dir meist mit Prolific -Chips bestückt sind. Die Foren sind voll von Problemen, die nach Wechsel auf ein anderes Modell verschwanden.
A. M. schrieb: > Arduino Fanboy D. schrieb: >> Wobei aber dein UART mit TTL Pegeln(0V - 5V(3,3V?)) arbeitet > > Laut Seite 5 des vom TO hochgeladenen Datenblattes 3,3V Das steht da nur für Pin 3, der nicht angeschlossen werden soll: "3.Verbindungsmodus. 3,3 V Logikpegel. Lass es schweben." Zu den RX/TX-Pegeln steht da nichts - also wie Wolfgang schrieb nachmessen.
Wie oben schon gesagt, nimm am besten den Digitus. Mit Prolific hatte ich auch solche Probleme gehabt. Wie ich in den obigen Bildern sehe, hast du ja auch nur 5 V TTL Pegel. Da gehört für den PC noch ein Pegelwandler zu 12 V dazu.
:
Bearbeitet durch User
>Später mal soll da ganze über einen Pi mit Openhab hab laufen https://de.wikipedia.org/wiki/OpenHAB da steht aber nirgends was von RS232, soll der Pi das adaptieren? Für den Raspberry gibt es nicht so viele Terminalprogramme. Hterm hätte ich auf dem PC auch benutzt, aber unter Linux gibt es nur ein 32bit Binary von 2009, das man aber noch unter aktuellem Ubuntu benutzen kann, wenn alle 32bit-Libraries installiert sind. Aber für den Raspberry ist das nicht brauchbar, das läuft nur auf x86. Für Raspberry gibt es ersatzweise Cutecom, das kann auch Hex übertragen. Der Hauptfehler war sicher erstmal der falsche Pegel, dem RS232-Interface fehlt noch der invertierende Pegelwandler mit MAX232 oder ähnlichem. Selbst wenn das Gerät auch mit TTL-Pegel zufrieden wäre ist immer noch high und low vertauscht. Die Platine ist schon ok.
:
Bearbeitet durch User
4.RX.DerRS232-Empfangspin des Geräts ist mit dem sendenden Ende des Hosts verbunden. 5.TX.DerRS232-Sende-Pin des Geräts ist mit dem Empfangsende des Hosts verbunden. Steht da doch eindeutig. Um jetzt herauszufinden, ob da nun nen RS232 oder TTL angelegt werden muss, nimmt man PIN3 seiner Seriellen Schnittstelle am PC, sendet dort "UUUUUUUUUUUUUU" mit 300Baud. und verbindet das mit dem RX-Pin des Akkus über 10k-Ohm. Masse nicht vergessen, PIN5 vom PC an den PIN1 vom RJ-45 ( auch hhier: zählreihenfolge am RJ45 beachten. ) Jetzt schaut man mit'm Oszilloskop, ob die Spannungen hinter dem 10K, auf der RJ-45 Steckerseite denen vor dem 10K in etwa folgen, oder ob sie gegen GND und VCC durch die internen Schutzdioden abgeschnitten werden. Also entweder gehen die Spannungen mit (-6V, +6V; mehr wirds heute nicht mehr sein) oder sie "schlagen bei -0.7V und +4V an". Dann weis man, was man hat. Wenn tatscächlich reiner TTL Pegel ist, kann man zum Schutz des Empfängers ja zur Not den Widerstand auf 1K verringern, eine Sperrdiode gegen GND (zusätzlich zur Intergrierten) einbauen und muss im Terminal die ausgesendeten Daten eben invertieren. Die angesprochenen USB-Wandler senden eben erst, wenn deren Sendepuffer voll ist (4K voreinstellung) oder eben nach 16 msekunden. Stellt man den Sendepuffer entsprechend der Paketgröße ein oder setzt die 16ms auf 1ms herab, hat man auch ordentlichen datendurchsatz, ohne dass ein oben angesprochen, eventuelles Timeout auf der schnittstelle zuschlägt. Es macht keinen Sinn, an dieser Stelle auf den Hersteller xyz zu schimpfen. PIN6 wurde schon genannt, oder? Baudrate 38400? LSB first ist gewöhnungsbedürftig, man muss wirklich erst das hintere Byte schicken, danach erst das "linke", höherwertige... Aber ich denke, mittlerweile läuft das längst alles, oder?
:
Bearbeitet durch Admin
Mario M. schrieb: > Die Foren sind voll von Problemen, die nach > Wechsel auf ein anderes Modell verschwanden. Wenn die Leute sich von ihrem Betriebssystem und der Microsoft Updaterei bevormunden lassen, haben sie selber Schuld. Die Treiberversion 3.4.25.218 (07.10.2011) von Prolific hat bisher noch immer funktioniert.
Axel R. schrieb: > Jetzt schaut man mit'm Oszilloskop ... Das wird wohl das Problem sein. Vermutlich gäbe es diesen Thread dann nicht.
Wolfgang schrieb: > Die Treiberversion Nee, das scheint elektrisch was nicht kompatibel zu sein. Vermutlich zu schwache Ausgänge oder zu kleine Pegel. Wolfgang schrieb: > es hilft schon ein Multimeter Genau, den TX-Pin erkennt man an der hohen negativen Spannung.
Mario M. schrieb: > Genau, den TX-Pin erkennt man an der hohen negativen Spannung. Es gibt manche "RS-232"-Adapter, die nur eine positive Spannung liefern, aber mit RS-232 Invertierung. Der fehlendem negative Pegel ist nicht schön, aber nicht unbedingt ein Indiz Mario M. schrieb: > Nee, ... Doch, meine Antwort bezog sich auf Mario M. schrieb: > Die Foren ...
Ein Multimeter hab ich da und werde heute Abend mal messen. Kann man, sagen, dass wenn ich Spannung um die 12v feststelle, ein korrekter Adapter Sinn machen würde und eventuell eine Lösung wäre?
Hammer M. schrieb: > Kann man, sagen, dass wenn ich Spannung um die 12v feststelle Hi, sowas ist auch gut. Oder noch 'ne "Breakout Box" für "beliebige" Verdrahtung dazwischen. ciao gustav
Karl B. schrieb: > Oder noch 'ne "Breakout Box" für "beliebige" Verdrahtung dazwischen. Die ist schon da, oder was willst du noch mehr? Hammer M. schrieb: > 4.jpg
Hi, >Hammer M. schrieb: > Kann man, sagen, dass wenn ich Spannung um die 12v feststelle unbedingt, dann macht der richtig RS232. Glaube ich aber auf Grund fehlender Konensatoren nicht. 3.jpg zeigt eigentlich die Einstellung 3,3V. Sollte also passen und ganz normal UART sein. Erst wenn weitere Treiber dazwischenkommen wird dann RS232 / RS422 .... daraus. Beide Seiten müssen eigentlich nur mit den richtigen "Spannungswerten"(3,3V?) und Schnittstelleneinstellungen (38400,8,N,1) arbeiten, Wenn jetzt noch RX und TX gekreuzt sind muss es gehen. Die Sendedaten müssen natürlich auch passen. Viel Erfolg, Uwe
Uwe schrieb: > Beide Seiten müssen eigentlich nur mit den richtigen > "Spannungswerten"(3,3V?) und Schnittstelleneinstellungen (38400,8,N,1) > arbeiten, Wenn jetzt noch RX und TX gekreuzt sind muss es gehen. Du hast die Signalpolarität vergessen. Bei 5V/3.3V-UART ist das Signal gegenüber RS-232 genau invertiert.
Wolfgang schrieb: > Axel R. schrieb: >> Jetzt schaut man mit'm Oszilloskop ... > Das wird wohl das Problem sein. Vermutlich gäbe es diesen Thread dann > nicht. Dann kann man evtl. mit ner 1N4148 in Flussrichtung und nem 1µF oder sowas die jeweilige Spitzenspanung in negativer, als auch in positiver Richtung festnageln und "in Ruhe" mitm Multimeter messen. Wo die 300Baud "rauskommen", kann man zur Not mitm kleinen Aktiv-PC-Lautsprecher rausfinden. Oszi ist schöner, klar. Muss man sich eben auch gern mal was einfallen lassen, wenn man keines zur Hand hat.
Glaube der usb Adapter kann in der tat kein RS232. Daher müsste ich doch jetzt rausfinden, was die Schnittstelle des Akku verträgt, richtig? Kann ich das nur messen, wenn er auch sendet, oder kann man auch im „Ruhemodus“ zwischen TX/RX und Ground eine Spannung messen? Wenn ja und diese dann mehr als 5v ist, ist doch klar, dass es wirklich RS232 ist, oder? Dann bräuchte ich nur einen anderen Adapter und könnte erneut mein Glück versuchen. Oder irgendwo ein Denkfehler drin?
Hammer M. schrieb: > Kann ich das nur messen, wenn er auch sendet, oder kann man auch im > „Ruhemodus“ zwischen TX/RX und Ground eine Spannung messen? Eine Spannung kannst du immer messen. Wenn sie 0 ist, siehst du das. Möglicherweise hat das Vorhandensein oder nicht Vorhandensein der 6-8-Brücke einen Einfluss. Als beides mal messen.
>Glaube der usb Adapter kann in der tat kein RS232 Er erledigt den größten Teil, es fehlt nur noch der invertierende Pegelwandler. Für 5V-Systeme machen das MAX232 und ähnliche, für 3,3V MAX3232 und kompatible. Die ursprüngliche RS232 hatte eine Versorgungsspannung bis zu +/-15V, schon der MAX232 reduzierte es auf +/-10V, der MAX3232 nur noch +/-6V. Tatsächlich funktionieren die Empfängereingänge auch noch mit 0V/5V TTL-Pegel. Beim MAX232 liegt die Schaltschwelle (wie seit den 1960ern für TTL) zwischen 0,8 und 2,4V.
An dem vorhanden Adapter ist ein Jumper, den man auf 5v liegen kann statt auf 3,3v. Christoph db1uq K. schrieb: > der MAX3232 nur noch +/-6V. Würde das dann reichen? Wahrscheinlich nicht, weil ja das Signal noch invertiert werden muss, richtig?
Hammer M. schrieb: > Ist RS232 nicht auch UART? na ja fast, deiner macht "TTL" quasi wobei TTL an 5V denkt aber heute auch 3,3V heissen kann und RS232 sich an V24 +-12V meint. Auf jeden Fall fehlt dazwischen die Invertierung. (der eine macht Ruhepegel high (5V oder 3,3V), der Andere -12V (oder 0, -3V, -6V). Es wäre also erst mal die Spannungsfrage und Polarität zu prüfen. Ruhepegel kann man messen, für Pegel mit Daten braucht man ein Oszilloskop, darf auch ein Billigteil sein auf STM Basis ab 15€. Erst wenn das passt kann man sich um die richtigen Einstellungen kümmern. Baudrate, 8N1 oder andere. Nur dannn kommt man den Daten auf die Spur, vorher ist alles irgendwas.
:
Bearbeitet durch User
Hallo, wie wäre es, von dem Akkuhersteller einen Schaltplan für die sog. RS232 Schnittstelle anzufordern. Dann kennt man auch die Belegung der Westernbuchse und weiß, ob da ein TTL-Pegel, 3,3 V oder nativ RS232 (-12V - +12V) rauskommt. Dann hätten die Spekulationen ein Ende und man könnte zielführend arbeiten, da man auch wüsste, ob noch ein MAX232 dazwischengeschaltet werden muss. Ob Rx und Tx gekreuzt werden müssen kann man dann leicht experimentell ermitteln. Viel Erfolg wünscht Lothar
Vielleicht mal auch über Bluetooth nachdenken. Da wäre der ganze Kabel u. Adapter-Salat überflüssig und auch nicht mehr fehleranfällig. Das BT - Zeugs kostet heutzutage auch nicht mehr viel : https://www.amazon.de/AZDelivery-Bluetooth-Wireless-RF-Transceiver-Modul-serielle/dp/B0722MD4FY/ref=asc_df_B0722MD4FY/?tag=googshopde-21&linkCode=df0&hvadid=309009267279&hvpos=&hvnetw=g&hvrand=15097443914829780400&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9041776&hvtargid=pla-610593556497&psc=1&th=1&psc=1&tag=&ref=&adgrpid=61284885533&hvpone=&hvptwo=&hvadid=309009267279&hvpos=&hvnetw=g&hvrand=15097443914829780400&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9041776&hvtargid=pla-610593556497 Dazu noch ein BT-Stick (ca. 8 - 10 €) und man hat seine Com- Schnittstelle im Gerätemanager.
Heinz B. schrieb: > Vielleicht mal auch über Bluetooth nachdenken. Nu mal langsam...erst mal Ergebnisse bekommen. Dann ist alles möglich... Gruß Rainer
Heinz B. schrieb: > Vielleicht mal auch über Bluetooth nachdenken. Bluetooth hat der Akku an sich schon eingebaut, nur das ziel war es nicht für jedes gerät eine einzelne App zu haben und eventuell mit den Daten auch verschiedene Regeln zu erstellen. Das Bluetoothsignal dafür direkt anzuzapfen (außerhalb der Hersteller App) habe ich mir noch weniger zugetraut als der Weg über die serielle Schnittstelle.
Lothar S. schrieb: > wie wäre es, von dem Akkuhersteller einen Schaltplan für die sog. RS232 > Schnittstelle anzufordern. Dann kennt man auch die Belegung der > Westernbuchse und weiß, ob da ein TTL-Pegel, 3,3 V oder nativ RS232 > (-12V - +12V) rauskommt. So schwer ist es doch nicht, mit einem Multimeter mal den Ruhepegel nachzumessen - man kann daraus natürlich auch eine Diplomarbeit machen ;-( Und die Belegung der Westernbuchse steht in der oben verlinkten Beschreibung des Kommunikationsprotokolls.
Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen Lange Listen bitte als Datei anhängen ... You know?
Hi,
habe jetzt endlich mal dein pdf gelesen, da steht wirklich nur was von
RS232, bedeutet dein USB-Teil kann das nicht so einfach weils nur TTL
macht. Messe also unbedingt die Spannung an der Bat. Die Pins 5,7,8
unbedingt beachten
>7.Der externe Stromversorgungsanschluss der Batterie. Dieser Pin ist der >externe
Stromversorgungsstift der Batterie, der vom Pluspol des Akkus >abgeleitet wird.
Die Bat. hatte was für eine Spannung? Könnte also Tatsache sauberes
RS232 sein-> TX Spannung messen! Max232 an deinen Adapter anbauen(6V
einstellen) richtigen RS232 Adapter kaufen Rechner mit richtiger COM
suchen.
Viel Erfolg, Uwe
Heinz B. schrieb: > Das BT - Zeugs kostet heutzutage auch nicht mehr viel : > Egal wie billig es ist - das nützt überhaupt nichts, wenn es an dem Akkupack nicht funktioniert. Noch mal ganz deutlich: Die Wahrscheinlich ist hoch, dass das Akkupack eine RS232 Schnittstelle hat, aber die von dir verlinkten BT-Module haben eine TTL-Schnittstelle. Auch da fehlt, neben den richtigen Signalpegeln, genau die Invertierung, um die es hier die ganze Zeit geht.
Hab mal gemessen: Pin 2 (GND) zu Pin 4 RX = 0V Pin 2 zu Pin 5 (TX) = 3,0V Pin 6 zu 7/8 = 11,8v Heißt RS232?
:
Bearbeitet durch User
Stefan ⛄ F. schrieb: > ... > ... > Lange Listen bitte als Datei anhängen > ... > You know? Nun sein doch nicht gleich so böse, nur weil Jonas Schwierigkeiten mit Hex-Zahlen im Bereich 0x00 .. 0xff hat. Lass ihm doch seine schöne Liste, wenn er sich dann besser orientieren kann.
Hammer M. schrieb: > Heißt RS232? Nein, das heißt, Du hast vergessen, die Pins 6, 7 und 8 zu brücken. Also die bitte brücken und dann die Spannung an RX und TX nochmal messen.
Hammer M. schrieb: > Pin 2 zu Pin 5 (TX) = 3,0V > ... > Heißt RS232? Ein positiver Ruhepegel spricht eher gegen RS232. Hattest du bei der Messung die Brücke 6-7/8 drin?
Hallo hab nochmal gemessen, die Ergebnisse sind die selben, egal ob die Brücke 6 auf 7/8 drin ist oder nicht. Hab aber nur 6 auf 7 überbrückt. Oder muss ich 6 auf 7 UND 6 auf8? Meint ihr dieser Adapter könnte funktionirern: DIGITUS USB zu Seriell Adapter - RS232 Konverter https://www.amazon.de/DIGITUS-DA-70167-USB2-0-Seriell-Adapter/dp/B07VCG1GZJ/ref=sr_1_9?adgrpid=70560716549&dchild=1&gclid=CjwKCAiAyc2BBhAaEiwA44-wW_-zZD0XQFNFyXeXHREnUAMu8raM_Gnu7qL5J4Dwc8XWtchAnFGhPBoCAAQQAvD_BwE&hvadid=352741140709&hvdev=c&hvlocphy=9044487&hvnetw=g&hvqmt=e&hvrand=13040997618924261344&hvtargid=kwd-300354783251&hydadcr=26899_1772722&keywords=usb%2B-%2Brs232&qid=1614037466&sr=8-9&tag=googhydr08-21&th=1
:
Bearbeitet durch User
Wolfgang schrieb: > Und da kommt nun mal jede Sekunde AA 55 06 00 00 00 01 00 01 00 55 AA Ich zähle ~38 Bit per Millisekunde auf dem LA-Bild der Programmausgabe, also wohl 38400 Baud? LG, Sebastian
Wolfgang schrieb: > A. M. schrieb: >> Vielleicht sind die Pins des Schnittstellenadapters "falsch" beschriftet >> und du musst die Leitungen NICHT kreuzen. Ich hatte mal einen solchen >> und habe den LA gebraucht um das festzustellen. > > Dafür braucht man keinen LA, es hilft schon ein Multimeter. > Man kann einfach bei nicht an der Gegenstelle angeschlossenen > USB-X-Adapter auf beiden Leitung die Spannung gegen Gnd messen (TXD-Gnd, > RXD-Gnd). Die Situationen sind nicht vergleichbar (Softwareentwicklung, Bugverdacht, CMOS-Pegel, Pullup an RX,...). Das sollte eigentlich nur darauf hinweisen, dass manchmal Pins nicht so beschriftet sind, wie man es erwarten würde, was an unerwarteten Stellen zu Fehlern führen kann. Wolfgang schrieb: > Hammer M. schrieb: >> Pin 2 zu Pin 5 (TX) = 3,0V >> ... >> Heißt RS232? > > Ein positiver Ruhepegel spricht eher gegen RS232. Wir wissen nicht, wie das Messgerät angeschlossen war. Bei vertauschten Messspitzen könnten das tatsächlich auch -3,0V sein. Wäre aber trozdem die Schwelle zu undefiniert. Bei TTL Pegeln würde ich in der Größenordnung eher 3,3V erwarten. Hammer M. schrieb: > muss ich 6 auf 7 UND 6 auf 8? Laut Anleitung soll man beides verbinden. Laut Erläuterung sollten 7 und 8 jedoch intern verbunden sein. Du kannst das aber auch gerne nachmessen. Hammer M. schrieb: > Meint ihr dieser Adapter könnte funktionirern: > DIGITUS USB zu Seriell Adapter - RS232 Konverter Vermutlich, jedenfalls sollte der mit "normgerechten" Signalen arbeiten. Bietet der Hersteller eigene Adapter(kabel) oder Steuergeräte an? RJ45 entspricht bei diesem Einsatzzweck schließlich nicht der Norm. Kommst du an die Elektronik des Akkus heran?
:
Bearbeitet durch User
>> der MAX3232 nur noch +/-6V. Würde das dann reichen? Die RS232 ist für sichere Datenübertragung durch lange Kabel gedacht. Trotz Kabelkapazität soll nach z.B. 100m noch eine auswertbare Rechteckschwingung ankommen, daher der große Spannungshub. Für 38 kBaud sind das maximal 19,2 kHz Rechteck. Hier ist das Kabel vermutlich kürzer als 2m, dafür ist auch ein typischer Hub von +/-5,4V (Datenblatt MAX3232) noch mehr als ausreichend.
Hi,
>>> der MAX3232 nur noch +/-6V. Würde das dann reichen?
ja, aber dein Ruhepegel an TX der Bat. ist nicht normgerecht.(wenn
richtig gemessen)
Deshalb also mit höchster Vorsicht testen nicht das noch was kaputt
geht.
Deine Geschichte ist also recht chinesisch.
Viel Erfolg, Uwe
Was lange währt, wird endlich gut. Heute ist ein richtiger usb --> RS232 Adapter gekommen und nach dem ich alles verkabelt habe und Wolfgang schrieb: > AA 55 06 00 00 00 01 00 01 00 55 AA rausgeschickt und wirklich eine brauchbare Antwort bekommen. Vielen Dank für Eure Hilfe und Eure Geduld !!!!!!!!!! Jetzt habe ich aber nochmal eine Frage ;-) Wie schaffe ich es bzw. lerne es das Empfangene jetzt auch richtig zu lesen/übersetzen? Liebe Grüße
:
Bearbeitet durch User
Hi, >Wie schaffe ich es bzw. lerne es das Empfangene jetzt auch richtig zu >lesen/übersetzen? halte dich an dein PDF . Die Antwort auf 0006 ist 004d, beachte Low Byte first. Viel Erfolg, Uwe
Mario M. schrieb: > Arduino Fanboy D. schrieb: >> Alternativ, würde auch wohl sowas gehen, ebay: 313404350976 > > Bitte nicht diese billigen blauen Wandler kaufen, dir meist mit Prolific > -Chips bestückt sind. Blau hat nichts mit einem Chip zu tun! Es ist die allgemeine Kennzeichnung für RS-232 Buchsen/Stecker. Kriech mal hinter deinen PC und schau nach, was für eine Farbe die Buchse hat.
https://de.wikipedia.org/wiki/Datei:IMac_Bondi_Blue.jpg Das blaue transparente Design stammt vom Apple iMac von 1998. Farbkennzeichnungen kenne ich eher von PS2 (violett/grün) und USB (blau = USB3), hat RS232 auch eine?
Christoph db1uq K. schrieb: > hat RS232 auch eine Wäre mir neu. Bei unseren Laptop Docking Stationen ist die VGA Buchse blau, und die serielle schwarz. Der Parallelport ist bei vielen Rechnern rosa.
>Wie schaffe ich es bzw. lerne es das Empfangene jetzt auch richtig zu >lesen/übersetzen? Mit dem beigefügten Programm natürlich. Aber das kriegst du ja nicht zum rennen... Was für Werte interessieren dich denn genau? Wie willst du das aufrufen? Wie sollen die Daten gespeichert / weiterverarbeitet werden?
Hammer M. schrieb: > Wie schaffe ich es bzw. lerne es das Empfangene jetzt auch richtig zu > lesen/übersetzen? Ist doch super: 4D 00 -> 0x004d Batterieinformation Antwort 00 -> Gerät 0 01 01 00 -> Reserviert 04 -> Anzahl Batteriezellen 02 -> Lithiumeisenphosphat CE 0C -> 0x0CCE Erste Batteriezelle: 3,278V CD 0C -> 0x0CCD Zweite Batteriezelle: 3,277V CC 0C -> 0x0CCC Dritte Batteriezelle: 3,276V CA 0C -> 0x0CCA Vierte batteriezelle: 3,274V 18 00 -> 0x0018 Temperatur MOSFET: 24°C? 17 00 -> 0x0017 und so weiter ... LG, Sebastian
Also war es nun doch stilechtes RS232? Sieh an, sieh an. Bin ja fast neidisch auf deinen Akku, was man dem alles an Infos entlocken kann. Würde ich ja sofort aufm Display darstellen wollen. So mit Spannungsveflauf der Einzelzellen und Temperatur usw. coole Sache ...
Äxl schrieb: > Würde ich ja sofort aufm Display darstellen wollen Das hatte ich eigentlich auch vor. Am liebsten würde ich das mit diesem RS232 Adapter an einen RasPi anschließen.(https://www.tinkerforge.com/de/shop/rs232-v2-bricklet.html) Und dann alles über OpenHab auf ein Display werfen und ggf noch die ein oder andere Regel erstellen. Allerdings bin ich mir im Moment nicht 100% sicher, ob das nicht dann doch etwas zu kompliziert ist für mich.
Hammer M. schrieb: > Allerdings bin ich mir im Moment nicht 100% sicher, ob das nicht dann > doch etwas zu kompliziert ist für mich. Natürlich gibt es das nicht geschenkt. Aber Vorsicht: Es besteht die Gefahr, dass du was dabei lernst
Hammer M. schrieb: > Am liebsten würde ich das mit diesem RS232 Adapter an einen RasPi > anschließen. wenn es günstiger sein darf 1,76€ https://www.ebay.de/itm/2X-Serial-Port-RS232-zu-TTL-Konverter-Modul-Board-MAX3232-115200bps-GeschenRSXG/393038537191 4,48€ https://www.ebay.de/itm/Gehause-fur-DB9-D-Sub-9-Polig-Stecker-Buchse-DSUB-Steckverbinder/224140170973 6,99€ https://www.ebay.de/itm/Connecteur-Serie-DB9-Male-D-Sub-Dsub-9-Broches-a-Souder-RS232-Adaptateur/254873581931 macht 13,23€ Den MAX 3232 kann man in dem Gehäuse unterbringen, 4 Leitungen brauchst du eh zum PI und Stecker für die Pinleiste Du kannst aber auch gleich USB / RS232 am PI anstecken! 2,41€ https://www.ebay.de/itm/USB-2-0-Stecker-an-Serielle-RS232-DB9-Com-Port-Adapter-X8T5-Konverter-F5X3/313404350976
:
Bearbeitet durch User
Beitrag #6602651 wurde von einem Moderator gelöscht.
Sebastian W. schrieb: > 4D 00 -> 0x004d Batterieinformation Antwort > 00 -> Gerät 0 > 01 01 00 -> Reserviert > 04 -> Anzahl Batteriezellen > 02 -> Lithiumeisenphosphat > CE 0C -> 0x0CCE Erste Batteriezelle: 3,278V > CD 0C -> 0x0CCD Zweite Batteriezelle: 3,277V > CC 0C -> 0x0CCC Dritte Batteriezelle: 3,276V > CA 0C -> 0x0CCA Vierte batteriezelle: 3,274V > 18 00 -> 0x0018 Temperatur MOSFET: 24°C? > 17 00 -> 0x0017 > und so weiter ... Das kann ich inzwischen sogar nachvollziehen und "Übersetzten" zumindest mit der Hilfe einer Zahlenkonverter-Webseite ;-) Arduino Fanboy D. schrieb: > Es besteht die Gefahr, dass du was dabei lernst Dazu bin ich auch sehr gerne bereit. Hat jemand einen Tipp, wo ich mir etwas Wissen für mein Projekt anlesen kann? Bin ja bestimmt nicht der erste, der sowas versucht und vielleicht hat ja jemand einen Bericht zu einem ähnlichen Projekt verfasst, so dass auch ich den verstehe. Ziel ist OpenHab dazu zubringen, das was Sebastian gemacht hat automatisch zu tun.
:
Bearbeitet durch User
Hammer M. schrieb: > Ziel ist OpenHab dazu zubringen, das was Sebastian gemacht hat > automatisch zu tun. Du brauchst eine Schnittstelle für die Daten deines BMS. Das kann entweder ein OpenHAB Add-on sein, dass du dafür wahrscheinlich selber schreiben müsstest oder du greifst auf ein vorhandenes Add-on zurück. Wenn du die Daten vom BMS mit einem eigenen µC abfragst und ins MQTT-Protokoll übersetzt, könntest du das MQTT-Binding benutzen.
Hallo zusammen, der Thread ist zwar schon ein paar Tage alt, aber ich habe ein ganz ähnliches Problem wie der Thread Owner. Ich hoffe es ist okay wenn ich hier als Neuling beitrage und das nochmal aufwärme. Scheinbar ist ja auch das Problem von TO noch nicht gelöst (Raspberry an Batterie zum auslesen). Zuerstmal ein Danke für die geteilte Protokoll Doku und die CBT Software. Die hat ECHT geholfen ! Mein Bestreben ist auch, diese Batterie auszulesen und in eine Victron Infrastruktur mit einer Cerbo GX bzw. einem Raspberry mit Venus OS zu integrieren. Ich habe aus einem Womo eine Liontron Untersitz Batterie übernommen. Modell LTDUC180. Ist wohl hergestellt von Creabest und als Liontron gelabeled. Diese Batterie ist aus 2018 und hat schon zwei RJ45 Buchsen auf der Vorderseite. Die Linke ist nach Multimeter Messungen und der Doku nach RS232. Hier kann ich allerdings mit keinem gängigen Adapter irgendwas aus der Batterie bekommen. Weder mit Pin6 auf 7/8 gebrückt noch offen. Die rechte Buchse allerdings ist nach Doku RS485. Da ich für mein RS485 Smartmeter einen unter Windows funktionierenden Adapter habe, konnte ich mit der CBT Software zumindest mal eine funktionierende Verbindung zur Batterie herstellen. Verkabelung: PIN 1+2 = GND PIN 8 (braun) = RS485A PIN 7 (braun weiß) = RS485B Kommunikation klappt. Allerdings sind die Werte die in der Software angezeigt werden absoluter Blödsinn mit Ausnahme der Zellspannungen. Also Doku auseinander genommen. Im HTERM bekomme ich nach senden von aa 55 06 00 00 00 01 00 01 00 55 aa auch eine Antwort und war in der Lage die richtig zu dekodieren. Nächster Schritt für mich ist nun das ganze in ein Python Programm zu packen (nicht unbedingt meine stärkste Programmiersprache). Ich habe allerdings schon eine Liontron 100Ah mit Smart BMS erfolgreich über ein angepasstes Python Script in die Venus eingebunden für meine Insel Anlage. Liebe Grüße, Dierk
Hier mal als Anlage die Dekodierung laut Protokoll Doku mit Daten aus meiner Batterie. Was mir Probleme gemacht hat war z.b. der SOC oder die Gesamtspannung. Allerdings ist das mit gängigen Convertern eigentlich kein Problem. 00384F46 = Big Endian. Also 464F3800, bedeutet 13262 als Float Value. Laut Doku in mV, daher /1000. Also 13,262 Volt. Stimmt auffallend. Analog dazu der SOC: 9B250F46 = Big Endian. Also 460F259B, bedeutet 9161.4 als Float Value. Laut Doku durch 100, Also 91,614%. Stimmt auch auffallend. Jetzt nur noch in Software gießen...... Liebe Grüße, Dierk PS: Der Rechner hilft: https://gregstoll.com/~gregstoll/floattohex/
:
Bearbeitet durch User
Moin Moin Zusammen, ich hole diesen Thread mal aus der Versenkung... das CBT Tool läuft auf meinen Laptops leider nicht... bleibt einfach "Stumm" und tut nichts.. hat sich schon wer die Arbeit gemacht einen Treiber für Serialbattery oder für Victron Venus os zu schreiben? https://github.com/Louisvdw/dbus-serialbattery Mit freundlichen Grüßen
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.