Hi, ich lese über einen originalen Wlan-Dongle vom Hersteller, auf der eine eigene Firmware läuft, einem Wechselrichter die Input-Register aus. Das stellt kein Problem dar und läuft. Am Wechselrichter hängen jetzt Speicherblöcke, welche über den Wechselrichter per Canbus abgefragt werden. Der Hersteller kann über den originalen Wlan-Dongle die Speicher auslesen. Also Zellspannungen usw. Der Weg läuft also über den im Verbauten Arduino ESP07 in den Wechselrichter per Modbus, mit weiterer Abfrage der Speicher per Canbus. Im Wechselrichter steht ein Input-Register = 102 = BMS_ Cell1_Volt, in dem nichts steht. Als Erklärung zu diesen Werten steht dazu , "Detail information, refer to document: Growatt xxSxxP ESS Protocol;" In diesen Protokoll gibt es dann wieder Register zum abfragen. Gehe ich richtig in der Annahme, das man Register 102 aufruft und danach einen weiteren vom Speicher? Oder wie läuft das ab? Kann jemand dazu Erklärungen abgeben? Besten Dank im Voraus :-)
Was jetzt, Modbus oder Canbus? Modbus kennt keine "Unterregister". Modbus kennt zwei Arten von Registern mit 16-Bit-Werten und zwei Arten von Registern mit 1-Bit-Werten. Die 16-Bit-Werte werden als "input register" und "holding register" bezeichnet, letztere können auch beschrieben werden. Die 1-Bit-Werte werden als "discrete inputs" und "coils" bezeichnet, letztere können auch beschrieben werden. Alle Register werden bei 0 anfangend durchnumeriert, es kann bis zu 65536 Register jeden Typs geben. Es gibt davon abweichende Konventionen, bei der die Art des Registers nur bei der Darstellung in die Registernummer codiert wird, und dann wird bei 1 mit der Zählung begonnen. Eine Konvention beschränkt dadurch die Anzahl der verwendbaren Register auf 9999 je Typ: coils 1 bis 9999 discrete inputs 10001 bis 19999 input register 30001 bis 39999 holding register 40001 bis 49999 Das aber ist nur eine Art der Darstellung, tatsächlich werden bei allen Registerarten die Nummern 0 bis 9998 verwendet. Eine Erweiterung dieser Darstellungskonvention erlaubt die Verwendung aller möglichen Register: coils 1 bis 65536 discrete inputs 100001 bis 165536 input register 300001 bis 365536 holding register 400001 bis 45536 Aber auch hier werden im tatsächlichen Protokoll die Adressen 0 bis 65535 verwendet; das Protokoll sieht nämlich nur einen einzelnen 16-Bit-Wert für die Adressierung vor, und das ist nunmal der damit darstellbare Wertebereich. Mehr steckt nicht hinter Modbus.
Ralf P. schrieb: > Gehe ich richtig in der Annahme, das man Register 102 aufruft und danach > einen weiteren vom Speicher? Oder wie läuft das ab? Hä? Was möchtest du wissen? In diesem Handbuch steht die Cell 1 Voltage im Register 0x0071 (133 dezimal): https://watts247.com/manuals/gw/1_1xSxxP_ESS_protocol_rev%20_23_20171128.pdf Der Controller mit dem du Wechselrichter sprichts, besorgt sich den Wert entweder in dem Moment deiner Abfrage per CAN-Bus von den Slaves oder er speichert ihn zwischen, weil er die Slaves regelmäßig abfragt.
Naja, der Aufbau von Modbus ist mir schon etwas geläufig. Trozdem ein danke an @DerEinzigeBernd. @STK500-Besitzer der Register 133 zeigt mit aber nur 65535 an. 133 ist wie du schon sagtest der Register aus dem Growatt xxSxxP ESS Protocol 102 wäre laut Modbus-Tabelle für meinen Wechselrichter der Wert für BMS_ Cell1_Volt Es gibt halt zwei Protokolle. Das ist mein Problem. Entweder hat hier Growatt etwas grundsätzliches geändert oder ...
Ralf P. schrieb: > Es gibt halt zwei Protokolle. Das ist mein Problem. > Entweder hat hier Growatt etwas grundsätzliches geändert oder ... Welchen Wechselrichter hast du denn? DerEinzigeBernd schrieb: > Modbus kennt keine "Unterregister Modbus selber "nicht" (siehe Functioncode 0x2B "Encapsulated Interface Transport"). Man kann natürlich ein übergeordnetes Protokoll implementieren, bei dem Register als Adressregister der Unterregister verwendet wird. Man schreibt in ein HoldingRegister die Adresse des Unterregisters und liest dann auf der selben Holding- oder InputRegister-Adresse den Wert verschiedener Unterregister aus.
@STK500-Besitzer ich betreibe zwei Growatt SPF5000es als Inselnetz. Gruß
Ich gaube ich habe da was gefunden. In einer gerade gefundenen PDF scheint was im Holdig-Register zu stehen. Holding Register 75 und 80? Gruß
Ralf P. schrieb: > Ich gaube ich habe da was gefunden. > In einer gerade gefundenen PDF scheint was im Holdig-Register zu stehen. Und was? Immer wieder schade, wenn jemand irgendwelche Unterlagen zitiert, aber wieder diese noch einen Link darauf mitliefert. In den Unterlagen, die ich dazu gefunden habe, standen Randbemerkungen auf Chinesisch (oder so; zumindest eine Sprache, von der ich keine Ahnung habe). So gesehen, halte ich die Sache für Closed Source, und da mir kein (derartiger) Wechselrichter zur Verfügung steht, halte ich mich erstmal raus.
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.