Which programs your data passes through, and where it goes, in pictures
A page for technical reviewers. Structure, cycles, standards and security from the field RTU to KEPCO and the Korea Power Exchange, in five parts.
From the field to the market, six programs share the work
At every plant, one field RTU reads and protects the equipment. On the server side the work is split, so if one program stops, plant operation and protection do not falter.
Swipe sideways to see the whole picture.
The VPP operator system, forecasting and KESCO reporting receive plant values only through the collection server’s gateway. Forecasting never reads the EMS database directly.
Field collector
Per-device communication · 0.2 s reads · protection · commands · stop and keep records if cut off.
If it stops · It first sets the PCS to 0 kW standby, then shuts down.
Collection server
Receives RTU values · live storage · history · events · aggregates.
If it stops · RTUs stop charging and keep records. One alert to the admin.
Operations screens
PC and phone screens · phone alerts · permissions · settings.
If it stops · Plant operation and protection continue. External monitoring alerts us.
VPP operator system
Portfolios · bids · KEPCO link · forecast scheme · dispatch · settlement.
If it stops · Plants follow their base timetable. There is an emergency stop switch.
Generation forecast
24-hour forecasts from KMA forecasts and actuals · scored daily. Bounded so it can be sold separately.
If it stops · Bids continue on a fallback formula, with one alert.
KESCO reporting
Statutory ESS data every minute · logs kept as evidence.
If it stops · On restart it records “reporter stopped” and resends events it could not deliver.
The field RTU reads, decides, writes, and holds when cut off
The right link per device
Modbus TCP · RTU over TCP · direct serial · CAN. Read by each maker’s and model’s register map into one common format.
Protection first
Climate, fire, battery and PCS protection are asked first, then timetable and orders.
Sent on change
Checked every 0.2 s · commands go out only when they change. For A/C, read first and write only what differs.
Bundled · compressed
A heartbeat every 10 s · solar sites send 30-second bundles to stay within 1 GB of LTE a month.
| Device | Read cycle |
|---|---|
| PCS · battery · PV meter | 0.2 s (field-measured 0.24–0.36 s) |
| Fire safety · climate | 1 s |
| Air conditioners | 5 s |
| RTU health | Twice a day + at start · CPU · memory · disk |
| Commands | On change · 0.4 s at worst |
The KEPCO DSO link follows the KSGA-025-19-2 timetable
How an order reaches the PCS
- KEPCO order± adjust output this hour
- VPP operator systemPlan ± adjustment = target
- Collection serverSends the target to the RTU at once
- Field RTUWithin 0.2 s · protection first, then the target
Generation forecasting is an independent program, and the EMS is one of its customers
- ForecastsKMA short-range forecasts · 8 a day · stored as published
- LearningLast 90 days per plant · fault capacity removed
- Forecast24 hours · hourly slots · clear-sky output × temperature · sky
- SubmissionVPP 09:30 the day before · KPX 10:00 · 17:00
- ScoringNext morning · the version submitted vs actuals · in the open
Error = | forecast − actual | ÷ available capacityAvailable capacity = PV capacity minus failed inverter capacity
Security is checked at every layer, and data is kept for a long time
- A separate encrypted VPN per plant · on termination, that plant’s keys are revoked first
- Server access by key only
- One access key per plant · the server stores only a hash
- Every plant number in a request is checked against the key — other plants’ values are refused
- Programs also hold their own keys
- Four roles · menu permission and “plant access” are checked separately
- Five failures in 15 minutes lock the account for 15 minutes · members see only people sharing their plants
- DB passwords and alert keys live only in the server environment, not config files
- VPP operator API keys are encrypted in the DB
- 10-minute raw data 1 year · hourly aggregates 5 years · daily DB backup · monthly backups 10 years
- Aggregates keep grid inflow separately — so rules like “three times a year means suspension” can be counted
- Schema changes only through versioned files