RS232 Schnittstelle, Terminalprogramm und Wechselrichter

  • Hallo,


    ich suche schon ein paar Wochen danach, wie ich mich mit meinen Hybrid-Wechselrichtern (Baugleich Axpert MKS 5K) unterhalten kann, komme aber nicht weiter, trete auf der Stelle. Vielleicht kann mir irgend jemand kleinen Tipp helfen, das wäre supernett!


    Es ist nicht so dass ich gar keine Ahnung von Elektrotechnik hätte, aber die letzte 30 Jahre habe ich mich nicht besonders mit seriellen Schnittstellen und Protokollen beschäftigt. Da ist, seit ich mich energieautark machen will anders geworden.


    Ich würde mich gerne mit meinen Wechselrichtern unterhalten und Einstellungen darin verändern. Das klappt mit dem Programm "WatchPower" auch ganz gut, sowohl über den USB-Port, als auch über den RS232-Port.

    Der Wechselrichterhersteller hat mir auch das "RS232 communication Protocol" zukommen lassen, aber egal welchen Befehl daraus ich per serieller Schnittstelle absetze, der Wechselrichter antwortet mit Nacc<cr>.

    Könnte das vielleicht heissen: No Acknowledge ?


    Dass ich überhaupt eine Antwort vom Wechselrichter bekomme, bedeutet doch aber auch, dass der Wechselrichter mit meinem Comouter und dem Terminalprogramm kommuniziert (und ich die Einstellungen am Terminalprogramm (2400Baud 8Bit noParity 1Prüfbit Entertaste=<cr>) richtig vorgenommen habe, oder?


    Wenn ich das serielle Kabel aus der Buchse des Wechselrichters entferne und dann einen Befehl eintippe, bekomme ich gar keine Antwort.

    Also gehe ich davon aus, dass Terminalprogramm und Wechselrichter miteinander reden, der Wechselrichter ist nur sehr sehr einsilbig, er sagt immer "Nacc".


    Was könnte ich falsch machen?

    Ich frage mich: "Ist das so trivial" und "Sehe ich den Wald nicht mehr vor lauter Bäumen?"

    Wieso redet mein Wechselrichter nicht mit mir?


    Muss ich vielleicht für jeden Befehl vielleicht noch einen crc berechnen (nach welcher Formel?) und diesen dem Befehl anhängen? Und könnte das dann nicht auch mein Terminalprogramm netterweise für mich erledigen?


    Ich verzweifle noch!


    Die Befehle in dem Handbuch zur seriellen Kommunikation sehen immer in etwas so aus:

    QPI<cr>s oder QFVW<cr> oder QMD<cr> ...

    Die Antwort des Wechselrichters sollte dann z.B. für den Befehl "QPI<cr>s" wie folgt aussehen:

    (PI<NN><cr> ; PI ist eine Ganzzahl im Bereich von 0-9


    ( Startbyte

    A Produktbezeichnung

    B Unterbezeichnung das Produkts

    C VA Typ

    D H/LV Typ

    EE Jahr

    FF Monat

    G Hersteller-ID

    XXXXX Seriennummer


    Ich bekomme einfach keine vernünftige Antwort, egal was ich eintippe, es kommt immer nur "Nacc".


    Sicher mache ich nur eine winzige Kleinigkeit falsch, aber das schon seit Tagen.

    Vielleicht würde mir ein kurzer Tipp die Augen öffnen und ich käme endlich weiter.

    HILFE!

  • ...kann es sein das Du die parallel Modelle hast und dort evt erst den zur Kommunikation gewünschten WR ansprechen mußt also zb. 1...3 voranstellst ??...

    In einem Forum wurde der Verdacht geäußert, dass die Kommunikation möglicherweise deswegen nicht funktioniert, weil ich zu jedem Befehl auch noch die Prüfsumme (crc) mit angeben muss, wenn ich den Wechselrichter via RS232 von einem Terminalprogramm aus anspreche, nur leider kann ich mit dieser Information erstmal nicht allzu viel anfangen. Zumal ich gar nicht weiß, mach welcher Formel sich die Prüfsumme denn berechnet. Ausserdem hätte ich vom Terminalprogramm erwartet, dass es Prüfsummen bestimmt viel leichter berechnen kann, als ich (z.B. mit dem Taschenrechner).
    Irgendwie hänge ich hier fest, ich komme einfach nicht weiter.

    Ich denke mir nur, wenn WatchPower mit meinen Wechelrichtern redet, dann sollte ich das doch auch können. Nur das WIE erschließt sich mir derzeit nicht.


    Ja, ich habe die Wechselrichter-Modelle mit installierter Parallel-Option.
    Die Paralleloption ist eine Platine die in den WR einegnaut wird und die zwei Buchsen besitzt, durch die Wechselrichter dann untereinander verbunden werden, damit sie zusammen arbeiten.
    Ich betreibe drei Stück HYB5032M (= Steca Solarix PLI 5000-48 = Axpert MKS 5K) zum Verbund zusammengeschaltet im Drehstrombetrieb. Das funktioniert auch einwandfrei.

    Wenn ich ein serielles Kabel oder ein USB-Kabel an einen der drei Wechselrichter anschließe, dabei ist es egal, an welchen der drei ich das Kabel anschließe, dann sehe ich in Watch Power auch die oder den anderen Wechselrichter, kann lesend und schreibend darauf zugreifen und somit Einstellungen abändern.

  • Welches Terminalprogramm (unter Windows) kann ich denn verwenden, daß das kann?

    Und ja, ich habe die Wechselrichter inklusive Paralleloption. Ich werde mal versuchen eine 1 oder 01 oder 001 voranzustellen, um die einzelnen Geräte zu adressieren. Über den Erfolg/Mißerfolg werde ich berichten.

  • Moin,


    aus alten Zeiten kenn ich da Hyperterminal, aber HTerm soll auch nicht schlecht sein.


    mfg

    Kann Hterm denn den crc berechnen? Ich habe nichts dazu gefunden.

    Berechen Terminalprogramme denn überhaupt die Checksumme, und wenn ja, welche? Es gibt ja unendlich viele Checksummerberechnungspolynome, welches zu verwenden ist, weiß ich zudem nicht. Oder wird üblicherweise immer dasselbe verwendet.

    Der Hersteller hat mir freundlicherweise folgenden Printscreen geschickt,

    das deutet darauf hin, dass dieses Polynom zur Verschlüsselung verwendet wird.

    Trotzden habe ich keine Ahnung, wie ich Hterm beibringen soll, dieses Verschlüsselungspolynom zu verwenden.

    Und selbst wenn ich den CRC für einen spezifischen Befehl berechnet haben sollte, wie baue ich dann den Befehl zusammen aus Befehl und CRC?
    Fragen über Fragen.

    Vielleicht findet sich ja hier im Forum eine netter Mensch, der mir über diese Hürden hilft.

  • Hm, sicher, dass du das schon bei den Eingaben brauchst? Ich koennte mir vorstellen, dass nur bei den Ausgaben es ne CRC-Summe gratis dazu gibt und du quasi entscheiden kannst, wie wichtig es dir ist die korrekte Uebertragung zu pruefen.

  • Hm, sicher, dass du das schon bei den Eingaben brauchst? Ich koennte mir vorstellen, dass nur bei den Ausgaben es ne CRC-Summe gratis dazu gibt und du quasi entscheiden kannst, wie wichtig es dir ist die korrekte Uebertragung zu pruefen.

    Ich versuche nun schon seit Wochen endlich mal die Befehler des RS232-Handbuchs meiner Wechselrichter an den Wechselrichter zu übermitteln, aber er zeigt mir IMMER den Stinkefinger:

    NAKss\cr


    Bald habe ich keine Lust mehr. dabei gäbe es doch so schöne Befehle in diesem Handbuch.

    Aber mir reichts, immer nur NAKss\cr NAKss\cr NAKss\cr NAKss\cr ist mir auf die Dauer zu monoton. Wenn mir doch nur jemand helfen könnte...

  • Hast Du es mit Befehl+CRC probiert ?? Ist die Antwort auch NAKss\cr ??


    https://www.lammertbies.nl/comm/info/crc-calculation

    Nein, ich wüsste gar niht, wie ich das in dem Terminalprogramm eingeben sollte.
    Wenn ich z.B. QMD<cr> als Befehl eingeben will, dann tippe ich das so ein:

    und drücke dann Enter, wobei ich die Enter-Taste so belegt habe, dass sie beim Drücken nur ein "cr" sendet.

    Wenn ich das tue, bekomme ich aber immer (egal was ich eingebe) NAKss\cr als Antwort. Also mache ich was falsch. Aber was?

    Sollte ich wirklich immer von Hand den crc berechnen, dann in ASC umrechnen und an den Befehl QMD anhängen und dann Enter drücken, um eine Antwort zu bekommen?

    Könnte das nicht ein Terminalprogramm gleich für mich erledigen? Und wenn ja, welches Terminalprogramm kann das?
    Ich bin für jeden Tipp dankbar!

  • Benutzer bkohl hatte auch den Vorschlag gemacht, die Kommunikation doch einfach mal mitzuschnueffeln.


    Deine Software benutzt USB um mit den WR zu kommunizieren? Die Software Wireshark kann auch unter Windows mitlesen.


    Bei einem Befehl wie QMD<cr> aendert sich ja nix, da ist die CRC ja sowieso immer gleich. Auf Deutsch heisst das, du kannst die mitgelesenen Befehle (incl. CRC) einfach weiterverwenden.

  • Ich werde BKohls Vorschlag folge leisten, bin nur noch nicht dazu gekommen und hatte auch gehofft, dass es eine einfachere Lösung gäbe.

    Die Software "Watchpower.exe" funktioniert sowohl mittels USB,als auch mittels direkter serieller Schnittstelle.

    Wireshark habe ich mir eben runtergeladen, werde es bei Gelegenheit ausprobieren.

    Danke für die Hinweise.

  • Es ist tatsächlich crc16 (X-Modem). Die Routine unten funktioniert auf meinem ATtiny. (Arduino). Klaus, kannst Du bitte das komplette Protokoll posten? Mich würde interessieren, ob man den per Befehl EIN/AUS/BYPASS-Schalten kann.

    Dateien

    • crc16.c.txt

      (997 Byte, 3 Mal heruntergeladen, zuletzt: )

    Citroen C-Zero, 35qm PV, 12kWh LiFePo (15x250Ah, Winston), 4kW Taiwan-Inverter, DIY BMS
    Hausdämmung 16cm PS 0.035