Hallo Forum,
Teilweise schon hier diskutiert: ESS that can talk with OpenEMS using Modbus TCP, möchte ich dennoch ein neues Thema eröffnen. Es geht um die Steuerung eines hybriden System bestehend aus Solaredge-WR mit angeschlossener 48V-Batterie (ebenfalls Solaredge).
Eine Ansteuerung über die übliche applyPower()-Methode scheint nicht so einfach, da der Batterieteil kein Register hat um die Schein- und/oder Blindleistung zu setzen.
Solaredge selbst beschreibt den Vorgang so:
Initial configuration
-
Set ExportConf_Ctrl (0xE000) to 0 to disable Export Configuration //This is used only when the inverter manages the power control. It is not applicable to Remote Control mode hence need to be disabled
-
Set StorageConf_CtrlMode (0xE004) to 4 “Remote”
-
Set StorageConf_AcChargePolicy (0xE005) to 1 “Always Allowed” // Applicable if AC charge is needed.
-
StorageConf_AcChargeLimit (0xE006) //This is relevant only if StorageConf_AcChargePolicy (0xF705) is set to 2 or 3
-
StorageConf_BackupReserved (0xE008) // only applicable to inverters that support backup hardware functionality
-
Set StorageConf_DefaultMode (0xE00A) recommend to set to 1 “Charge excess PV” //default fallback mode in case of communication interruption.Use the following registers for dynamic commands:
-
StorageRemoteCtrl_CommandTimeout (0xE00B): Sets the time duration in seconds for the new command (e.g. can be renewed at each write cycle for a few seconds).
-
StorageRemoteCtrl_CommandMode (0xE00D): Sets the operating mode during the defined time frame according to the selected Storage Charge/Discharge Mode
-
StorageRemoteCtrl_ChargeLimit (0xE00E): Battery charge power limit in watts up to the battery max power
-
StorageRemoteCtrl_DischargeLimit (0xE010): Battery discharge power limit in watts up to the battery max power
Appendix B – Configuration Examples
NOTE:
This is effective only for exporting power to the AC. When importing power from the AC, the inverter power is defined by the Battery power limit and PV production (within the static maximum limits set for the Inverter).
Configurations examples for dynamic commands:
Discharge 1500W for 15 minutes:
- StorageRemoteCtrl_CommandTimeout = 900 the initial configuration after the time out.
- StorageRemoteCtrl_CommandMode = 4
- StorageRemoteCtrl_DischargeLimit = 1500Charge 2000W from the AC for 15 minutes:
Charge 2000W for 15 minutes:
- StorageRemoteCtrl_CommandTimeout = 900
- StorageRemoteCtrl_CommandMode = 3
- StorageRemoteCtrl_ChargeLimit = 2000
Also alles sehr umständlich. Verschiedene Modi müssen für Charge/Discharge-Änderungen umgeschaltet werden.
Bisher habe ich mich noch nicht getraut diese Operationen komplett in der applyPower()-Methode umzusetzen. Ein einfaches Umschalten zwischen Laden und Entladen scheint also nicht möglich. Wie ist eure Meinung dazu? Macht es Sinn alles in applyPower() zu “verpacken” oder sind das zu viele Schreibvorgänge in zu kurzer Zeit?
Vielleicht hat jemand etwas mehr Erfahrung zum Thema SolarEdge?
Bin für jeden Tipp danbkbar…
Gruß,
Klinki