EMS (Energy Management System) is a word becoming common and common in recent times especially because of the massive spread of renewable energy sources.

Often the EMS can be identified as a part of a SCADA (Supervisory Control and Data Acquisition) system and to be more accurate we can consider the EMS as the "logic controller component " contained into a SCADA system. 


A working model of  EMS Online Simulator is available  24/7

In recent months I have spent a lot of time testing the various Modbus TCP Server libraries available for Arduino for a HIL project on which I am working.

After numerous tests with the various libraries available, this is the conclusion I came to:

  Uno Vs   Mega 2560

 In this article I'll describe how to run an IEC60870-5-104 server into a raspberry Pi3  (runtime Copalp Straton v9.1)

Straton for Rpi


Few days ago , working on a Wago PFC controller (32bit ARM CPU), I get the need to manage a LREAL data (64bit)

The electric power grid transmits power from a generator to the end user using Alternating Current (AC), which oscillates at a specific frequency (typically 50 Hz for Europe). A gap between power generation and loads causes the grid frequency imbalance. If demand is higher than supply, the frequency will fall, leading to brownouts and blackouts. If utilities generate more power than consumers are using, the frequency goes up, potentially damaging the grid or the electric devices plugged into it.

Recently, rapid fluctuations in the grid have increased due to the increasing penetration of highly variable renewable resources such as wind turbines and PV panels.

In this scenario, frequency primary control is a real-time power-adjustment (ramp up or down) made from generators in order to keep the grid at the restoring the network frequency nominal rate (50Hz-60Hz).

In this article I'd like to reproduce the Frequency Primary Regulation (FPR)  algorithm into a Codesys 3.5 (SP10 Patch 2) IDE and run it into a Raspberry Pi.

The concept of FPR is this:


 σ[%] = permanent speed drop (statism) = (Δf/fo) * (Pmax / ΔP)