The energy management system (EMS) is the project’s operating system, it is the software that is responsible for controls (charging and discharging), optimisation (revenue and health) and safety (electrical and fire). The EMS coordinates the inverters, battery management system (BMS), breakers and fire system.
An Energy Management System collects input data, like measured grid power and state of charge of a battery, and processes it with its control algorithms to derive setpoints which are sent to the hardware devices. (see "Input-Process-Output" below).
Such an open approach would free up resources and allow companies to focus on their core competencies. The OpenEMS Association was founded launched in November 2018 to maintain, promote and develop an EMS platform that includes all the positive aspects of an open- source approach.
As this is a recurrent problem, it would be favorable if an open source platform would be available that can provide the users with pre-programmed protocol modules that can easily be implemented into the system to allow the communication between the EMS and the other components of the system.
For productive use, the software typically runs on an Industrial IoT Gateway or a development board like a Raspberry Pi with GNU/Linux Operating System. The usage of a high-level programming language for an EMS leads to a trade-off between easy and efficient software development and loss of hard real-time capabilities.
The EMS subscription is expensive (more than 1% of annual revenue). The EMS is causing downtime (EMS availability of less than 99% is detrimental). The EMS has cybersecurity concerns or is not addressing foreign equipment risks (e.g., cyber attack through the BMS).