Protocolli e dati

Che cos’è SCADA? Architettura e casi d’uso energetici

Architettura SCADA nei siti energetici: controllo locale e WAN, protocolli, sicurezza, evidenze dei comandi, ripristino dei dati e messa in servizio.

Una schermata SCADA (controllo di supervisione e acquisizione dati) mostra cosa segnalano i dispositivi e un comando richiede una modifica. Nessuno dei due dimostra che l'attrezzatura abbia raggiunto il nuovo stato. Questa prova ha bisogno di prove proprie e gran parte di questa guida riguarda come raccoglierle.

Cos'è SCADA

Il NIST descrive i sistemi SCADA come sistemi che raccolgono dati da stazioni di campo geograficamente remote e inviano loro comandi da una posizione centrale. Separa tale ruolo di supervisione dai circuiti di controllo locale di sensori, controller e attuatori (NIST SP 800-82 Rev. 3).

Uno stack SCADA energetico ha questi livelli, dall'impianto in su:

I livelli di un sistema SCADA energetico Dal basso: impianto, strumenti di campo, controllo locale (dove restano protezioni e anelli di controllo rapidi), integrazione di sito, comunicazioni, supervisione, archivio storico e sistemi aziendali. I livelli sopra il controllo locale supervisionano gli anelli sottostanti, ma non li chiudono. Sistemi aziendali analisi, manutenzione, regolazione, report Archivio storico valori con qualità, allarmi, comandi, audit Supervisione HMI, allarmi, flussi di comando, accessi Comunicazioni RS-485, Ethernet, WAN privata, rete cellulare Integrazione di sito RTU, gateway di protocollo, computer edge Controllo locale PLC, relè di protezione, controllori Strumenti di campo contatori, TA, sensori, ingressi digitali, relè Impianto carichi, generatori, batterie, pompe, interruttori supervisiona chiude gli anelli Protezione e controllo rapido restano qui Un comando richiede; un contatore conferma
Uno stack SCADA energetico, dagli impianti verso l’alto. Il controllo locale chiude gli anelli; i livelli superiori li supervisionano.

Un controller locale può continuare la propria logica durante un’interruzione WAN solo se gli ingressi e le autorizzazioni necessari restano disponibili localmente. Verifica il comportamento di ogni percorso di comando in caso di perdita di comunicazione: un controller locale da solo non garantisce uno stato sicuro dell’impianto. Il progetto del sito deve definire interblocchi, comportamento di fallback e ripristino in caso di WAN lenta o assente.

I tempi mostrano il perché. Un controller di risposta alla domanda ZDR-2X campiona la frequenza di rete ogni 100 ms o più velocemente e reagisce entro 100 ms. Trasmette dati di 1 secondo attraverso il gateway alla piattaforma dell'aggregatore (scheda tecnica ZDR-2X). La piattaforma supervisiona la risposta, ma non ha alcun ruolo nella decisione dei 100 ms. Nel NEM australiano, il controllo centrale di regolazione di AEMO invia i suoi segnali tramite SCADA con un ciclo di 4 secondi e i servizi di contingenza rapidi rispondono invece alla frequenza locale (Guida FCAS). Il gateway ZGW-20 segue la stessa regola: Edge esegue la sua automazione sul gateway, quindi le regole continuano a funzionare anche quando il collegamento Internet non è attivo.

SCADA, BMS, EMS

I fornitori utilizzano questi tre nomi in modo approssimativo, quindi il nome da solo costituisce una specifica inadeguata. Indica quale sistema possiede ciascun punto scrivibile.

SistemaResponsabilità primariaAmbito tipicoOutput tipiciConfine principale
SCADASupervisione operativa e acquisizione datiProcessi industriali, servizi di pubblica utilità o risorse distribuite geograficamenteStato in tempo reale, allarmi, tendenze, comandi e registrazioni di eventiNon dimostra di per sé la risposta fisica o il risparmio energetico
BMS o BASAutomazione delle apparecchiature per l'edificioHVAC, illuminazione, accesso e altri servizi dell'edificioProgrammazioni, setpoint, stato delle apparecchiature e allarmiDi solito incentrato sui sistemi dell'edificio anziché analisi energetiche dell'intero portafoglio
EMS o EMISAnalisi energetica e gestione delle prestazioniEdifici, campus o portafogliDati energetici normalizzati, KPI, benchmarking, analisi dei guasti e flussi di lavoro di misurazionePossono consumare dati SCADA o BMS senza esercitare il controllo in tempo reale

Il materiale BACnet di ASHRAE colloca l'automazione degli edifici attorno ad applicazioni quali HVAC, illuminazione, sicurezza, protezione e gestione dell'energia (ASHRAE BACnet). Il Dipartimento dell'Energia degli Stati Uniti definisce i sistemi informativi sulla gestione dell'energia in modo più ampio come strumenti software che monitorano, analizzano e talvolta controllano l'uso energetico degli edifici, con componenti di integrazione, storico, applicazione e controllo di supervisione (Panoramica DOE EMIS).

Un sito spesso li esegue tutti e tre. Il BMS controlla le unità di trattamento dell'aria. SCADA supervisiona i quadri, i generatori e lo stato del sito. L'EMS combina i dati di contatori, tariffe e meteo per trovare risparmi e verificarli.

Assegna un proprietario a ogni punto scrivibile. Se il BMS e lo SCADA possono entrambi scrivere il setpoint dell'aria di mandata di un'unità di trattamento dell'aria su Modbus, l'ultimo scrittore vince e nessuno dei due sistemi lo sa. BACnet assegna a ciascuna proprietà comandabile un array di priorità di 16 slot. Lo slot più alto che non è NULL imposta il valore attuale e Relinquish_Default si applica quando ogni slot è NULL (OPC 30030, 3.2.1). Ciò provoca un fallimento silenzioso. Una scrittura SCADA con priorità 10 ottiene una risposta WriteProperty positiva, ma il valore non cambia mentre il BMS mantiene la priorità 8. Dopo ogni scrittura, rileggere Present_Value e, dove il dispositivo lo espone, Priority_Array.

Scelta di un protocollo

Due dispositivi che supportano entrambi Modbus devono comunque concordare su indirizzi di registro, tipi di dati, scala, ordine delle parole, unità e comportamento dopo un errore di collegamento. La guida all'interoperabilità IoT multi-vendor decodifica un punto contatore in ogni ordine di parole e fornisce un programma del fornitore e un test di accettazione in dodici passaggi.

ProtocolloImpiego adattoDecisione di implementazione importante
Modbus TCP o RTUSemplice acquisizione e controllo a livello di registro in cui la mappa del dispositivo è stabileIndirizzamento dei registri, fattori di scala, valori con segno, ordine delle parole e gestione delle eccezioni. Modbus/TCP sulla porta 502 non ha autenticazione. La sicurezza MODBUS/TCP è una specifica separata che utilizza i certificati TLS e X.509v3 sulla porta 802 (IANA, Specifiche Modbus). Non presumerlo dal supporto Modbus/TCP di base. Non si applica al Modbus RTU seriale.
BACnet/IPIntegrazione con oggetti, pianificazioni, allarmi e trend di building automationSpecificare gli oggetti, le proprietà, i servizi, le priorità dei comandi e i profili dei dispositivi richiesti. "Compatibile con BACnet" non è un punto completo o una specifica di conformità (risorse ASHRAE Standard 135).
OPC UAModelli informativi tipizzati, stato, timestamp, allarmi, sottoscrizioni e integrazione di sistema più completaAccordare la proprietà dello spazio dei nomi, i certificati, i profili supportati e i modelli di informazioni. Ogni messaggio di notifica di sottoscrizione porta un numero di sequenza, in modo che un client possa rilevare una lacuna e richiedere il messaggio mancato con il servizio di ripubblicazione (OPC UA Parte 4, 5.14.1.1). Testa cosa fa l'applicazione dopo una lacuna.
MQTTTelemetria di pubblicazione/sottoscrizione disaccoppiata su collegamenti vincolati o intermittentiDefinisci la proprietà del topic, lo schema del payload, la policy dei messaggi retained, il comportamento della sessione, la scadenza, l'ordinamento e la deduplicazione. La qualità del servizio MQTT si applica separatamente a ciascuna tratta dal mittente al destinatario, ad esempio dal publisher al broker e dal broker al subscriber. Non copre l'intero flusso di lavoro aziendale (MQTT 5.0).

Le guide ai protocolli vanno oltre: Modbus TCP vs RTU, BACnet vs Modbus, OPC UA vs MQTT vs Modbus e QoS MQTT e messaggi retained. Per il telecontrollo della rete, vedere IEC 60870-5-101 vs 104 e IEC 61850.

Fornisci a ogni punto un contesto sufficiente per verificarlo. Per un contatore di importazione del sito, il record di un punto è simile al seguente:

CampoEsempio
RisorsaIngresso principale in bassa tensione
Puntosite/import_active_power
SorgenteZEM-65 sull'entrante, attraverso il gateway ZGW-20
Unità e segnokW, importazione positiva
Timestamp della sorgente2026-09-23T14:02:00Z, quando lo strumento ha effettuato la lettura
Timestamp di acquisizione2026-09-23T14:02:01Z, quando lo storico l'ha memorizzata
QualitàBuona, obsoleta o non valida
Intervallo previsto60 s, obsoleto dopo 180 s

OPC UA ne trasporta la maggior parte in base alla progettazione. Il suo DataValue contiene il valore, un codice di stato, un timestamp della sorgente e un timestamp del server. La specifica richiede che un client controlli almeno la gravità del codice di stato prima di utilizzare il valore (OPC UA Parte 4, 7.11). Quando un gateway copia un valore OPC UA in un registro Modbus semplice, lo stato ed entrambi i timestamp vengono persi. Un valore obsoleto sembra quindi attuale.

Architettura multisito

EpiSensor Edge
Piattaforma
EpiSensor Gateway
Zigbee
Modbus
ZEM
ZDR
Dispositivi Zigbee EpiSensor
Dispositivi Zigbee di terze parti
Climatizzazione
Fotovoltaico
Pompe di calore
Accumulo a batterie
Contatori
ZPC
BACnet
LoRaWAN
Dispositivi LoRaWAN
ZEM
Core
Aggiungi sensori wireless senza nuovi cavi dati.
Portata di chilometri e anni di autonomia a batteria.
Dati dettagliati dai contatori esistenti
API aperte. Qualsiasi piattaforma.
Usa la tua SIM dati.
Le apparecchiature sul campo si collegano al Gateway ZGW-20 attraverso le interfacce del sito; Edge funziona localmente. La supervisione può essere centrale, mentre protezioni e controllo deterministico restano in sede.

In ogni sito, un gateway raccoglie misurazioni wireless e cablate, traduce i protocolli e memorizza i dati mentre l'uplink è inattivo. Sul ZGW-20 Gateway, Edge legge apparecchiature di terze parti come client Modbus TCP e RTU, un client BACnet/IP e un client OPC UA. Invia i dati su MQTTS o HTTPS o li scrive su file. Un master SCADA che effettua il polling può leggere il server Modbus di Edge, che per impostazione predefinita è in ascolto sulla porta TCP 10502. L'estensione OPC UA di Edge è solo client, quindi un sistema SCADA non può esplorare Edge su OPC UA. La guida API cloud e gateway locale mette a confronto un gateway locale con le apparecchiature di lettura tramite il cloud di un produttore.

Un registro Modbus conserva l'ultimo valore scritto su di esso. Se un contatore smette di fornire report, il server Edge Modbus mantiene l'ultima lettura nel registro e un poll SCADA ogni 5 s continua a ottenere quel valore senza errori. Una potenza costante di 42,7 kW assomiglia a una fonte morta. L'impostazione max_age di Edge rifiuta i campioni che sono già vecchi quando arrivano, ma non fa scadere un registro. Mappa un heartbeat o un timestamp di acquisizione della sorgente con un intervallo di aggiornamento documentato e genera un allarme se smette di avanzare. Il contatore dell'energia importata è solo un controllo incrociato condizionale: con un'importazione costante di 40 kW confermata indipendentemente, una risoluzione di 0,1 kWh produce un incremento ogni 9 s. Nessuna variazione per 60 s richiede una verifica, ma anche un carico nullo o l'esportazione possono lasciare il contatore invariato; da solo questo non dimostra un guasto della sorgente.

Per il monitoraggio multisito, utilizza un modello semantico sopra i gateway e mantieni l'identità di origine grezza al di sotto di esso. Un punto di portafoglio come site/import_active_power deve rimanere tracciabile al suo contatore fisico, registro o oggetto di origine, conversione di unità e tempo di acquisizione. Altrimenti un grafico plausibile può nascondere una fase scambiata, un moltiplicatore sbagliato o un valore riprodotto.

I dati memorizzati nel buffer necessitano di una regola di riproduzione. Quando una consegna fallisce, Edge inserisce il batch in una coda di tentativi supportata da disco e controlla una volta al minuto la destinazione da ripristinare. Le misurazioni riprodotte mantengono i timestamp originali e Edge non esegue più calcoli o automazioni su di esse. Un batch può arrivare due volte se la destinazione lo ha archiviato prima che Edge registrasse la consegna. Indicizza i campioni dello storico sull'ID punto e sul timestamp della fonte ed elimina una ripetizione esatta. Uno storico che timbra i campioni con l'ora di arrivo memorizza un'interruzione di 30 minuti come 30 minuti di letture nel minuto successivo al recupero. Il profilo di carico mostra quindi un intervallo seguito da un falso picco.

Casi d’uso energetici

Potenza richiesta ed energia per intervallo

Le tariffe e gli accordi utilizzano l'energia per intervallo, non la potenza istantanea. Ricava l’energia dell’intervallo dal registro di energia cumulativa del misuratore. Se il contatore dell’energia importata legge 104.512,0 kWh alle 14:00 e 104.698,5 kWh alle 14:30, l'intervallo ha utilizzato 186,5 kWh, ovvero una domanda media di 373 kW. La media dei campioni di kW istantanei prelevati una volta al minuto è solo una stima. Un divario nei campioni lo distorce e la differenza tra le letture del contatore è corretto attraverso il divario. Utilizza la potenza istantanea per operazioni e allarmi e le differenze del contatore per la verifica della fatturazione e dei risparmi. Il rollover del contatore e la risoluzione float sono trattati nella guida all'interoperabilità.

Risposta alla domanda

La piattaforma dell'aggregatore invia un evento, il controller del sito commuta il carico e un contatore dimostra la riduzione. La sezione successiva illustra un evento. Per i servizi di frequenza, la risposta stessa è locale: ZDR-20 e ZDR-21 commutano un relè e ZDR-22 invia un set point a una batteria tramite Modbus. SCADA registra e segnala l'evento.

Aggregazione del portafoglio

Il totale del portafoglio è valido solo quando il campione di ogni sito è aggiornato. Se l'ultimo valore valido di un sito risale a 20 minuti fa, mostra il totale come incompleto e assegna un nome al sito. Non aggiungere silenziosamente il vecchio valore. Per ordinare eventi tra siti, gli orologi devono concordare. ZDR-21 e ZDR-22 registrano eventi a intervalli di 20 ms con l'ora GPS, in modo che le registrazioni degli eventi provenienti da siti diversi possano essere confrontate direttamente.

Conferma del comando

Illustrazioni isometriche di una console di supervisione, un gateway, un controller locale, una pompa controllata e un contatore elettrico indipendente.
  1. Richiesta autorizzata
  2. Accettato dall’endpoint
  3. Elaborato dal controller
  4. Stato verificato
  5. Risultato misurato
Cinque fasi di prova per un comando, dalla richiesta dell'operatore alla lettura del contatore indipendente.

Registra ogni comando rispetto a queste cinque fasi:

Fase di provaCosa dimostraCosa lascia aperto
Richiesta autorizzataIl richiedente ha superato la policy di accesso e SCADA ha registrato la richiesta con un ID comandoSe il comando ha lasciato lo SCADA server
Accettato dall’endpointUn endpoint del protocollo denominato, ad esempio un broker MQTT, si è assunto la responsabilità del messaggioSe un subscriber, un controller o un dispositivo ha agito
Elaborato dal controllerIl controller di destinazione ha accettato il comando dopo i propri controlliSe l’impianto ha cambiato stato
Stato verificatoIl feedback dell'apparecchiatura, ad esempio un contatto ausiliario del contattore, corrisponde allo stato richiestoSe il carico del sito è cambiato dell'importo previsto
Risultato misuratoUn contatore indipendente mostra il risultato fisico previstoSe il risultato è valido dopo la finestra di osservazione

MQTT mostra dove finisce la seconda fase. Quando un client pubblica su QoS 1, il broker è l'endpoint ricevente. In MQTT 5, un PUBACK porta un codice motivo, che può essere un successo o un errore, quindi controllalo prima di registrare l'accettazione. La specifica consente al destinatario di inviare PUBACK prima di completare la consegna. Un PUBACK riuscito non dice quindi nulla sul subscriber, sul PLC o sul contattore. Anche QoS 1 prevede la consegna almeno una volta, quindi un subscriber può ricevere lo stesso comando due volte. Assegna un ID a ciascun comando e fai in modo che il controller ignori una ripetizione. La guida MQTT su TLS tratta l'identità del broker e l'accesso ai topic in questo limite.

Ecco un evento di riduzione del carico. Il sito importa 1.180 kW e l'aggregatore chiede una riduzione di 250 kW. Il PLC del sito apre il contattore su un refrigeratore. Uno ZEM-65 sull'ingresso principale, Classe 0,5S secondo IEC 62053-22 e separato dal PLC, misura il risultato.

OraEventoFase
14:02:00.000SCADA registra il comando DR-0412, riduzione di 250 kW, dall'invio dell'aggregatoreRichiesta autorizzata
14:02:00.180Il broker restituisce PUBACK con il codice motivo 0x00 (successo)Accettato dall’endpoint
14:02:00.950Il PLC riconosce DR-0412 e apre il contattore del refrigeratoreElaborato dal controller
14:02:01.300Il contatto ausiliario del contattore legge apertoStato verificato
14:03:00L'ingresso legge 935 kW, 245 kW sotto la baseline pre-eventoRisultato misurato

Il progetto fissa una scadenza per ogni fase. In questo esempio, il PLC deve confermare entro 5 s, il feedback del contattore deve cambiare entro 10 s e il contatore deve mostrare almeno l'80% della riduzione richiesta entro 60 s. Una scadenza non rispettata genera un allarme e indica la fase non riuscita. Se il contattore si apre ma l'ingresso diminuisce di soli 40 kW, probabilmente il refrigeratore era a carico parziale. Riportare i 40 kW misurati. Anche altri carichi si spostano durante l'evento, quindi confrontare il contatore con una linea di base per lo stesso periodo, non con una lettura. Imposta i timeout, i limiti di tentativi e la risposta a una fase mancata per ciascuna classe di comando nelle specifiche del progetto. Le impostazioni predefinite del protocollo non li forniscono.

Errori SCADA comuni

La maggior parte di questi errori produce numeri credibili, quindi ognuno necessita di un test deliberato: Esegui l'iniezione di guasti, le interruzioni dei collegamenti e le prove dei comandi solo in un ambiente di test controllato o secondo una procedura approvata dal sito, con un operatore qualificato, protezioni indipendenti e un piano di ripristino concordato. Non disattivare protezioni o segnali di feedback in servizio per improvvisare una prova.

ErroreCome trovarlo
L'ultimo valore rimane sullo schermo dopo l'arresto della sorgenteUn heartbeat o un timestamp di acquisizione della sorgente non avanza oltre il proprio intervallo documentato
L'orario di arrivo sostituisce il tempo di misurazione dopo una riproduzioneSegue un falso picco ogni interruzione. Confronta i timestamp di origine e acquisizione.
La riproduzione crea campioni duplicatiPiù campioni per punto per intervallo rispetto a quanto consentito dalla velocità prevista
Watt etichettati come kilowatt o potenza etichettata come energiaConfronta con il display del dispositivo a un carico costante
Registri decodificati con l’ordine delle parole erratoUn valore vicino allo zero o decisamente troppo grande. Decodifica una lettura nota in ciascun ordine.
Due sistemi scrivono lo stesso setpointIl setpoint cambia senza alcun comando registrato dal suo proprietario. Per BACnet, leggere Priority_Array.
Un PUBACK viene visualizzato come "comando completato"Il registro dei comandi non ha una fase di feedback sullo stato
Un percorso di comando dipende dalla WAN e ignora gli interblocchi localiDisconnettere la WAN durante un comando di prova e osservare il controller
L'accantonamento degli allarmi e le modifiche alla configurazione non lasciano alcuna traccia di controlloSospendi un allarme durante la messa in servizio e trovalo nel registro di controllo

Per trovare l'hop sbagliato, confrontare un punto con la stessa marca temporale in quattro punti: il display del dispositivo o lo strumento locale, il gateway, la schermata SCADA e lo storico.

Sicurezza

Il NIST raccomanda di identificare e segmentare i dispositivi IT e OT, mappare i flussi di dati necessari all'operazione e consentire solo tali flussi tra i segmenti. Raccomanda inoltre comunicazioni autenticate e crittografate tra siti distribuiti (NIST SP 800-82 Rev. 3).

Ogni protocollo lo gestisce in modo diverso. Il semplice Modbus/TCP sulla porta 502 non ha autenticazione, quindi mantienilo all'interno di una rete segmentata o utilizza la sicurezza MODBUS/TCP sulla porta 802 dove entrambe le estremità lo supportano. OPC UA offre tre modalità di sicurezza dei messaggi: None, Sign e SignAndEncrypt (OPC UA Parte 4, 7.20). Per impostazione predefinita, il client OPC UA di Edge usa None. Impostalo su SignAndEncrypt con una policy corrente come Basic256Sha256 e abbina l'endpoint pubblicizzato dal server. Per MQTT, utilizza TLS, verifica il certificato del broker e limita ciascun client ai propri topic. La guida MQTT su TLS fornisce la procedura.

Lista di controllo per la messa in servizio

Definisci i criteri di accettazione nelle specifiche del progetto. I valori seguenti sono punti di partenza tipici.

  1. Abbina ogni asset fisico al suo indirizzo di dispositivo, registro o oggetto, tag SCADA e serie storica. Controllali ciascuno sul posto.
  2. Con un carico costante, leggere il display del dispositivo o lo strumento locale. Confronta il valore al gateway, nella schermata SCADA e nello storico. Dopo la conversione delle unità, ogni hop deve concordare con la risoluzione visualizzata.
  3. Confronta i timestamp di origine e di acquisizione. Gli orologi devono concordare entro la tolleranza di progetto, ad esempio 1 s. Arresta un'origine e conferma che SCADA la contrassegna come obsoleta entro tre intervalli previsti.
  4. Scollegare separatamente il field link e la WAN. Registra cosa fa il controller locale, quando appare ciascun allarme e cosa memorizza il gateway.
  5. Ripristinare la WAN dopo un'interruzione di 30 minuti. Per un punto con un intervallo di 60 s, lo storico deve conservare 30 campioni recuperati con i loro timestamp originali, senza duplicati e senza lacune. Nessun intervallo durante l'interruzione può mostrare energia negativa o raddoppiata.
  6. Inviare un comando di test sicuro e autorizzato per ciascuna classe di comando. Registrare tutte e cinque le fasi delle prove. Quindi bloccare una fase, ad esempio l'ingresso di feedback, e verificare che l'allarme di timeout nomini quella fase.
  7. Connettiti con un certificato non attendibile e con credenziali errate. Confermare che entrambi i tentativi vengano rifiutati e registrati. Confermare che solo i flussi pianificati attraversano il confine di ciascun segmento.
  8. Riavviare ciascun componente a turno. Conferma configurazione, sottoscrizioni e continuità dei dati. Dopo un riavvio di Edge, verificare che ciascun registro del server Modbus contenga nuovamente un nuovo valore.
  9. Conservare le prove: input del test, timestamp, risultati attesi e osservati, versioni del firmware e della configurazione ed eventuali eccezioni accettate.