IEC 60870-5-104 server (port 2404)
Platí pro verzi NPA R04: 2.15.beta2 · Vytvořeno: 2026-07-16
Jednotka NPA R04 se umí chovat jako RTU — řízená stanice protokolu IEC 60870-5-104 („104"). Nadřazený systém (dispečink distributora, SCADA, agregátor) se k jednotce připojí jako klient a dostává měření a signalizace (spontánně při změně, na generální dotaz, případně cyklicky) a může posílat povely regulace (stupně výkonu, setpointy, Q stupně, nabíjení/vybíjení BESS). Rozhraní je obsahově obdobou Modbus TCP tabulky — místo čísel registrů se používají adresy informačních objektů (IOA).
Vše se konfiguruje na webu jednotky: menu IEC 104 (viditelné pro úroveň admin a vyšší). Po instalaci je server vypnutý a žádný povel není povolen — výchozí stav je bezpečný.
1. Rychlé zprovoznění
- Otevřít menu → IEC 104.
- V kartě Profily distributorů kliknout na profil podle protistrany (ČEZ Distribuce / EG.D / PRE / Obecný) — předvyplní časovače, režim povelů a mapu datových bodů (kap. 5). Pozor: přepíše stávající mapu bodů.
- V kartě Masteři vyplnit IP adresu (případně masku) dispečinku a zvolit práva — jen monitorování, nebo monitorování + povely.
- Nastavit společnou adresu ASDU (CA) — přiděluje ji vždy distributor ke konkrétní výrobně.
- Zapnout Server zapnut a kliknout uložit a restartovat server.
- Stav ověřit dole na kartě serveru a na stránce Info (kap. 7).
- Tlačítkem Export IOA tabulky (CSV) vygenerovat podklad a odsouhlasit adresní tabulku s protistranou; finální IOA od distributora případně upravit v tabulce datových bodů.
2. Nastavení serveru
| Pole | Význam | Výchozí |
|---|---|---|
| Server zapnut | zapnutí/vypnutí celého IEC 104 serveru | vypnuto |
| Port | naslouchající TCP port | 2404 |
| Společná adresa ASDU (CA) | adresa stanice; přiděluje distributor | 1 |
| k / w | okna potvrzování rámců | 12 / 8 |
| t0 / t1 / t2 / t3 [s] | časovače spojení dle normy (t1 = čekání na potvrzení, t3 = keep-alive TESTFR) | 30 / 15 / 10 / 20 |
| Timeout výběru (SBO) [s] | jak dlouho platí select před execute | 30 |
Pokročilé hodnoty (k/w, t0–t3) odpovídají normě a běžně se nemění — výjimkou je EG.D, který vyžaduje t1 = 30 s a t3 = 30 s (profil EG.D je nastaví sám). Změna nastavení serveru vyžaduje tlačítko uložit a restartovat server — restartuje se jen IEC 104 server, ne celá jednotka; běžící spojení se ukončí a master se sám znovu připojí.
3. Masteři (kdo se smí připojit)
Jednotka podporuje max. 2 souběžné mastery (např. dispečink distribuce + agregátor). Master je určen IP adresou, případně rozsahem (IP + maska):
| Pole | Význam |
|---|---|
| IP adresa / Maska | odkud se master smí připojit; spojení z jiné adresy se odmítne |
| Práva | zakázán / jen monitorování / monitorování + povely |
| Čas (C_CS) | master smí synchronizovat čas jednotky povelem C_CS_NA_1 (kap. 6) |
| SBO | povely od tohoto mastera jen v režimu select-before-operate (kap. 4) |
- Každý master má vlastní frontu událostí a stav spojení — spontánní zprávy dostávají oba nezávisle, generální dotaz jednoho neovlivní druhého.
- Nové spojení téhož mastera (typicky po výpadku) nahradí staré.
- Povely smí posílat jen master s právem monitorování + povely; povel od jiného se odmítne negativním potvrzením.
- Při konfliktu povelů dvou masterů platí poslední
povel (stejně jako u webu/Modbusu); každý povel se loguje se
zdrojem
iec104a IP klienta.
4. Datové body (co a kam se posílá)
Tabulka datových bodů je jediná mapa rozhraní — každý řádek je jeden informační objekt (IOA). Body jsou dvojího druhu:
- měření / signalizace — hodnota z jednotky směrem na dispečink,
- povel — příkaz od dispečinku směrem do regulace.
| Sloupec | Význam |
|---|---|
| IOA | adresa informačního objektu (1–16 777 215); finální čísla přiděluje distributor |
| Druh | měření/signalizace × povel |
| Typ ASDU | formát přenosu (viz níže) |
| Zdroj / povel | odkud se hodnota čte, resp. který povel se provede (kap. 4.1, 4.2) |
| Deadband | práh spontánního přenosu — integrální delta kritérium: odchylky od poslední přenesené hodnoty se sčítají a při naplnění prahu se hodnota přenese (0 = přenést každou změnu) |
| Režim | spontánně (při změně) / jen GI (pouze v generálním dotazu) / cyklicky (s periodou v sekundách) |
| Masteři | kterým masterům se bod posílá / kdo smí povel (1, 2, nebo oba) |
| Aktivní | vypnutý bod se nepřenáší a povel na něj se odmítne |
Podporované typy ASDU: M_ME_TF_1 (36, float s časovou značkou), M_SP_TB_1 (30, jednobit s časem), M_DP_TB_1 (31, dvoubit s časem) pro monitorování; C_SC_NA_1 (45, jednoduchý povel), C_DC_NA_1 (46, dvojitý povel), C_SE_NC_1 (50, setpoint float) pro povely. Spontánní přenosy a signalizace nesou časovou značku CP56Time2a v UTC; odpověď na generální dotaz jde bez časových značek (varianty 36→13, 30→1, 31→3), jak předepisuje norma.
Pole Scale převádí jednotky interní hodnoty (vždy W,
V, A…) na jednotky dohodnuté s protistranou — např. 1e-6
pošle výkon ve W jako MW.
4.1 Zdroje měření a
signalizací (Zdroj)
| Zápis | Hodnota |
|---|---|
sum|SKUP|item[|avg] |
součet (s avg průměr) veličiny item přes
zařízení skupiny — např. sum|TML|P = činný výkon obchodního
měření |
locmeas|FVE+BESS+…|item |
součet veličiny přes rozpadová místa uvedených typů — např.
locmeas|FVE|P |
bin|NÁZEV |
binární vstup (jednobit) |
dp|NÁZEV_OFF|NÁZEV_ON |
dvoubitový stav ze dvou binárních vstupů (1 = vypnuto, 2 = zapnuto, 0/3 = neurčitý) |
state|KLÍČ |
číselná hodnota stavu jednotky (klíč z NState) |
stupen|KLÍČ|N |
signalizace stupně: 1, když je stav KLÍČ roven N —
např. stupen|SPG_reg|2 = „platí stupeň P2" |
totalstop |
signál Total stop |
syserr |
signalizace poruchy (systémová chyba > 0) |
tmle|KLÍČ |
energie obchodního měření |
4.2 Povely
(Zdroj / povel)
| Povel | Typ ASDU | Účinek |
|---|---|---|
P0 … P4 |
C_SC_NA_1 | stupeň regulace činného výkonu výrobny (přepínačová logika — provede se jen povel ZAP/SCS=1) |
QL375, QL185, Q0,
QC185, QC375 |
C_SC_NA_1 | stupně regulace jalového výkonu |
IP1 … IP4 |
C_SC_NA_1 | stupně příkonu — nabíjení BESS |
DCH0 … DCH4 |
C_SC_NA_1 | stupně vybíjení BESS |
P_PROC |
C_SE_NC_1 | setpoint činného výkonu výrobny [%] |
COSFI |
C_SE_NC_1 | setpoint účiníku cos φ |
Q_PROC |
C_SE_NC_1 | setpoint jalového výkonu |
BESS_PROC |
C_SE_NC_1 | setpoint výkonu BESS [%] |
Povely se mapují na stejné vnitřní povely regulace jako zápisy z
Modbusu a webu; v logu jednotky mají zdroj iec104. Ve
firmware jsou k dispozici všechny — aktivní je jen to, co je v
tabulce zapnuto, a jen pro mastery s právem povelů. Povel na
neznámé/vypnuté IOA nebo od mastera bez práv se odmítne negativním
potvrzením (ACTCON s P/N=1).
Režimy provedení povelu:
- direct operate — master pošle rovnou ACT (execute); výchozí režim, vyžaduje ho EG.D;
- select-before-operate (SBO) — je-li u mastera zaškrtnuto SBO, musí před provedením poslat select (potvrdí se) a do timeoutu výběru execute se stejnou hodnotou; execute bez platného výběru se odmítne. Vyžaduje ČEZ. Výběr je vázán na spojení a lze jej zrušit deaktivací (COT=8).
5. Profily distributorů
Tlačítka v kartě Profily distributorů předvyplní parametry serveru a vygenerují výchozí mapu datových bodů podle požadavků konkrétního provozovatele distribuční soustavy. Profil je jen výchozí šablona — všechno zůstává poté editovatelné. Generování přepíše stávající mapu bodů.
| ČEZ Distribuce | EG.D | PRE | Obecný | |
|---|---|---|---|---|
| režim povelů | SBO vyžadováno | direct operate | kostra ¹ | direct operate |
| synchronizace času C_CS | povolena (master 1) | zakázána (jen NTP) | ¹ | dle nastavení |
| časovače t0/t1/t2/t3 | 30/15/10/20 s | 30/30/10/30 s | 30/15/10/20 s | 30/15/10/20 s |
| výchozí IOA mapa | kostra, čísla dodá ČEZd (VP_D) | dle přílohy č. 1 EG.D (IOA 1, 49, 50–54, 71–79, 150–154, 171–179, 458–470, 3020…) | kostra ¹ | TML + výrobna + stupně P + setpointy |
¹ Podniková norma PRE (KA 508) není veřejná — profil se založí jako obecná kostra a doplní se po obdržení podkladů od PREdistribuce.
Společnou adresu ASDU a finální IOA přiděluje vždy distributor — po vygenerování profilu proto tabulku odsouhlaste přes Export IOA tabulky (CSV) a čísla případně upravte.
6. Synchronizace času (C_CS_NA_1)
Master s právem Čas (C_CS) smí poslat povel synchronizace času:
- běží-li na jednotce NTP synchronizace, čas se nemění (povel se jen potvrdí) — NTP má vždy přednost;
- bez NTP (jednotka odříznutá od internetu) se čas z povelu nastaví do systémových hodin.
Časy se vyměňují v UTC. EG.D synchronizaci telegramem zakazuje — profil EG.D právo automaticky vypne.
7. Diagnostika
- Stránka Info — řádek
IEC104:ukazuje port, CA, počet bodů a každé aktivní spojení (IP, číslo mastera, stav STARTDT, délku fronty). Karta serveru na stránce IEC 104 zobrazuje totéž. - Log jednotky — události protokolu mají prefix
IEC104:(spojení, odmítnuté adresy, povely včetně zdroje a IP, chyby sekvence, timeouty). - Fronta událostí — při výpadku spojení se změny hromadí ve frontě (max. 2000 na spojení); při přetečení se zahazují nejstarší — master si po připojení obnoví celý obraz generálním dotazem.
- Testovací klient bez závislostí:
test/iec104_test.py(spojení, GI, spontánní přenosy, povely).
8. Zabezpečení a omezení
- Přístup je omezen ACL (IP/maska masterů) — spojení odjinud se okamžitě odmítne. Provoz se předpokládá po VPN nebo oddělené síti dispečinku; distributoři vyžadují oddělení sítě dispečinku od sítě výrobny.
- Šifrování na protokolové vrstvě (IEC 62351/TLS) zatím není implementováno — šifrování na WAN řeší komunikační jednotka/router (IPSec, VPN).
- Redundantní skupiny spojení dle kap. 10 normy nejsou implementovány; druhé spojení téhož mastera nahradí první.
- Podklady k požadavkům jednotlivých distributorů a technický návrh
implementace:
doc/zadani/iec104-pozadavky-ds.md,doc/zadani/iec104-navrh.md.