01 Il Processo — Trattamento Acque Potabili

Un impianto di potabilizzazione trasforma acqua grezza (da sorgente, lago o falda) in acqua conforme al D.Lgs. 31/2001, recepimento della Direttiva europea 98/83/CE. Il processo si articola in quattro stadi sequenziali, ciascuno con propri parametri critici da monitorare e controllare in continuo: qualità dell'acqua, portate, dosaggi chimici e stato degli equipaggiamenti.

// FLOW DIAGRAM — PROCESSO DI POTABILIZZAZIONE
💧
Captazione
Pompe P-01/02
🌀
Coagulazione
Dosaggio Al₂SO₄
Sedimentazione
Vasche decantaz.
Filtrazione
Sabbia + carbone
Disinfezione
Dosaggio Cl₂ / UV
🏗
Distribuzione
Serbatoi · Rete

Le variabili di processo monitorate in continuo dal sistema SCADA includono:

  • Portata: misuratori elettromagnetici a ogni stazione di pompaggio (±0.3% FS)
  • Torbidità: sensori nefelometrici in uscita dai filtri — target < 1 NTU
  • pH: elettrodi combinati in ingresso, post-coagulazione e distribuzione — target 6.5–8.5
  • Cloro residuo: analizzatori amperometrici in uscita — target 0.2–0.5 mg/L
  • Conducibilità, temperatura e pressione su tutti i tratti principali

Il dosaggio di cloro è il parametro più critico per la sicurezza: in difetto si rischia contaminazione microbiologica, in eccesso si formano trialometani (THM) cancerogeni. Il controllo in feedback sul cloro residuo è il loop più importante dell'intero impianto.

02 Architettura del Sistema

2.1 Piramide ISA-95

Il sistema segue la classica architettura ISA-95 su tre livelli. Il principio guida è il fail-safe locale: ogni PLC di sezione opera in autonomia completa anche in assenza di connettività con il livello SCADA, garantendo la continuità del processo.

// ARCHITETTURA ISA-95 — PIRAMIDE DI AUTOMAZIONE
Livello 3 — MES / Historian
Server storico · Report KPI · Integrazione ERP · Billing acqua
↕ OPC-UA / MQTT Sparkplug B
Livello 2 — SCADA / HMI
Ignition 8.x · Workstation operatori · Dashboard · Gestione allarmi ISA-18.2
↕ Modbus TCP / PROFINET / OPC-UA
Livello 1 — PLC di sezione (5 nodi)
Captazione
S7-1500
Coagulazione
S7-1200
Filtrazione
S7-1200
Disinfezione
S7-1500
Distribuzione
S7-1200
↕ 4-20 mA · HART · PROFINET IO
Livello 0 — Campo
Sensori · Attuatori · Pompe · Valvole on-off e modulanti · Dosatori
// Rete OT fisicamente separata dalla rete IT aziendale tramite DMZ con firewall industriale Fortinet

2.2 Stack Software

L4
Historian / MES
Storico dati di processo, KPI di produzione, report qualità, integrazione ERP
SQL Server · InfluxDB
L3
SCADA / HMI
Supervisione real-time, gestione allarmi ISA-18.2, trending, accesso remoto VPN
Ignition 8.x
L2
OPC-UA Gateway
Namespace unificato, sicurezza a certificati X.509, bridge verso cloud analytics
OPC-UA · MQTT
L1
Programmi PLC
Ladder per logiche di sicurezza, Structured Text per PID e sequenze processo
IEC 61131-3 · TIA Portal
L0
I/O di Campo
Moduli AI/DI/DO/AO, integrazione HART, smart transmitter con diagnostica integrata
PROFINET · HART 7

03 Programmazione PLC — IEC 61131-3

Il software PLC è strutturato in modo modulare: ogni componente fisico (pompa, valvola, dosatore, filtro) corrisponde a un Function Block (FB) riutilizzabile con interfaccia standardizzata. Le logiche di sicurezza e interblocco sono in Ladder Diagram (LD); i loop di controllo, le sequenze e i calcoli analitici sono in Structured Text (ST).

Il loop di controllo del cloro residuo — il più critico — è implementato in ST con PID anti-windup a clamping condizionale:

// PID Dosaggio Cl₂ — Structured Text (IEC 61131-3)
// Campionamento: Ts = 500 ms (limite analizzatore amperometrico)

error := Cl2_setpoint - Cl2_residuo_misurato;

// Anti-windup: clamping condizionale
// Integra solo se la pompa non è satura O se l'errore riduce il windup
IF NOT (pump_saturated AND error * integral > 0) THEN
    integral := integral + Ki * error * Ts;
END_IF;

output := Kp * error + integral - Kd * (error - prev_error) / Ts;
output := LIMIT(pump_min, output, pump_max);
pump_speed_ref := output;
prev_error     := error;

La struttura fail-safe impone che in caso di perdita della comunicazione con lo SCADA, ogni PLC continui ad eseguire il suo programma locale con i parametri di riferimento nominali. Il sistema SCADA ha diritto di scrittura sui setpoint, ma non è in the control loop critico.

04 Interfaccia HMI — Ignition 8.x

La piattaforma scelta è Ignition 8.x (Inductive Automation) per la sua architettura web-based, scalabilità illimitata dei tag e piena conformità ISA. Le schermate sono organizzate in una gerarchia navigabile con drill-down contestuale.

PORTATA INGRESSO
142.3 m³/h
CLORO RESIDUO
0.18 mg/L ⚠
TORBIDITÀ USCITA
0.42 NTU
pH DISTRIBUZIONE
7.31
POMPA P-01
IN MARCIA
POMPA P-02
IN MARCIA
DOSATORE Cl₂
ALLARME
FILTRO F-03
BACKWASH

Le schermate sviluppate coprono:

  • Overview P&ID: vista animata dell'intero impianto con stato valvole, pompe e flusso acqua
  • Stazione di pompaggio: portate, pressioni, ore di marcia, velocità inverter, curva pompa vs. punto di lavoro
  • Sezione chimica: trend dosaggi, livelli serbatoi reagenti, calcolo consumo specifico g/m³
  • Qualità acqua: trend storico parametri analitici, bande di conformità normativa, report automatici
  • Filtri: ciclo filtrazione/backwash, contropressione, perdita di carico, previsione pulizia
  • Energy dashboard: consumo per sezione, costo specifico €/m³, efficienza pompe (curva η)

05 Gestione Allarmi — ISA-18.2

Il sistema di allarmi è progettato secondo la norma ISA-18.2. Ogni allarme è documentato in un Alarm Rationalization Record che ne definisce causa, effetto, priorità, soglia e azione attesa dell'operatore. L'obiettivo è evitare l'alarm flooding che compromette la sicurezza dell'impianto.

Target ISA-18.2: < 1 allarme/operatore/10 min in condizioni normali; < 10 allarmi/operatore/10 min in condizioni disturbate. Al di sopra di questi limiti si parla di alarm flood, che può portare l'operatore a ignorare allarmi critici.

TagDescrizioneSogliaPrioritàAzione automatica
AI-301Cloro residuo basso< 0.15 mg/LCRITICALAumento dosaggio + notifica
AI-302Torbidità uscita alta> 1.0 NTUCRITICALBypass + backwash forzato
PI-101Pressione pompa bassa< 1.5 barWARNINGAvvio pompa di riserva
LI-501Serbatoio Cl₂ basso< 15 %WARNINGOrdine rifornimento automatico
AI-101pH fuori range< 6.5 o > 8.5CRITICALStop distribuzione + correzione pH
DI-200Guasto comunicazione PLCTimeout > 5 sINFOFallback a controllo locale

06 Protocolli di Comunicazione

OPC-UA
Comunicazione PLC→SCADA. Standard industriale con sicurezza a certificati X.509. Namespace unificato con semantic model.
PROFINET IO
Rete di campo tra PLC Siemens e moduli ET 200SP. Cycle time < 1 ms, diagnostica device integrata.
HART 7
Comunicazione con smart transmitter. Diagnostica remota e parametrizzazione senza interrompere il segnale 4-20 mA.
Modbus TCP
Comunicazione legacy con analizzatori di qualità acqua e inverter pompe di vecchia generazione.
MQTT Sparkplug B
Pubblicazione dati verso cloud analytics (Azure IoT Hub) per manutenzione predittiva e benchmarking multi-impianto.
VPN IPsec
Accesso remoto sicuro per manutenzione. Autenticazione 2FA, accesso limitato a zone specifiche della rete OT.

07 Cybersecurity — IEC 62443

Gli impianti idrici sono infrastrutture critiche ai sensi della Direttiva NIS2. Il progetto implementa i principi della norma IEC 62443 per la sicurezza dei sistemi di controllo industriale, con un target di Security Level SL-2: protezione da attaccanti con risorse medie e motivazione elevata.

  • Segmentazione di rete: rete OT fisicamente separata dalla rete IT tramite DMZ con firewall industriale. Nessun accesso diretto da internet alla rete di campo.
  • Defense in depth: whitelist applicativa sui PLC, patch management programmato, rilevamento anomalie con Claroty/Nozomi.
  • Gestione accessi RBAC: quattro ruoli (operatore, ingegnere di processo, manutentore, amministratore) con log immutabile di tutte le azioni.
  • Backup e ripristino: backup automatico di programmi PLC e configurazioni SCADA. RTO < 4 ore in caso di incidente.

Il Security Level SL-2 (IEC 62443-3-3) è il livello minimo raccomandato per infrastrutture idriche critiche. Il rispetto di questo livello è diventato un requisito cogente in molti paesi europei dopo le estensioni della Direttiva NIS2 al settore idrico.

08 Risultati e KPI di Progetto

KPITargetRisultatoNote
Disponibilità sistema SCADA> 99.5 %99.7 %Hot standby server
Allarmi / operatore / 10 min< 1 (normale)0.6ISA-18.2 compliant
Qualità acqua distribuita100 % conforme100 %D.Lgs. 31/2001
Latenza loop di controllo< 100 ms~35 msOPC-UA ottimizzato
Riduzione consumi chimici> 10 %14 %PID adattivo Cl₂
Riduzione consumo energetico> 8 %11 %Inverter + scheduling pompe
MTTR (rilevato → riparato)< 4 ore2.1 oreDiagnostica HART

L'integrazione SCADA con diagnostica HART e controllo adattivo ha ridotto simultaneamente i costi operativi (−14% chimici, −11% energia) e il rischio di non conformità normativa. Il ROI stimato è di 18–24 mesi su un impianto reale di medie dimensioni.

09 Download — File di Progetto

Il progetto è sviluppato in collaborazione con Samuele Galbiati. I file sorgente comprendono i programmi PLC in TIA Portal, la configurazione Ignition SCADA e la documentazione tecnica completa. I file sono disponibili nel repository GitHub del progetto.

Simulazione di Processo
Simulazione interattiva del processo di potabilizzazione: PID Cl₂ in loop chiuso, allarmi ISA-18.2 live, disturbi e guasti simulabili in tempo reale.
Apri Simulazione
// Runs in browser · No install required
Diagramma di Rete
Diagramma interattivo dell'architettura di rete SCADA: zone ISA-95, firewall, PLC Siemens, protocolli OPC-UA e PROFINET con hover tooltip su ogni nodo.
Apri Network Diagram
// ISA-95 · IEC 62443 · Interactive SVG
Programmi PLC
Codice sorgente TIA Portal V17 per tutti e 5 i PLC Siemens. Include Function Block, logiche Ladder e loop PID in Structured Text.
GitHub Repository
// TIA Portal V17 · IEC 61131-3
Configurazione Ignition
Export del progetto Ignition SCADA: schermate HMI, tag database, regole di allarme ISA-18.2 e report automatici.
GitHub Repository
// Ignition 8.x · .gwbk format
Documentazione Tecnica
Report di progetto completo: architettura, P&ID, alarm rationalization record, piano di cybersecurity IEC 62443 e risultati KPI.
GitHub Repository
// PDF · P&ID · Alarm register
Security Assessment
Documento di analisi del rischio IEC 62443, threat model, matrice RBAC e piano di risposta agli incidenti.
Coming soon
// IEC 62443-3-2 · NIS2
// Interactive
SCADA Process Simulation
PID Cl₂ in loop chiuso, sistema allarmi ISA-18.2 live, disturbi e guasti simulabili.
▶ Simulazione
// Network Diagram
SCADA Network — IEC 62443
Diagramma di rete interattivo: zone ISA-95, PLC, firewall, protocolli con hover tooltip.
⬡ Network Diagram