Sweden
Loading...
India
Loading...

Emulation setup

Setup and purpose:

Setup Eclipse Edge project as per link below and by starting by chapter 2: https://openems.github.io/openems.io/openems/latest/gettingstarted.html

Once the project is running, go in the Apache server under http://localhost:8080/system/console/configMgr and disable the following: - Simulator DataSource. - Simulator GridMeter acting. - Simulator EssSymmetric Reacting

Instead create an existing meter and an existing ESS by selecting a new off the shelve meter and BESS system.

1. Meter:

"Meter Phoenix contact", we will call it meter1 (component-ID = meter1). We have to specify a modbus link: Modbus-ID = modbus0 and modbus unit-id=1 Set the meter type to Grid. Since the meter is expecting a modbus link called modbus0, we need to create one, so in apache felix, we can select "Bridge Modbus/tcp": Component-id=modbus0 Ip-address= port=1502 Now, the meter0 has been added and a modbus link defined, we then need to assign the meter to the controller (in this case, "Controller ESS Balancing"), set in the field Grid-meter-ID=meter1. OBS: make sure this is reflected in the meter target filter field: "(&(enabled=true)(!(service.pid=Controller.Symmetric.Balancing.c7ff529b-6d5f-4ff7-ae63-ebdca5e8907f))(|(id=meter1)))" The setup for the phoenix contact meter is complete.

[Obsolete] To simulate a real phoenix contact meter, one can setup a modbus slave on a raspberry pi (or any computer) in the same local network and by running the script attached called python3 meter_modbus_slave.py (python 3.5.3). The modbus map of the meter is located under: io.openems.edge.meter.phoenixcontact/src/io/openems/edge/meter/phoenixcontact/PhoenixContactMeterImpl.java There one can find the modbus register (Addresses) for all the required commmands.

2. Energy Storage System:

Add "ESS FENECON Commercial 40". Component-id: ess3 Modbus-id: modbus1 Note: make sure the modbus target filter reflects the modbus1 change: (&(enabled=true)(!(service.pid=Ess.Fenecon.Commercial40.6201db44-7078-4b9e-9ca4-c4fe63ff0c6d))(|(id=modbus1)))

Now that the energy storage is added, its modbus link needs to be added. Add a "Bridge modbus/tcp", component-id: modbus1 ip-address:

port=1503 Now, ess3 has been added and a modbus link defined, we then need to assign the energy storage system to the controller (in this case, "Controller ESS Balancing"), set in the field ESS-ID=ess3. OBS: make sure this is reflected in the meter target filter field: (&(enabled=true)(!(service.pid=Controller.Symmetric.Balancing.c7ff529b-6d5f-4ff7-ae63-ebdca5e8907f))(|(id=ess3))) The setup for the fenecon commercial 40 is done.

[Obsolete] To simulate a fenecon commercial 40 unit on a rpi (or a computer) run the attached script called ess_modbus_slave.py by calling: python3 ess_modbus_slave.py --port 1503 --unit 100

The modbus map of the meter is located under: io.openems.edge.ess.fenecon.commercial40/src/io/openems/edge/ess/fenecon/commercial40/EssFeneconCommercial40Impl.java There one can find the modbus register (Addresses) for all the required commmands.

3. Simulation:

In order to simulate a realistic scenario, one can run the "ess_meter_modbus_slave.py" script that will simulate both a phoenix contact meter and a fenecon commercial40 battery system. It will emulate a load (house consumption) of 5000W for 60s and then 0W for 60s periodically. This profile can be changed for other scenarios.

Other units (meter, ess):

One can add units that are not defined yet in openEMS by following this tutorial: https://openems.github.io/openems.io/openems/latest/edge/implement.html