Protocolli e dati

IEC 60870-5-101 e IEC 60870-5-104 a confronto

Confronto tra IEC 101 e IEC 104: seriale e TCP 2404, finestre k e w, timer t0-t3, indirizzi, marche temporali, tunnel e convertitori.

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-101IEC 60870-5-104
TrasportoSeriale: RS-232, RS-485, modem o radioTCP/IP su Ethernet o WAN
Indirizzamento della stazioneIndirizzo di collegamento di 0, 1 o 2 ottettiIndirizzo IP e porta TCP, 2404 per impostazione predefinita
Procedura di collegamentoSbilanciata (la stazione primaria interroga) o bilanciata (entrambi gli estremi possono inviare)Client e server su TCP, con STARTDT e STOPDT
Struttura dei frameFT1.2: frame fissi iniziano con 0x10, frame variabili con 0x68 L L 0x68, entrambi finiscono con 0x16APCI: inizio 0x68, un ottetto di lunghezza, quattro ottetti di controllo
Controllo di flussoUn frame in attesa; conferma o carattere singolo 0xE5Fino a k frame I numerati in attesa; timer da t0 a t3
Causa di trasmissione1 o 2 ottetti2 ottetti
Indirizzo comune1 o 2 ottetti2 ottetti
Indirizzo dell'oggetto1, 2 o 3 ottetti3 ottetti
Tipi con marca temporaleCP24Time2a (3 ottetti) e CP56Time2a (7 ottetti)Solo CP56Time2a: tipi da 30 a 40 per monitoraggio, da 58 a 64 per comandi
Collegamenti tipiciSeriale punto a punto, radio, linee dedicate, linee multipunto con molte stazioni remoteReti 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:

ParametroPredefinitoSignificato
k12 frame INumero massimo di frame I inviati e non ancora confermati. Al raggiungimento di k, il mittente si ferma.
w8 frame IIl ricevitore conferma al più tardi dopo w frame I. Raccomandazione: w non oltre due terzi di k.
t030 sTimeout per stabilire la connessione
t115 sTimeout per confermare un frame I o U inviato. A t1 il mittente chiude la connessione.
t210 sTimeout per una conferma quando non ci sono dati da inviare. t2 deve essere minore di t1.
t320 sInattività 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:

Frame esadecimale
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      QDS

L'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:

Frame esadecimale
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 end

Qui 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.

Confronto tra tunnel IEC 101 e convertitore IEC 101–IEC 104 In alto: un server seriale trasporta il flusso di byte IEC 101 della RTU su una rete TCP; il centro di controllo richiede comunque un master IEC 101. In basso: un convertitore di protocollo interroga la RTU in IEC 101, espone un server IEC 104 sul lato rete, ricostruisce ogni ASDU secondo le dimensioni dei campi IEC 104 e aggiunge ora e data alle marcature temporali. tunnel RTU stazione periferica IEC 101 Server seriale byte in ingresso e in uscita Centro di controllo master IEC 101 FT1.2 101 su TCP convertitore RTU stazione periferica IEC 101 Convertitore mappa ogni punto Centro di controllo client IEC 104 IEC 101 IEC 104 Entrambe le estremità parlano ancora IEC 101 Ricostruisce ogni ASDU: 11 ottetti diventano 14, e aggiunge ora e data a CP24Time2a
Un tunnel trasporta i byte IEC 101 su TCP verso un master IEC 101. Un convertitore comunica in IEC 101 con l'RTU e in IEC 104 con il centro di controllo, ricostruendo ogni ASDU lungo il percorso.

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 convertitoreChe cosa vede il centro di controlloProva
Ricostruisce la marca CP24Time2a usando l'ora del proprio orologioEventi vicini al cambio d'ora marcati con un'ora di erroreForza 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 ricezioneOrari degli eventi che seguono il ciclo di interrogazione anziché il processoCommutare 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 buoniScollega 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 è interrottoValori obsoleti con causa 20 e qualità buonaInterrompi il collegamento seriale, invia C_IC_NA_1 e controlla la qualità
Conferma un comando prima della conferma dell'RTUACTCON positivo per un comando fallitoInvia 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.