SCADA
# SCADA

Nell'ambito dei sistemi di controllo distribuiti, un sistema SCADA (acronimo dall'inglese "Supervisory Control And Data Acquisition", lett. "controllo di supervisione e acquisizione dati" in italiano) è un applicazione software modulare deputata al monitoraggio e alla supervisione di una rete di controllori e dei processi fisici associati.

## Descrizione

Generalmente il termine SCADA può identificare un software, installato su personal computer o server, che permette la realizzazione, il funzionamento e la gestione di sistemi di supervisione, controllo e telecontrollo senza dover necessariamente scrivere codice attraverso linguaggi di programmazione. Quest'ultimo punto è particolarmente caratterizzante in quanto coloro che realizzano e utilizzano i sistemi SCADA sono spesso tecnici con esperienza nel controllo di processo piuttosto che informatici o programmatori.

È bene notare che i sistemi SCADA si sono evoluti in larga parte come complemento delle soluzioni di automazione fornite dalle principali aziende mondiali del settore (Siemens, Allen-Bradley, Rockwell, Invensys plc, Wonderware, etc.) e che la terminologia può variare sia in base al contesto geografico (Europa, America, Asia) che settoriale (industria pesante, industria farmaceutica, produzione e trasporto dell'energia elettrica, trasporto di persone ecc.) in quanto le normative di riferimento e il contesto culturale a cui si ispirano sono diverse.

Normalmente i sistemi SCADA vengono impiegati all'interno delle centrali di controllo delle fabbriche, delle stazioni ferroviarie, degli aeroporti, degli acquedotti o dei grandi complessi di edifici, così come - per i sistemi più piccoli - in prossimità del processo da controllare.

### Caratteristiche

Tipicamente, i sistemi SCADA sono utilizzati come interfaccia, sia verso operatori che verso altri sistemi, nell'ambito dei sistemi di controllo dei processi industriali o infrastrutturali, e prescindono dalla presenza di:

* uno o più sensori o attuatori, che effettuano misurazioni e/o variazioni di grandezze fisiche sul sistema in oggetto.
* uno o più microcontrollori, che possono essere PLC o microcomputer, che, continuativamente o a intervalli di tempo, effettuano misurazioni tramite i sensori a cui sono collegati e memorizzano i valori misurati in una memoria locale; gli stessi microcontrollori o PLC molto spesso sono gli stessi che realizzano anche le logiche di automazione dell'impianto a cui sono collegati.
* un sistema di telecomunicazione tra i microcontrollori e il supervisore. Può essere una rete di computer, oppure un insieme di linee seriali; può essere basato su cavo o su radio. Nei casi tipici sono cavi seriali digitali per brevi distanze, doppini di tipo telefonico a cui sono collegati o dei modem a bassa velocità, per medie distanze, oppure ponti radio o telefoni cellulari, per grandi distanze; negli ultimi 10 anni - per via del contenimento dei costi e della sempre più pressante richiesta di integrazione con sistemi eterogenei - questi vettori di telecomunicazione sono in via di rimpiazzo a favore di reti Ethernet o comunque basate sul protocollo TCP/IP.
* uno o più computer supervisori (es. server), che periodicamente raccolgono i dati dai microcontrollori, li elaborano per estrarne informazioni utili, memorizzano su disco i dati o le informazioni riassuntive, eventualmente fanno scattare un allarme, permettono di selezionare e di visualizzare su schermo i dati correnti e passati anche in formato grafico, ed eventualmente inviano informazioni selezionate al sistema informativo aziendale.

### Terminologia

Si possono distinguere fra:

* Sistemi HMI (Human Machine Interface) quando la fruizione del sistema SCADA avviene da un unico punto (un PC oppure un pannello tattile). Normalmente impiegato in sistemi di automazione locale di processi semplici o comunque confinati in ambienti ristretti. Talvolta i sistemi HMI sono fruibili anche da pannello operatore, ovvero dispositivi hardware e software dedicati che non hanno come base un sistema operativo PC quale Windows, Windows CE o Linux, ma un sistema embedded dedicato esclusivamente a un determinato microcontrollore.
* Sistemi HMI-SCADA (Human Machine Interface / Supervisory Control And Data Acquisition) distribuiti che prevedono più punti di acquisizione dati (server) e più punti di utilizzo (ad esempio in un'infrastruttura autostradale si può impiegare un server SCADA dedicato all'acquisizione dati per ogni galleria o casello, e la fruizione del sistema nel suo complesso può avvenire sia dalla centrale di controllo del gestore autostradale che dai terminali mobili degli operatori di manutenzione).

### Funzionalità

Un sistema SCADA moderno può realizzare le seguenti funzioni:

* Acquisizione dati mediante opportuni driver di comunicazione verso gli apparati in campo (microcontrollori o PLC) a loro volta connessi ai sensori o agli attuatori. I dati scambiati sono normalmente grandezze digitali, analogiche oppure stringhe di testo. Tali dati vengono in certi casi integrati con informazioni aggiuntive gestite dai microcontrollori o dai PLC quali ad esempio la marca temporale oppure l'identificativo di qualità del dato (certo, incerto, misura guasta o fuori misura etc.). La comunicazione può avvenire sia con le classiche interrogazioni sincrone (polling) che asincrone, ovvero basate su notifica - iniziata da parte dell'apparato in campo e relativa all'avvenuta variazione di una misura o di uno stato classificato come di interesse per il sistema SCADA.
* Rappresentazione del dato sullo schermo di un PC, all'interno di un web-browser o sullo schermo di uno smartphone. Il dato può essere rappresentato sia come grandezza che sotto forma di animazione grafica (esempio un serbatoio con il liquido colorato che sale e scende in base alla lettura del livello). Dall'interfaccia grafica è anche possibile inviare comandi al sistema di automazione.
* Storicizzazione del dato - I dati di interesse possono essere storicizzati su archivi locali o distribuiti, in varie metodologie: da file di tipo binario a database relazionali, a seconda del tipo di piattaforma impiegata e delle esigenze del progetto. Tali dati poi possono essere visualizzati dall'operatore direttamente dalla piattaforma anche sotto forma di grafici oppure esportati e gestiti su sistemi terzi che ne consentano l'analisi ai fini dell'efficientamento del processo o dell'analisi di situazioni critiche che si sono verificate.
* Gestione degli allarmi - L'allarme è una particolare condizione del processo che viene modellizzata dal progettista della piattaforma SCADA e che richiede l'interazione da parte di un operatore. In caso ad esempio di un blocco di una pompa, si potranno avere delle icone lampeggianti, l'emissione di un suono, oppure nei sistemi più complessi l'invio di un'e-mail, SMS, oppure una chiamata telefonica in sintesi vocale all'operatore reperibile - il tutto al fine di rendere edotto l'operatore che è necessaria un'azione umana per risolvere un'eccezione sul sistema non gestibile in autonomia.
* Interazione con sistemi di livello superiore - Funzione che è sempre più richiesta e che prevede che lo SCADA possa funzionare come "Gateway" fra il processo e i sistemi di livello superiore (da un controller di dominio per l'autenticazione degli utenti a un sistema MES o ERP ad esempio affinché le scorte di magazzino di prodotto finito e materie prime siano aggiornate automaticamente col procedere della produzione).

## Tipologie di piattaforma SCADA

Nell'accezione comune, si intende come piattaforma SCADA solo lo strato software che realizza le funzioni di cui al paragrafo precedente "Compiti del Sistema SCADA".

Tale software può essere sotto forma di:

* Piattaforme chiuse e dedicate: si può impropriamente intendere come sistema SCADA anche un software compilato closed-source, dedicato esclusivamente alla supervisione di un particolare sistema o impianto. In questo caso solo il produttore dello stesso potrà modificare, ampliare il sistema o integrarlo con altri sistemi paralleli o di livello superiore. Tipicamente è una soluzione ancora adottata nell'automazione delle singole macchine (ad esempio un piccolo depuratore o un gruppo di continuità di medie/grandi dimensioni), per via della riduzione dei costi e del mantenimento della proprietà intellettuale, in quanto l'unico costo di licenza che il fornitore del sistema scada deve a sua volta pagare è quello relativo al sistema operativo impiegato se del caso, mentre non ci sono ulteriori costi di licenza ripetitivi da riconoscere a terzi.
* Piattaforme dedicate: prevedono la possibilità di configurazione da parte di personale specializzato, ma realizzano la connessione e l'integrazione solo con apparati di campo forniti dallo stesso produttore della piattaforma.
* Piattaforme aperte: Includono set di funzioni di base (da qui il termine piattaforma) su cui sviluppare il proprio sistema. Normalmente includono almeno qualche libreria di comunicazione e dei set di animazioni grafiche (ad esempio per modificare il colore di un oggetto in base al valore di una grandezza fisica). Consentono di modificare e far evolvere le caratteristiche e le potenzialità del sistema anche in futuro, senza necessariamente disporre di competenze di programmazione e anche da parte di personale diverso dallo sviluppatore originario (ad esempio connettere nuovi apparati, modificare o aumentare la quantità di punti controllati, creare nuove pagine grafiche etc.) permettendo anche di integrare hardware di campo fornito da terzi. Nel migliore dei casi la piattaforma SCADA è fornita da un editor indipendente, che ha come principale interesse quello di poter connettere il maggior numero di dispositivi di qualsiasi produttore realizzando facilmente funzioni richieste negli ambiti applicativi più disparati
* Le piattaforme aperte sono composte da almeno due strati software diversi, oltre naturalmente al sistema operativo:
   * La piattaforma SCADA, che è uguale per tutti gli utenti e spesso indipendente dal settore applicativo. Essa può essere:
      * Closed source (commerciale) ovvero un software aperto e configurabile liberamente dall'utente, ma del quale i codici sorgenti non sono resi pubblici
      * Open source, ovvero che i sorgenti della piattaforma sono resi pubblici mediante licenze di tipo GPL o simili.
   * Il progetto SCADA, dedicato al singolo impianto o alla categoria di impianti simili o uguali, e che rappresenta il know-how dello sviluppatore (o più propriamente del system-integrator, visto che non è detto che quest'ultimo sia un vero e proprio programmatore quanto piuttosto un processista esperto più nelle funzioni e nelle caratteristiche dell'impianto che del sistema informatico in sé).

La filosofia di pensiero prevalente (2018) prevede spesso la realizzazione di sistemi di supervisione utilizzando piattaforme commerciali aperte indipendenti, in modo da assicurarsi il supporto del produttore della piattaforma SCADA senza però essere legati ad un particolare vendor di apparati di campo (in quanto il costo di quest'ultimi è di norma sensibilmente maggiore al costo della licenza della piattaforma SCADA impiegata), mentre le piattaforme Open Source non hanno ancora raggiunto un grado di maturità che permetta realmente delle performance (in termini di funzioni disponibili e velocità di sviluppo) comparabili con quelle presenti sulle piattaforme commerciali.

### Elenco piattaforme disponibili

Non commerciali / Open Source :

| Nome | Sistema operativo | Tipo di licenza |
| - | - | - |
| Free Scada | Windows | Freeware |
| IndigoSCADA | Windows / Linux | GPL |
| openDAX | Linux | GPL |
| OpenSCADA | Windows / Linux | GPL |
| S.E.E.R. 2 | Linux | GPL |
| SCADA ProcessViewer | Windows | GPL |
| ScadaBR | Windows | GPL |
| Szarp | Windows / Linux | GPL |

Commerciali (Closed Source) :

| Nome | Produttore | Sistema Operativo | Sito Web | Apertura |
| - | - | - | - | - |
| PcVue | ARC Informatique | Windows | www.pcvuesolutions.com | Aperto/Indipendente |

## Distinzione fra sistemi SCADA e DCS

In alcuni ambiti applicativi viene mantenuta la distinzione fra sistemi SCADA e DCS (Distributed Control System). Opinione comune, dettata anche dalle distinzioni di politica commerciale eseguita nei decenni dalle principali multinazionali del settore, è che mentre un sistema SCADA utilizza una rete di telecomunicazioni geografica (Wide Area Network), un sistema DCS viene inteso come un sistema che raggruppa una quantità ragguardevole di punti controllati (decine o centinaia di migliaia) ma confinati all'interno di una rete LAN (Local Area Network). Esempi applicativi in cui la dizione "DCS" è ancora largamente utilizzata riguarda il settore petrolchimico, ad esempio nel controllo del processo della raffinazione del combustibile.

In realtà la vera distinzione è dovuta alla modalità in cui i sistemi SCADA e DCS gestiscono il comando degli impianti controllati:

* Nei sistemi SCADA i comandi ai PLC e ai microcontrollori in campo vengono inviati quasi esclusivamente a seguito di uno stimolo dell'operatore. L'automazione, intesa come gestione del processo (ovvero l'azionamento di un pistone o l'avvio di un motore) richiede tempi di esecuzione certi e deterministici che i sistemi SCADA da soli non possono garantire, in quanto spesso eseguiti su sistemi operativi commerciali non in tempo reale nei quali è difficile scendere con sicurezza sotto al decimo di secondo. Per questo motivo, ad esempio nel caso di una linea di imbottigliamento, il sistema SCADA potrà inviare ai microcontrollori locali, sotto forma di comando, la ricetta di produzione (a titolo di esempio quali sono le bottiglie da usare, con quale e quanto liquido riempirle) con la relativa richiesta di avvio della produzione, ma i tempi di azionamento delle valvole e l'avanzamento della linea devono essere gestiti localmente dai microcontrollori dedicati presenti a bordo macchina. Inoltre il microcontrollore, prima di eseguire il comando impartito dal sistema SCADA potrebbe essere stato programmato per verificare la sussistenza di alcuni interblocchi di processo (es. la presenza della materia prima) e/o di sicurezza (ad esempio la condizione che tutti i coperchi della macchina siano chiusi onde evitare infortuni agli operatori), se del caso ignorando il comando impartito dallo SCADA e ritornando a quest'ultimo un codice di errore che identifichi la motivazione per cui il comando è stato scartato. Spesso questo errore assume la terminologia di allarme, ovvero una condizione che richiede l'intervento dell'operatore (continuando l'esempio precedente, per controllare la chiusura di tutti i coperchi di protezione della macchina). È opinione diffusa che i sistemi realizzati secondo questa metodologia debbano poter continuare a funzionare per quanto possibile anche in caso di successiva disconnessione o guasto del sistema SCADA. Concludendo l'esempio precedente relativo alla linea di imbottigliamento, la produzione dovrebbe poter proseguire per quanto possibile anche qualora, dopo aver inviato il comando di avvio, il sistema SCADA si guasti o venga disconnesso. Questo consente l'impiego dei sistemi SCADA anche su reti distribuite, in quanto l'impianto locale è parzialmente autosufficiente. In alcuni casi, alla riconnessione del sistema SCADA, possono essere acquisite anche le misure e gli stati precedenti mediante tecniche di buffering.
* I sistemi DCS invece hanno una maggiore interazione fra microcontrollori locali e sistema di controllo/supervisione su PC. Spesso sono realizzati su sistemi operativi deterministici che garantiscono tempi di risposta certi, il che presuppone che tutto sia connesso all'interno di una rete locale LAN con tempi di risposta certi. In questo caso il sistema DCS deve essere eseguito su ambienti in tempo reale, ed eventuali anomalie devono essere gestite immediatamente con logiche di ridondanza e/o garantendo comunque l'arresto in sicurezza del processo nel caso in cui ci siano guasti di rete o indisponibilità di nodi remoti.

A livello di costo un sistema DCS è molto più oneroso sia da progettare che da gestire rispetto ad un sistema SCADA, e questo viene giustificato solo in pochi particolari settori, come appunto il petrolchimico, in cui è richiesta un'altissima affidabilità in termini di performance e di sicurezza.

In realtà i sistemi SCADA possono essere impiegati anche all'interno di reti LAN, ad esempio per il controllo di un singolo sito produttivo, ma con la possibilità anche di scalare e accentrare i dati provenienti da più siti.

## Sicurezza

Nel novembre 2008 è apparso un virus informatico chiamato Stuxnet che prendeva come bersaglio i sistemi SCADA. Il virus ha usato come mezzo trasmissivo una chiave USB e aveva il compito di contaminare il software WinCC sviluppato dall'azienda Siemens. All'inizio del 2011 Stuxnet è uscita sotto una nuova forma chiamata Stars.

I sistemi SCADA sono sempre di più nel mirino dei criminali informatici, poiché fanno largo uso di protocolli di comunicazione basati su TCP-IP che spesso non hanno alcuna forma di autenticazione, password o crittografia. Il motivo alla base di ciò è che storicamente venivano impiegati come rimpiazzo di reti chiuse punto-punto dove non erano originariamente previsti gateway di interconnessione. È pertanto importante segmentare le reti di processo affinché siano irraggiungibili dall'esterno, ed utilizzare sistemi SCADA moderni e costantemente aggiornati come unico punto d'accesso verso la rete industriale, impedendo che si possano realizzare connessioni dirette agli apparati in campo che bypassano i meccanismi di protezione ed autenticazione presenti sulle piattaforme SCADA.

