Sweden
Loading...
India
Loading...

Energy Management System Specification

Overall requirements:

  • The EMS software shall run on a raspberry pi gen 4 or 5 with remote access.
  • The EMS software shall allow easy configuration to add new meters, inverters and battery systems with minimum implementation needed.
  • The EMS software shall communicate with the inverter(s) and grid meter(s) via Modbus (either TCP default or RTU).
  • The EMS software shall communicate with the battery system via CAN.
  • The EMS software shall communicate with the cloud via Ethernet using API calls.

SW layers recommendation

image

HW Topology:

  • The EMS reads data from the grid meter and the inverter via modbus, it also gets data from the BMS via CAN.
  • The load power consumption is always guessed based on the remaining power information. E.g. GridPower = PvPower + LoadPower + InverterPower.
  • If there is a PV installation, then the EMS shall communicate to either the PV inverter or the PV meter via modbus.

image

Communication Topology:

The following communication signals are expected between the EMS and the rest of the system.

image

EMS <-> BMS communication:

  • The EMS reads power and current limits from the BMS.
  • The EMS sends battery connection/disconnection requests (contactor closing/opening).
  • This thread can be critical and shall run at 200-500ms cycle.

  • The EMS also reads critical battery informations and reports them the cloud. These informations include Min/Max Temp, Min/Max cell voltage, Min/max soc, Avg Soc, battery status...

  • This thread is less critical and shall run at 2000-5000ms cycle.

EMS <-> Inverter communication:

  • The EMS controls the inverter active power set point and the inverter mode (ON, OFF, standby, island mode... depending on the datasheet of the inverter).
  • It also reads the reported actual active power that the inverter is producing.
  • The EMS shall always take the inverter power limit into consideration.
  • The EMS shall always take the BMS power limits into consideration.
  • The EMS shall always take the BMS current limits into consideration.
  • The EMS shall read the inverter internal temperature.
  • This thread can be critical and shall run at 200-500ms cycle.

EMS <-> power meter:

  • The EMS reads the following information from the power meter:
  • Actual active power
  • Phase 1,2,3 voltage
  • Phase 1,2,3 current
  • Frequency
  • This thread is not critical but is performance related and shall run at 200-500ms cycle.

EMS <-> Cloud communication:

  • The EMS shall be able to change state via API call (or webhook).
  • The EMS shall start in Init state to initialize the HW and establish the communication with the surrounding HW. Once this is achieved successfully, it shall transition to Stop state. If it fails, it shall transition to Error state.
  • Once in the stop state, the EMS shall wait a command from the cloud to transition to Standby state. The contactors are open in the stop state.
  • Once the EMS receives a command from the cloud to transition to the standby state, it closes the contactors.
  • In Standby state the EMS waits for a command from the cloud to change to an active state (peak shaving, backup, self cons. state).
  • The EMS shall always go back to Standby state to switch between active states (e.g. switch between self cons. and peak shaving).
  • Changing mode thread can happen at 1000-2000 ms as it is not time critical.

image

Init State

The EMS SW starts in this mode and it will establish communication with the surrounding HW. Once the communication is successfully established, the EMS shall transition to the Stop state. At this point the contactors of the battery are OPEN. Failure to initialize HW will lead to a transition to the Error state.

Stop state

In this state the contactors of the battery are to be requested OPEN. This is a safe state where the EMS waits for cloud command to move to standby.

Standby state

This state will request the contactors to CLOSE. The battery system is energized and ready. In this state, the EMS is waiting for a new command from the cloud to transition to and a function state.

Function states

TBD later...

Error state

This is a safe state and a deadlock state. This state can be entered from any other state. This state will OPEN the battery contactors. This state will automatically set the inverter active power set point to 0W.