NEWS
JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.
-
@dieter_p
Nein ich habe nichts mehr weiter getestet.Interessant wäre ob dies vielleicht mit einem RJ45 Splitter funktionieren würde.
Weiss aber nicht ob die Ports des BMS dafür gemacht sind, riskieren will ich das ehrlich gesagt nicht -
Hi,
ich habe bereits weiter getestet und habe es hinbekommen mit zwei instanzen und einem Modbusgateway 3 Batterien auszulesen.
Muss mir nur noch was einfallen lassen wie ich das noch schön mache damit das auch optisch was aussieht.
Wenn ich Zeit habe werde ich meine Lösung genauer beschreiben.
-
Wie versprochen meine Settings bzw. mein Testaufbau.
Werde das Gateway wahrscheinlich in ein Gehäuse einbauen und die RJ45 Buchsen auch .Batterie A (Adresse 0 (Master):
_address name description unit type len factor offset formula role room poll wp cw isScale 4608 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 TempMos °C uint16be 1 0.1 0 level true false false false 4749 Spannung V uint32be 2 0.001 0 level true false false false 4751 Watt W uint32be 2 0.001 0 level true false false false 4753 Strom A int32be 2 0.001 0 level true false false false 4755 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 Alarm uint32be 2 1 0 level true false false false 4759 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 BalanStatus uint8le 1 1 0 level true false false false 4760 SOC % uint8be 1 1 0 level true false false false 4761 ReCap Ah int32be 2 0.001 0 level true false false false 4763 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 Zyklen uint32be 2 0.001 0 level true false false false 4767 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 SOCSOH % uint8le 1 1 0 level true false false false 4769 Precharge uint8be 1 1 0 level true false false false 4770 UserAlarm uint16be 1 1 0 level true false false false 4771 RunTime uint32be 2 1 0 level true false false false 4773 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 BatVol V uint16be 1 0.01 0 level true false false false 4856 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 DeviceID string 8 1 0 level true false false false 5128 Hardware_Version string 4 1 0 level true false false false 5132 Software_Version string 4 1 0 level true false false false 5140 Name1 string 6 1 0 level true false false false 5156 Installationsdatum string 4 1 0 level true false false false 5160 SerienNummer string 8 1 0 level true false false false 5168 Name2 string 8 1 0 level true false false false 5176 Pin_Code string 8 1 0 level true false false false
Batterie B+C (Adresse 1 + 2 (Slaves):
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 4608 1 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 1 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 1 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 1 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 1 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 1 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 1 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 1 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 1 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 1 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 1 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 1 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 1 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 1 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 1 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 1 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 1 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 1 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 1 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 1 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 1 TempMos °C uint16be 1 0.1 0 level true false false false 4749 1 Spannung V uint32be 2 0.001 0 level true false false false 4751 1 Watt W uint32be 2 0.001 0 level true false false false 4753 1 Strom A int32be 2 0.001 0 level true false false false 4755 1 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 1 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 1 Alarm uint32be 2 1 0 level true false false false 4759 1 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 1 BalanStatus uint8le 1 1 0 level true false false false 4760 1 SOC % uint8be 1 1 0 level true false false false 4761 1 ReCap Ah int32be 2 0.001 0 level true false false false 4763 1 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 1 Zyklen uint32be 2 0.001 0 level true false false false 4767 1 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 1 SOCSOH % uint8le 1 1 0 level true false false false 4769 1 Precharge uint8be 1 1 0 level true false false false 4770 1 UserAlarm uint16be 1 1 0 level true false false false 4771 1 RunTime uint32be 2 1 0 level true false false false 4773 1 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 1 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 1 BatVol V uint16be 1 0.01 0 level true false false false 4856 1 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 1 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 1 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 1 DeviceID string 8 1 0 level true false false false 5128 1 Hardware_Version string 4 1 0 level true false false false 5132 1 Software_Version string 4 1 0 level true false false false 5140 1 Name1 string 6 1 0 level true false false false 5156 1 Installationsdatum string 4 1 0 level true false false false 5160 1 SerienNummer string 8 1 0 level true false false false 5168 1 Name2 string 8 1 0 level true false false false 5176 1 Pin_Code string 8 1 0 level true false false false 4608 2 Zelle 1 V uint16be 1 0.001 0 level true false false false 4609 2 Zelle 2 V uint16be 1 0.001 0 level true false false false 4610 2 Zelle 3 V uint16be 1 0.001 0 level true false false false 4611 2 Zelle 4 V uint16be 1 0.001 0 level true false false false 4612 2 Zelle 5 V uint16be 1 0.001 0 level true false false false 4613 2 Zelle 6 V uint16be 1 0.001 0 level true false false false 4614 2 Zelle 7 V uint16be 1 0.001 0 level true false false false 4615 2 Zelle 8 V uint16be 1 0.001 0 level true false false false 4616 2 Zelle 9 V uint16be 1 0.001 0 level true false false false 4617 2 Zelle 10 V uint16be 1 0.001 0 level true false false false 4618 2 Zelle 11 V uint16be 1 0.001 0 level true false false false 4619 2 Zelle 12 V uint16be 1 0.001 0 level true false false false 4620 2 Zelle 13 V uint16be 1 0.001 0 level true false false false 4621 2 Zelle 14 V uint16be 1 0.001 0 level true false false false 4622 2 Zelle 15 V uint16be 1 0.001 0 level true false false false 4623 2 Zelle 16 V uint16be 1 0.001 0 level true false false false 4676 2 Max_Zelle_Spannung V uint16be 1 0.001 0 level true false false false 4677 2 Zellen_Diff V uint16be 1 0.001 0 level true false false false 4678 2 Max_Zelle_Nummer uint8be 1 1 0 level true false false false 4678 2 Min_Zelle_Nummer uint8le 1 1 0 level true false false false 4746 2 TempMos °C uint16be 1 0.1 0 level true false false false 4749 2 Spannung V uint32be 2 0.001 0 level true false false false 4751 2 Watt W uint32be 2 0.001 0 level true false false false 4753 2 Strom A int32be 2 0.001 0 level true false false false 4755 2 Temperatur 1 °C int16be 1 0.1 0 level true false false false 4756 2 Temperatur 2 °C int16be 1 0.1 0 level true false false false 4757 2 Alarm uint32be 2 1 0 level true false false false 4759 2 BalanCurrent A uint16be 1 0.001 0 level true false false false 4760 2 BalanStatus uint8le 1 1 0 level true false false false 4760 2 SOC % uint8be 1 1 0 level true false false false 4761 2 ReCap Ah int32be 2 0.001 0 level true false false false 4763 2 MaxCap Ah uint32be 2 0.001 0 level true false false false 4765 2 Zyklen uint32be 2 0.001 0 level true false false false 4767 2 SOCCycleCap Ah uint32be 2 0.001 0 level true false false false 4769 2 SOCSOH % uint8le 1 1 0 level true false false false 4769 2 Precharge uint8be 1 1 0 level true false false false 4770 2 UserAlarm uint16be 1 1 0 level true false false false 4771 2 RunTime uint32be 2 1 0 level true false false false 4773 2 Laden_Erlaubt uint8le 1 1 0 level true false false false 4773 2 Entladen_Erlaubt uint8be 1 1 0 level true false false false 4836 2 BatVol V uint16be 1 0.01 0 level true false false false 4856 2 TempBat 3 °C int16be 1 0.1 0 level true false false false 4857 2 TempBat 4 °C int16be 1 0.1 0 level true false false false 4858 2 TempBat 5 °C int16be 1 0.1 0 level true false false false 5120 2 DeviceID string 8 1 0 level true false false false 5128 2 Hardware_Version string 4 1 0 level true false false false 5132 2 Software_Version string 4 1 0 level true false false false 5140 2 Name1 string 6 1 0 level true false false false 5156 2 Installationsdatum string 4 1 0 level true false false false 5160 2 SerienNummer string 8 1 0 level true false false false 5168 2 Name2 string 8 1 0 level true false false false 5176 2 Pin_Code string 8 1 0 level true false false false
-
@elektroniker86
Ganz herzlichen Dank!
Jetzt habe ich eine ZielvorgabeAuf den ersten Blick liegt die Lösung darin um mehrere BMS auszulesen, dass der Master und die Slaves anders aus der Instanz angesprochen werden: "Master" vs. "Mehrere IDs".
Ich hatte immer verstanden, dass der RS485-1 zur Kommunikation zu einem WR immer ein Slave sein kann. Im Fall vom Master (Adresse 0) scheint das aber ein Irrweg.
Werde mich mit der hoffentlich funktionierenden Lösung blad melden.
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
-
@dieter_p sagte in JK BMS mit Modbus Adapter über RS485 zu TCP einbinden.:
Liest du bei dir nur Werte oder kannst Du auch Schreiben und Werte ändern?
Hi guten Abend!
nee ich lese nur aus. Mit dem schreiben habe ich mich nicht beschäftigt. Normalerweise stellt man das einmal ein, korrigiert mal was aber dann sollte es das im besten Fall gewesen sein.
Aber falls Du da weiter bist und die passenden Register und Settings hast, darfst Du sie gerne hier posten.Beste Grüße
-
Hi
ja gerne. Im Prinzip bin ich ja völlig bei dir. Empfinde es auch wenig "spannend" alle Zelleinzelspannungen und Widerstände dauerhaft zu monitoren oder gar zu trenden. Ist mir definitiv zuviel unnützlicher Traffic und Daten. Ich hol mir Dauerhaft ein paar Werte wie das Maximum der Zelldiferenzspannung. Wird es kritisch/komisch muß man eh genauer schauen was los ist.
Da aber ich aber ehrlicherweise nicht mehr an eine so "einfache" Lösung geglaubt hab, hab mir einen 4-Kanal RS485 zu Ethernet Konverter günstig geschossen und warte noch auf Lieferung.
-
@dieter_p
Ich weiß nicht welches System du hast, aber falls es zum Beispiel Victron ist, bekommst du über MQTT auch den Zelldrift ausgelesen.Mfg
-
@sierra
Danke ja, geht auch über Modbus TCP vom Victron ausgelesen. -
@dieter_p
Ja sollte gehen, aber aus irgendeinen Grund ist es bei mir immer 0V, keine Ahnung warum das bei mir über Modbus nicht geht.
Egal ob ich ID 100, 225, 227 verwende. -
Bei mir geht es um ein SMA Setup da bekommt man vom Batteriewechselrichter nur die Gesamt DC Spannung und den Strom ausgelesen. Mehr kommt da leider nicht.
Deshalb komme ich nur über die Batterie zu den Werten.