IEC 60870-5-101 e IEC 60870-5-104 sono i protocolli di telecontrollo usati dai gestori di rete e dalle aziende elettriche tra centri di controllo e stazioni remote: RTU in sottostazioni, parchi eolici e solari, siti con batterie e grandi carichi. IEC 101 opera su collegamenti seriali. IEC 104 trasporta lo stesso tipo di messaggio applicativo su TCP/IP, di norma sulla porta 2404. Molte sottostazioni usano IEC 61850 al loro interno e IEC 104 per la connessione al centro di controllo.
I due elenchi punti si somigliano, ma le codifiche differiscono in tre aspetti importanti per un ammodernamento: livello di collegamento, dimensione dei campi indirizzo e marche temporali ammesse.
Standard ed edizioni
La pubblicazione IEC 101 corrente è IEC 60870-5-101:2003+AMD1:2015, edizione consolidata 2.1. La pubblicazione IEC 104 corrente è IEC 60870-5-104:2006+AMD1:2016, edizione consolidata 2.1, che include il corrigendum di agosto 2023.
Ogni dispositivo ha un elenco di interoperabilità, una lista di controllo dello standard che registra le opzioni implementate. Procurati gli elenchi di entrambi gli estremi prima di scrivere l'elenco punti. Confronta prima queste voci. Una discordanza in una di esse impedisce ai due estremi di capirsi:
- trasmissione bilanciata o sbilanciata (IEC 101);
- numero di ottetti dell'indirizzo di collegamento, della causa di trasmissione, dell'indirizzo comune e dell'indirizzo dell'oggetto (IEC 101);
- tipi con marca temporale inviati e accettati dal dispositivo;
- comandi accettati con marca temporale e uso della selezione prima dell'esecuzione.
Confronto affiancato
| IEC 60870-5-101 | IEC 60870-5-104 | |
|---|---|---|
| Trasporto | Seriale: RS-232, RS-485, modem o radio | TCP/IP su Ethernet o WAN |
| Indirizzamento della stazione | Indirizzo di collegamento di 0, 1 o 2 ottetti | Indirizzo IP e porta TCP, 2404 per impostazione predefinita |
| Procedura di collegamento | Sbilanciata (la stazione primaria interroga) o bilanciata (entrambi gli estremi possono inviare) | Client e server su TCP, con STARTDT e STOPDT |
| Struttura dei frame | FT1.2: frame fissi iniziano con 0x10, frame variabili con 0x68 L L 0x68, entrambi finiscono con 0x16 | APCI: inizio 0x68, un ottetto di lunghezza, quattro ottetti di controllo |
| Controllo di flusso | Un frame in attesa; conferma o carattere singolo 0xE5 | Fino a k frame I numerati in attesa; timer da t0 a t3 |
| Causa di trasmissione | 1 o 2 ottetti | 2 ottetti |
| Indirizzo comune | 1 o 2 ottetti | 2 ottetti |
| Indirizzo dell'oggetto | 1, 2 o 3 ottetti | 3 ottetti |
| Tipi con marca temporale | CP24Time2a (3 ottetti) e CP56Time2a (7 ottetti) | Solo CP56Time2a: tipi da 30 a 40 per monitoraggio, da 58 a 64 per comandi |
| Collegamenti tipici | Seriale punto a punto, radio, linee dedicate, linee multipunto con molte stazioni remote | Reti IP private, WAN in fibra, connessioni cellulari con APN privato |
Le dimensioni dei campi IEC 104 sono fissate dallo standard. Alcuni prodotti consentono di modificarle. Un dispositivo configurato così non è più interoperabile con una stazione IEC 104 standard.
Come IEC 101 trasferisce i dati
IEC 101 usa il formato di frame FT1.2. Un frame di lunghezza fissa porta solo un campo di controllo e un indirizzo di collegamento; serve a funzioni di collegamento come un'interrogazione. Un frame di lunghezza variabile porta un'ASDU. Il carattere singolo 0xE5 è un acknowledgement positivo.
In modalità sbilanciata, la stazione di controllo è l'unica stazione primaria. Interroga a turno ogni stazione remota e una stazione remota invia solo su richiesta. I dati si dividono in classe 1 (priorità alta, di solito eventi) e classe 2 (priorità bassa, di solito valori ciclici). La stazione remota imposta il bit ACD nella risposta quando ha dati di classe 1 in attesa; la stazione di controllo richiede quindi i dati di classe 1. La modalità sbilanciata funziona su una linea multipunto con molte stazioni remote.
In modalità bilanciata, ciascun estremo può avviare un trasferimento, quindi una stazione remota invia un evento appena accade. La modalità bilanciata è limitata a collegamenti punto a punto e multipli punto a punto.
Su una linea multipunto, il ciclo di interrogazione determina la latenza di segnalazione. FT1.2 invia 11 bit per carattere: a 9.600 bit/s, la risposta di 19 ottetti nell'esempio sotto occupa circa 22 ms sulla linea. Ogni interrogazione aggiunge una richiesta di 5 ottetti, due cambi di direzione e il tempo di risposta della stazione remota. Un evento attende che la stazione di controllo raggiunga quella stazione remota nel ciclo. Se ogni scambio richiede 60 ms, cambi di direzione inclusi, una linea con 30 stazioni remote ha un ciclo di circa 1,8 s.
Come IEC 104 gestisce una connessione
Ogni frame IEC 104 (APDU) inizia con un APCI di 6 ottetti: byte iniziale 0x68, ottetto di lunghezza che conta il resto del frame e quattro ottetti di controllo. L'APDU più grande è di 255 ottetti. Esistono tre formati di frame:
- i frame I portano un'ASDU, con un numero di sequenza di invio N(S) a 15 bit e un numero di sequenza di ricezione N(R) a 15 bit;
- i frame S portano solo N(R), per confermare i frame I quando non ci sono dati da rimandare;
- i frame U portano STARTDT e STOPDT, che avviano e fermano il trasferimento dati, e TESTFR, che verifica una connessione inattiva.
Una nuova connessione TCP inizia nello stato STOPDT, con entrambi i numeri di sequenza a zero. La stazione controllata non invia frame I finché non riceve STARTDT act e risponde con STARTDT con.
IEC 60870-5-104 prevede questi valori predefiniti:
| Parametro | Predefinito | Significato |
|---|---|---|
| k | 12 frame I | Numero massimo di frame I inviati e non ancora confermati. Al raggiungimento di k, il mittente si ferma. |
| w | 8 frame I | Il ricevitore conferma al più tardi dopo w frame I. Raccomandazione: w non oltre due terzi di k. |
| t0 | 30 s | Timeout per stabilire la connessione |
| t1 | 15 s | Timeout per confermare un frame I o U inviato. A t1 il mittente chiude la connessione. |
| t2 | 10 s | Timeout per una conferma quando non ci sono dati da inviare. t2 deve essere minore di t1. |
| t3 | 20 s | Inattività prima di inviare un TESTFR |
Quando arrivano meno di w frame, il ricevitore attende t2 prima di inviare un frame S. L'acknowledgement arriva quindi al mittente dopo t2 più il tempo di transito. Con i valori predefiniti restano 5 s per l'andata e ritorno prima che t1 chiuda la connessione. Un collegamento cellulare con un'andata e ritorno di 1 s rientra nel margine. Un collegamento che si blocca per più di 5 s sotto carico non vi rientra: il sintomo è una connessione che si chiude e riapre durante raffiche di eventi. Aumenta t1 o riduci t2, in modo che t1 superi t2 più il peggior tempo di andata e ritorno misurato. Cambia i valori su entrambi gli estremi nello stesso momento.
Connessioni ridondanti
Una stazione controllata può accettare più di una connessione TCP, per esempio da un centro di controllo principale e uno di riserva. Le connessioni formano un gruppo di ridondanza con una coda di eventi e soltanto una connessione del gruppo è attiva (in STARTDT) alla volta. Quando il centro di controllo passa alla connessione di riserva, gli eventi inviati ma non confermati sulla vecchia connessione devono essere ancora nella coda. Quando la coda è piena, lib60870, per esempio, elimina l'evento più vecchio e conserva quello nuovo. Concorda la profondità della coda con l'operatore e prova un cambio di connessione durante una raffica di eventi.
Una misura su entrambi i collegamenti
Questo esempio invia un'esportazione di potenza attiva del sito di 12,5 MW come valore a virgola mobile corta, tipo 13 (M_ME_NC_1), causa 3 (spontanea), indirizzo comune 1 e indirizzo dell'oggetto 4001 (0x0FA1).
Su IEC 104, come frame I N(S) = 5, N(R) = 3:
68 12 0A 00 06 00 0D 01 03 00 01 00 A1 0F 00 00 00 48 41 00
APCI ASDU header and address value QDSL'ottetto di lunghezza 0x12 (18) conta i quattro ottetti di controllo e l'ASDU di 14 ottetti. Gli ottetti di controllo contengono N(S) e N(R) spostati a sinistra di un bit: 5 diventa 0x0A e 3 diventa 0x06. Il campo causa è di 2 ottetti (03 00: causa 3, indirizzo dell'originatore 0). L'indirizzo comune è di 2 ottetti (01 00) e l'indirizzo dell'oggetto di 3 (A1 0F 00). Il valore 12,5 è il numero IEEE 754 a precisione singola 0x41480000, inviato a partire dall'ottetto meno significativo. QDS 0x00 indica qualità buona.
Su IEC 101, in modalità sbilanciata con indirizzo di collegamento di 1 ottetto (5), causa di 1 ottetto, indirizzo comune di 1 ottetto e indirizzo dell'oggetto di 2 ottetti, lo stesso valore viene inviato in risposta a una richiesta di classe 1:
68 0D 0D 68 08 05 0D 01 03 01 A1 0F 00 00 48 41 00 58 16
header C A ASDU header and address value QDS CS endQui l'ASDU è di 11 ottetti, contro 14 in IEC 104. Un convertitore deve ricostruire ogni ASDU secondo le dimensioni dei campi dell'altro protocollo. Non può semplicemente inoltrare i byte.
Un tunnel non è un convertitore
Un server di dispositivi seriali può trasportare un flusso di byte IEC 101 attraverso una rete TCP. Gli estremi continuano a parlare IEC 101, con frame FT1.2 e interrogazione IEC 101. La libreria MZ Automation lo documenta come trasporto separato per il tunnelling IEC 101, distinto da IEC 104. Il centro di controllo deve avere un master IEC 101 capace di usare un socket TCP. Un client IEC 104 non comprende quel flusso.
Un tunnel aggiunge inoltre latenza di rete a ogni interrogazione e risposta. I timer di collegamento IEC 101 del master devono tenerne conto, altrimenti il master considera guasta la stazione remota.
Un convertitore di protocollo implementa entrambi gli standard. Interroga o accetta IEC 101 sul lato RTU, esegue un server IEC 104 sul lato rete e mappa ogni punto.
La marca temporale richiede particolare attenzione. CP24Time2a contiene solo millisecondi (da 0 a 59.999) e minuti (da 0 a 59). Il convertitore aggiunge ora e data, di solito dal proprio orologio. Un evento alle 10:59:59.8 che raggiunge il convertitore alle 11:00:00.3 riceve l'ora sbagliata, a meno che il convertitore confronti i minuti della marca con il proprio tempo. Sincronizza gli orologi dell'RTU e del convertitore e prova il passaggio dell'ora.
Questi sono i guasti da provare:
| Guasto nel convertitore | Che cosa vede il centro di controllo | Prova |
|---|---|---|
| Ricostruisce la marca CP24Time2a usando l'ora del proprio orologio | Eventi vicini al cambio d'ora marcati con un'ora di errore | Forza un evento alle xx:59:59 e leggi la marca temporale sul lato IEC 104 |
| Invia eventi senza marca temporale, o con l'ora della ricezione | Orari degli eventi che seguono il ciclo di interrogazione anziché il processo | Commutare un ingresso di stato e confrontare il registro eventi dell'RTU con il centro di controllo |
| Perde i bit di qualità (IV, NT, SB, BL, OV) | Valori di un'RTU guasta mostrati come buoni | Scollega l'RTU e verifica che IV o NT siano impostati sui suoi punti |
| Risponde a un'interrogazione generale dalla propria cache mentre il collegamento RTU è interrotto | Valori obsoleti con causa 20 e qualità buona | Interrompi il collegamento seriale, invia C_IC_NA_1 e controlla la qualità |
| Conferma un comando prima della conferma dell'RTU | ACTCON positivo per un comando fallito | Invia un comando a un'RTU che lo rifiuta |
Il contratto applicativo
Entrambi gli standard richiedono un elenco punti sottoscritto e l'elenco di interoperabilità di ciascun estremo. Per ogni punto, l'elenco indica:
- l'identificativo del tipo, per esempio M_ME_NC_1 (13) per un valore a virgola mobile corta o M_ME_TF_1 (36) per lo stesso valore con marca CP56Time2a;
- l'indirizzo comune e l'indirizzo dell'oggetto informativo;
- unità, scala e convenzione del segno, per esempio esportazione positiva;
- cause di trasmissione usate dal punto: spontanea (3), periodica (1) o interrogazione generale (20);
- per i comandi, il tipo (per esempio C_SC_NA_1, 45, oppure C_SC_TA_1, 58, con marca temporale), l'uso di selezione prima dell'esecuzione o esecuzione diretta e il punto che segnala il risultato.
Concorda la sorgente dell'ora. Il centro di controllo può impostare l'orologio della stazione remota con C_CS_NA_1 (103), oppure entrambi gli estremi possono usare NTP. Concorda che cosa succede all'avvio e dopo una connessione persa. Un'interrogazione generale restituisce i valori correnti. Gli eventi accaduti durante un'interruzione sono recuperati solo se la stazione remota li memorizza. La guida alle ASDU spiega i campi, la guida a marche temporali e qualità le marche temporali e la qualità, e la guida ai comandi la sequenza di controllo.
Sicurezza
I protocolli di base non autenticano l'altro estremo e non cifrano i dati. Esistono due estensioni standard:
- IEC 62351-3 è un profilo TLS per protocolli TCP/IP. IANA registra la porta TCP 19998 per IEC 104 sicuro.
- IEC TS 60870-5-7:2025 applica a IEC 101 e IEC 104 l'autenticazione a livello applicativo di IEC 62351-5. Permette a una stazione di verificare che un'ASDU provenga da un utente autorizzato e non sia stata modificata.
Chiedi quali di queste estensioni implementi l'apparecchiatura e provale alla messa in servizio. Se non ne implementa nessuna, la protezione dipende dalla rete: circuito privato o APN privato, VPN IPsec fra i siti e regola firewall che accetta TCP 2404 solo dagli indirizzi del centro di controllo. Un tunnel IEC 101 su una rete condivisa richiede le stesse misure.
Telecontrollo e sistemi EpiSensor
Edge non include un'interfaccia IEC 60870-5-101 o IEC 60870-5-104. Se un gestore di rete richiede telecontrollo da un sito, lo forniscono l'RTU del gestore o un gateway di sottostazione. Un sistema EpiSensor misura e controlla il sito a valle dell'RTU. Per esempio, l'RTU riceve il valore di riferimento del gestore su IEC 104 e un controller di demand response ZDR e una misura a livello di circuito segnalano la risposta effettivamente erogata dal sito. Scrivi nell'elenco punti il confine tra i due sistemi: quali segnali appartengono all'RTU e quali arrivano dal sistema EpiSensor tramite un'interfaccia separata.
Domande frequenti
Qual è la differenza tra IEC 101 e IEC 104?
IEC 60870-5-101 usa collegamenti seriali, frame FT1.2, un indirizzo di collegamento e una procedura bilanciata o sbilanciata. IEC 60870-5-104 usa TCP/IP, un APCI di 6 ottetti, frame numerati e un proprio controllo di flusso. I messaggi applicativi si somigliano, ma non sono identici: IEC 104 fissa la dimensione degli indirizzi e ammette solo marche CP56Time2a. Un dispositivo configurato per uno dei due richiede un convertitore per comunicare con l’altro.
Quale porta usa IEC 60870-5-104?
La porta TCP 2404 per impostazione predefinita. IANA registra anche la porta TCP 19998 per IEC 104 sicuro, usata per connessioni TLS.
Che cosa sono k e w in IEC 104?
Parametri di controllo del flusso. k è il massimo numero di frame I che una stazione può inviare senza conferma, 12 per impostazione predefinita. w è il numero di frame I dopo i quali il ricevitore deve confermare, 8 per impostazione predefinita. Lo standard raccomanda che w non superi due terzi di k. Se un frame I non è confermato entro t1 (15 s per impostazione predefinita), il mittente chiude la connessione.
IEC 104 è sicuro?
Non da solo. Il protocollo di base non ha autenticazione né cifratura. IEC 62351-3 aggiunge TLS e IEC TS 60870-5-7 applica l’autenticazione IEC 62351-5 a IEC 101 e IEC 104. Se l’apparecchiatura non supporta nessuna delle due, la protezione dipende dalla rete: circuito o APN privato, VPN e regola firewall per la porta 2404.