Skip to content

BESS - EMS Architecture (combined Plant Control and EMS functionality)

This architecture stays simple at the plant-subsystem level (Grid, PV, Wind, BESS) while including the minimum necessary sub-blocks (devices + sensors + control services) to clearly satisfy Plant control and EMS functionality.

The architecture is based on the Spain requirements which extends EMS to include the Plant Control functionality.


1) REQ-EMS traceability (what proves we meet each requirement)

REQ ID Requirement intent Primary EMS sub-blocks Required subsystem blocks (devices + sensors) Key interfaces used as evidence
REQ-EMS-01 Active power control at PCC PCC Tracking Controller, Mode and Compliance Manager, Ramp and Limit Manager, PV-Wind-BESS Coordinator CT/PT, PCC meter, PV inverter controller, Wind converter/controller, BESS PCS, asset measurements PCC measurements to EMS; EMS dispatch to PV/Wind/PCS; historian curves of PCC P tracking
REQ-EMS-02 Reactive power / cosphi / voltage mode at PCC PCC Tracking Controller, Mode and Compliance Manager, Ramp and Limit Manager, Coordinator CT/PT, PCC meter (V, Q), PV/Wind/PCS reactive capability, asset measurements PCC V/Q feedback; EMS Q or cosphi setpoints; historian curves showing Q/cosphi tracking
REQ-EMS-03 Ramp management Ramp and Limit Manager, PCC Tracking Controller, Coordinator PV/Wind/PCS controllers that accept ramp-limited setpoints; PCC meter Ramp-limited setpoint steps; measured dP/dt and dQ/dt from PCC meter and logs
REQ-EMS-04 PV-BESS coordination Coordinator, Ramp and Limit Manager, Mode Manager PV inverter controller + measurements; BESS PCS + measurements; BMS (SOC/limits/alarms); Wind controller if present Allocation logs; PV curtailment commands; BESS charge/discharge commands; SOC constraint handling evidenced in historian
REQ-EMS-05 Telemeasurement variables Telemetry and Protocol Gateway, Historian and Evidence Pack, Time Sync Service PCC meter, breaker/protection IED, PV/Wind/PCS measurements, BMS SOC/limits Time-stamped telemetry streams with quality flags and defined variable list
REQ-EMS-06 Update rate and continuity Telemetry Gateway (buffering/quality), Time Sync Service, Managed Switches, Historian All measurement sources; operator link Demonstrable update rate (e.g., 1–5 s) and gap handling; time sync health; comms-loss events
REQ-EMS-07 Fault behavior / safe state Mode and Compliance Manager (state machine), Alarm and Event Manager, Remote I/O, PCC Tracking Controller Breaker/protection IED + status, BMS protections, asset controllers Logged fallback transitions; trips/alarms; defined hold/stop behavior; recovery steps
REQ-EMS-08 Logging and traceability Historian and Evidence Pack, Alarm and Event Manager, HMI/Engineering, Cyber and Access Control All sources plus configuration items Evidence pack with curves, event logs, parameter snapshots, audit trail

2) System architecture diagram (EMS centric)

flowchart LR

%% =====================
%% External entity
%% =====================
subgraph EXT ["Grid Operator"]
  TSO["REE / DSO Control Center"]
end

%% =====================
%% EMS (as validated for Spain Requirement)
%% =====================
subgraph EMS ["EMS"]

  subgraph SW ["SW controllers and services"]
    ModeMgr["Mode and Compliance Manager<br/>(P/Q/V/cosphi modes, enable/disable, fallback states)"]
    PCCLoop["PCC Tracking Controller<br/>(closed-loop tracking using PCC measurements)"]
    RampLim["Ramp and Limit Manager<br/>(dP/dt, dQ/dt, caps, priorities, constraints)"]
    Alloc["PV-Wind-BESS Coordinator<br/>(allocation, curtailment, charge/discharge split)"]

    Telemetry["Telemetry and Protocol Gateway<br/>(operator link + plant comms, buffering, quality flags)"]
    Alarm["Alarm and Event Manager<br/>(SOE, state changes, trips, comms alarms)"]
    Historian["Historian and Evidence Pack<br/>(logs, curves, parameter snapshots, reports)"]

    HMI["Local HMI / Engineering Station<br/>(commissioning, tuning, parameter mgmt)"]
    TimeSvc["Time Sync Service<br/>(NTP/PTP client, time health)"]
    Sec["Cyber and Access Control<br/>(users/roles, audit, segmentation policies)"]
  end

  subgraph EMSHW ["Interfaced HW (EMS side)"]
    Server["Industrial Controller / Server<br/>(real-time runtime)"]
    RemoteIO["Remote I/O<br/>(hardwired status/interlocks)"]
    Net["Managed Switches<br/>(VLAN, QoS, redundancy)"]
    FW["Firewall / VPN Router<br/>(operator link, segmentation)"]
    TimeSrc["Time Source<br/>(GPS or NTP/PTP Grandmaster)"]
  end

end

%% =====================
%% Plant subsystems (only devices + sensors needed for control and compliance)
%% =====================
subgraph GRID ["Grid and PCC Subsystem"]
  GridLine["Grid line / feeder"]
  MainACBus["Main AC Bus / PCC"]
  CTPT["CT/PT sensors at PCC"]
  PCCMeter["PCC revenue / power-quality meter<br/>(V, I, P, Q, f, energy)"]
  BreakerIED["PCC breaker + protection IED<br/>(status, trip, alarms)"]
end

subgraph PV ["PV Generator Subsystem"]
  PVACLine["PV AC Line"]
  PVInv["PV inverter controller(s)<br/>(P/Q or cosphi commands)"]
  PVSense["PV electrical measurements<br/>(P, Q, V, I, status)"]
end

subgraph WIND ["Wind Generator Subsystem"]
  WindACLine["Wind AC Line"]
  WindConv["Wind turbine converter/controller(s)<br/>(P/Q or cosphi commands)"]
  WindSense["Wind electrical measurements<br/>(P, Q, V, I, status)"]
end

subgraph BESS ["BESS Subsystem"]
  BessACLine["BESS AC Line"]
  PCS["BESS PCS (inverter) controller(s)<br/>(P/Q commands)"]
  BessDCLine["BESS DC Line"]
  PCSSense["PCS electrical measurements<br/>(P, Q, V, I, status)"]
  BMS["BMS<br/>(SOC, limits, alarms, protections)"]
  BatteryArray["Battery array / racks<br/>(temperature, voltage, current sensed by BMS)"]
end

%% =====================
%% Power Lines (Electrical Flow)
%% =====================
GridLine === MainACBus
MainACBus === PVACLine
MainACBus === WindACLine
MainACBus === BessACLine

PVACLine === PVInv
WindACLine === WindConv
BessACLine === PCS
PCS === BessDCLine
BessDCLine === BatteryArray

%% Bold orange style for power lines
linkStyle 0,1,2,3,4,5,6,7,8 stroke:orange,stroke-width:4px;

%% =====================
%% Electrical Sensing
%% =====================
CTPT -.- MainACBus
PVSense -.- PVACLine
WindSense -.- WindACLine
PCSSense -.- BessACLine

%% =====================
%% Time and hosting
%% =====================
TimeSrc -->|"time"| TimeSvc
TimeSvc -->|"time status"| Alarm
TimeSvc -->|"time status"| Historian

Server --> ModeMgr
Server --> PCCLoop
Server --> RampLim
Server --> Alloc
Server --> Telemetry
Server --> Alarm
Server --> Historian

FW <--> Net
Net --> Telemetry
Net --> Historian
Net --> HMI

TSO <--> |"telemetry, status, setpoints"| FW

%% =====================
%% Measurement chain (HW -> EMS)
%% =====================
CTPT --> PCCMeter
PCCMeter -->|"PCC V,I,P,Q,f,energy"| Telemetry
BreakerIED -->|"breaker status, trip, alarms"| Telemetry
RemoteIO <--> |"hardwired DI/DO"| BreakerIED
Telemetry -->|"PCC measurements"| PCCLoop

PVSense -->|"PV meas"| Telemetry
WindSense -->|"Wind meas"| Telemetry
PCSSense -->|"PCS meas"| Telemetry
BMS -->|"SOC, limits, alarms"| Telemetry

Telemetry -->|"time-stamped streams"| Historian
Alarm -->|"events and SOE"| Historian

%% =====================
%% Control chain (EMS -> assets)
%% =====================
ModeMgr -->|"selected mode + targets"| PCCLoop
RampLim -->|"ramps + caps + priorities"| PCCLoop
BMS -->|"limits"| RampLim
BMS -->|"limits"| Alloc

PCCLoop -->|"plant-level response"| Alloc
Alloc -->|"P,Q or cosphi setpoints"| PVInv
Alloc -->|"P,Q or cosphi setpoints"| WindConv
Alloc -->|"P,Q setpoints"| PCS

PVInv -->|"status"| PVSense
WindConv -->|"status"| WindSense
PCS -->|"status"| PCSSense
BatteryArray -->|"cell and rack signals"| BMS

3) Functionality of each sub-block

3.1 EMS SW controllers and services

Sub-block Type What it does (functional responsibilities)
Mode and Compliance Manager SW Selects operating mode (P, Q, cosphi, voltage), validates enable/disable conditions, manages fallback/safe states and recovery.
PCC Tracking Controller SW Uses PCC meter feedback (P, Q, V, f) to close the loop and generate plant-level response commands that achieve setpoints at PCC.
Ramp and Limit Manager SW Enforces configured ramps and caps; applies constraints (asset limits, SOC limits, thermal limits), and prioritization rules.
PV-Wind-BESS Coordinator SW Splits plant response among PV, Wind, and BESS; curtails PV/Wind and commands BESS charge/discharge to respect PCC limits and constraints.
Telemetry and Protocol Gateway SW Normalizes plant telemetry, applies timestamps and quality flags, buffers and forwards to operator protocol; also ingests remote setpoints/commands.
Alarm and Event Manager SW Monitors alarms, comms loss, state transitions; records sequence-of-events (SOE) with timestamps.
Historian and Evidence Pack SW Stores measurements and events; generates curves, reports, and parameter snapshots for commissioning and compliance evidence.
Local HMI / Engineering Station SW Operator view and commissioning tools: tuning ramps, enabling modes, starting test sequences, exporting reports.
Time Sync Service SW Maintains time synchronization for timestamps; flags drift/loss and propagates time health status.
Cyber and Access Control SW Authentication/authorization, audit logs, configuration change traceability, security policies coordination with firewall/switches.

3.2 EMS interfaced hardware

Sub-block Type Purpose
Industrial Controller / Server HW Hosts the EMS runtime and ensures deterministic control execution and local storage for evidence.
Managed Switches HW Industrial network backbone enabling VLAN segmentation, QoS for control/telemetry, redundancy, and diagnostics.
Firewall / VPN Router HW Segments plant networks and terminates secure operator link; enforces allowed services and remote access policy.
Remote I/O HW Hardwired interface for breaker/interlocks/safety signals and other digital/analog points that must not rely on a comms protocol.
Time Source (GPS or NTP/PTP) HW Provides a stable time reference for compliance-grade timestamps and SOE ordering.

3.3 Grid and PCC subsystem

Sub-block Type Purpose
CT/PT sensors HW Provide electrical sensing inputs (V, I) required to derive P/Q and validate PCC conditions.
PCC revenue / PQ meter HW Primary closed-loop measurement source for P/Q/V/f/energy at PCC (basis for acceptance testing).
Breaker + protection IED HW Provides breaker state, trips, protection alarms, and permissive interlocks; a key input for safe-state logic.
Grid line / feeder Power Represents the point of interconnection; EMS interacts via measurements and breaker status rather than directly controlling the grid.

3.4 PV generator subsystem

Sub-block Type Purpose
PV inverter controller(s) HW+FW Accept plant setpoints (P/Q/cosphi), implement local limits/protections, and provide status feedback.
PV electrical measurements HW+FW Provides P/Q/V/I and inverter status to EMS for allocation verification and telemetry export.

3.5 Wind generator subsystem

Sub-block Type Purpose
Wind converter/controller(s) HW+FW Accept plant setpoints (P/Q/cosphi), apply turbine/drive-train limits, and provide status feedback.
Wind electrical measurements HW+FW Provides P/Q/V/I and converter status to EMS for allocation and telemetry export.

3.6 BESS subsystem

Sub-block Type Purpose
BESS PCS controller(s) HW+FW Executes EMS P/Q setpoints for charging/discharging and reactive support within PCS limits.
PCS electrical measurements HW+FW Provides PCS P/Q/V/I and status (available, faulted, limited) to EMS.
BMS HW+FW Measures SOC, temperatures, cell/rack voltages/currents; computes allowable charge/discharge limits; raises alarms/protections.
Battery array / racks Power Physical storage; EMS does not control cells directly, but is constrained by BMS limits and protections.

4) Interfaces (nature + signals + physical units)

The table below is written so it can be reused as an interface control document (ICD) starter.

Interface ID From -> To Nature Medium / protocol (typical) Primary signals Units / format Timing expectations (typical)
IF-01 CT/PT -> PCC meter Electrical sensing Copper wiring Voltage and current sensing kV, A (scaled) Continuous analog sampling (meter internal)
IF-02 PCC meter -> Telemetry Gateway Measurement telemetry Ethernet, Modbus TCP or IEC 61850 (typical) PCC V, I, P, Q, f, energy, quality kV, A, MW, MVAr, Hz, MWh; quality flags 1 s typical; configurable 1–5 s for tests
IF-03 Breaker/protection IED -> Telemetry Gateway Status + alarms Ethernet (IEC 61850 GOOSE/MMS, Modbus, or vendor) Breaker open/close, trip, protection alarms Boolean/enums + timestamps 100 ms–1 s typical; alarms event-driven
IF-04 Remote I/O <-> Breaker/IED (or switchgear aux) Hardwired DI/DO Dry contacts, 24 V DI/DO (typical) Interlocks, permissives, E-stop chain, breaker aux Boolean 10–100 ms scan typical
IF-05 PV inverter ctrl -> Telemetry Gateway Measurements + status Ethernet (Modbus TCP/IEC 61850/vendor) PV P, Q, V, I, availability, limiting MW, MVAr, kV, A; enums 1 s typical
IF-06 Wind converter ctrl -> Telemetry Gateway Measurements + status Ethernet (Modbus TCP/IEC 61850/vendor) Wind P, Q, V, I, availability, limiting MW, MVAr, kV, A; enums 1 s typical
IF-07 PCS -> Telemetry Gateway Measurements + status Ethernet (Modbus TCP/IEC 61850/vendor) PCS P, Q, V, I, state, limiting MW, MVAr, kV, A; enums 1 s typical
IF-08 BMS -> Telemetry Gateway Constraints + alarms Ethernet (Modbus TCP/vendor) SOC, SoH (optional), charge/discharge limits, temps, alarms %, %, MW or A; degC; enums 1–5 s typical; alarms event-driven
IF-09 Telemetry Gateway -> PCC Tracking Controller Control feedback Internal SW API / shared memory PCC measurements + quality flags MW, MVAr, kV, Hz, flags Control cycle e.g., 100–500 ms typical
IF-10 EMS Coordinator -> PV inverter controller Dispatch setpoints Ethernet (Modbus/IEC 61850/vendor) P setpoint, Q setpoint or cosphi target, enable MW, MVAr or cosphi; Boolean 0.5–2 s typical; ramped
IF-11 EMS Coordinator -> Wind converter controller Dispatch setpoints Ethernet (Modbus/IEC 61850/vendor) P setpoint, Q setpoint or cosphi target, enable MW, MVAr or cosphi; Boolean 0.5–2 s typical; ramped
IF-12 EMS Coordinator -> PCS Dispatch setpoints Ethernet (Modbus/IEC 61850/vendor) P setpoint (charge/discharge), Q setpoint, enable MW, MVAr; Boolean 0.5–2 s typical; ramped
IF-13 Time Source -> Time Sync Service Time distribution NTP or PTP Time, sync quality UTC time; offset metrics Continuous; health checked seconds-minutes
IF-14 EMS -> Operator (via FW) Telemetry export IEC 60870-5-104 / ICCP / IEC 61850 (site-defined) Variable list: PCC + assets + alarms + modes + SOC MW, MVAr, kV, A, Hz, MWh, %, enums, timestamps 1–5 s typical; event-driven alarms
IF-15 Operator -> EMS (via FW) Remote control Same as above Mode commands, P/Q/cosphi targets, enable/disable MW, MVAr, cosphi; Boolean Command/ack within seconds
IF-16 Telemetry/Alarm -> Historian Evidence logging Internal SW API Time series + SOE + config snapshots All above + metadata Continuous; tamper-evident storage preferred

Quick check: where each requirement “lands” in the diagram

  • REQ-EMS-01/02/03 (P/Q/cosphi/V + ramps): PCC meter + PCC Tracking Controller + Ramp/Limit + Coordinator + asset controllers
  • REQ-EMS-04 (coordination): Coordinator + BMS limits + PV/Wind/PCS setpoint interfaces
  • REQ-EMS-05/06 (telemetry variables + continuity): Telemetry Gateway + Time Sync + Historian + managed network
  • REQ-EMS-07 (fault/safe state): Mode Manager state machine + breaker/IED + BMS protections + event logs
  • REQ-EMS-08 (logging/evidence): Historian/Evidence Pack + alarms/events + parameter snapshots + audits