Lezione 11 di 15

S7 CC Lezione 11

πŸŽ“ S7 PLC Crash Course Β· Lezione 11

HMI β€” Human Machine Interface πŸ“Ÿ

KTP700   Button   Gauge   Tank   Motor
L’interfaccia operatore β€” pulsanti, indicatori, animazioni di processo
e 8 modelli di pannello Siemens.

🎯 Cosa impari in questa lezione

  • Cos’Γ¨ un HMI e a cosa serve in un impianto
  • Gli 8 modelli di pannello Siemens nel simulatore
  • I 16 tipi di widget: input, visualizzazione, processo
  • Come collegare i widget alle variabili PLC
  • Multi-pagina, tasti funzione e sistema allarmi
  • Progetto guidato: pannello controllo motore

πŸ“‹ Scheda lezione

Modulo11 β€” Interfaccia Operatore
Lezione11 di 15
Livello⭐⭐⭐ Avanzato
Tempo~45 minuti
Elementi nuovi16 widget HMI
PrerequisitiLezione 10

🧠 Cos’Γ¨ un HMI β€” gli occhi e le mani dell’operatore

Il PLC Γ¨ una scatola senza schermo, montata in un quadro elettrico chiuso. L’operatore non puΓ² vederci dentro β€” e non deve aprire il quadro ogni volta che vuole sapere se il motore gira o quanti pezzi sono stati contati.

L’HMI (Human Machine Interface) Γ¨ il pannello touch che risolve questo problema. È montato sulla porta del quadro o su un braccio a lato della macchina, e permette all’operatore di:

  • Vedere lo stato dell’impianto: lampade, gauge, livelli, conteggi, allarmi
  • Comandare il processo: pulsanti START/STOP, regolazione setpoint, selezione modalitΓ 
  • Diagnosticare problemi: storico allarmi, trend di temperatura, contatori di manutenzione

Nel mondo Siemens, gli HMI si programmano con WinCC (dentro TIA Portal). Il simulatore ne replica le funzionalitΓ  essenziali con un editor drag & drop integrato.


πŸ“Ÿ I modelli di pannello

Il simulatore replica 8 modelli reali Siemens, divisi in due serie. Puoi cambiare modello in qualsiasi momento dal menu a tendina nell’editor HMI.

Basic Panels (grigio)

KTP4004.3″480Γ—2724 F-key
KTP7007″800Γ—4808 F-key
KTP9009″800Γ—4808 F-key
KTP120012″1280Γ—80010 F-key

Tasti funzione in basso. Il modello piΓΉ usato per le lezioni: KTP700.

Comfort Panels (nero)

TP7007″800Γ—4808 F-key
TP9009″800Γ—4808 F-key
TP120012″1280Γ—80014 F-key
TP150015.4″1280Γ—80018 F-key

Tasti funzione ai lati (4+4 o 7+7 o 9+9). Per progetti avanzati.


🧩 I 16 widget β€” il catalogo completo

Ogni widget si aggiunge con un click dalla toolbar HMI, si posiziona con drag & drop e si configura con un doppio click. Tutti i widget si collegano a variabili PLC (I, Q, M, MW, IW, QW).

Elementi di Input β€” l’operatore comanda

πŸ”˜ Button
Pulsante momentaneo o toggle. Scrive un bit (I o M) quando premuto.
ModalitΓ : momentary (premuto = 1, rilasciato = 0) o toggle (click alterna)
πŸ”€ Switch
Interruttore bistabile. Ogni click alterna 0/1. Simula un selettore fisico.
Variabile: tipicamente I o M (bit)
🎚️ Slider
Regolatore analogico. Scrive un valore word (MW o QW) tra min e max.
Variabile: MW (word), range configurabile

Elementi di Visualizzazione β€” l’operatore osserva

πŸ’‘ LED
Indicatore luminoso. Cambia colore (verde, rosso, giallo…) in base a un bit.
πŸ”’ Display
Mostra un valore numerico: MW, IW, QW, Counter CV o Timer ET.
🎯 Gauge
Indicatore a lancetta circolare. Range min/max configurabile.
πŸ“Š Bargraph
Barra di livello verticale. Proporzionale al valore della variabile.
πŸ“ˆ Trend
Grafico temporale in tempo reale. Mostra l’andamento di una variabile nel tempo.
🏷️ Text
Etichetta statica. Per titoli, descrizioni e valori con template {v}.

Elementi di Processo β€” l’impianto prende vita

βš™οΈ Motor
Animazione motore rotante. Il rotore gira quando il bit Γ¨ a 1.
πŸ”§ Valve
Valvola aperta/chiusa. Cambia colore e forma in base al bit.
πŸ’§ Pump
Pompa con animazione rotante. Attiva/ferma in base al bit.
πŸ›’οΈ Tank
Serbatoio con livello animato. Collegato a MW (0–100%).
πŸ”„ Conveyor
Nastro trasportatore animato. Le “tacche” si muovono quando attivo.
🚦 Light
Colonna luminosa a 3 colori. Valore 1=rosso, 2=giallo, 3=verde.

πŸ”— Collegare un widget alla variabile PLC

Ogni widget Γ¨ collegato a una variabile PLC tramite tre parametri: Tipo (I, Q, M, MW, IW, QW), Numero (byte o indirizzo word) e Bit (solo per tipi bit). Il widget legge o scrive quella variabile in tempo reale durante la simulazione.

WidgetDirezioneVariabili tipicheTipo valore
Button, SwitchScrive nel PLCI0.0, M0.0Bit (0/1)
SliderScrive nel PLCMW0, QW64Word (0–65535)
LEDLegge dal PLCQ0.0, M0.0Bit (0/1)
Display, Gauge, BargraphLegge dal PLCMW0, IW64, C0.CVWord
Motor, Valve, Pump, ConveyorLegge dal PLCQ0.0, Q0.1Bit (0/1)
TankLegge dal PLCMW0Word (0–100%)
LightLegge dal PLCMW0Word (0=off, 1=R, 2=Y, 3=G)
TrendLegge dal PLCMW0, IW64Word (continuo)

πŸ’‘ Il principio Γ¨ semplice: i widget di input (Button, Switch, Slider) scrivono variabili PLC β€” l’operatore comanda il processo. I widget di output (LED, Gauge, Motor, Tank…) leggono variabili PLC β€” l’operatore osserva lo stato. Il programma Ladder sta nel mezzo e fa la logica.


πŸ“‘ Multi-pagina, Tasti Funzione e Allarmi

πŸ“‘ Multi-pagina

Come su un pannello reale, puoi creare piΓΉ pagine β€” una per la vista generale, una per i parametri, una per gli allarmi. Le tab in basso permettono di passare da una pagina all’altra. Ogni pagina ha i suoi widget indipendenti.

πŸ”² Tasti Funzione (F1–F18)

I tasti fisici intorno allo schermo. Configurabili per: cambiare pagina, set/reset/toggle un bit, o scrivere un valore. Il numero di tasti dipende dal modello (da 4 nel KTP400 a 18 nel TP1500).

πŸ”” Sistema Allarmi

Messaggi con condizioni di attivazione (un bit) e presa visione (acknowledge). Quando la condizione diventa vera, l’allarme appare nella barra. L’operatore deve fare “acknowledge” per confermare di averlo visto.


πŸ’» Progetto guidato: Pannello Controllo Motore

Costruiamo insieme un HMI completo per controllare un motore con marcia/arresto. Serve sia il programma Ladder che il pannello HMI.

Passo 1 β€” Il programma Ladder

Crea un semplice marcia/arresto con Set/Reset (lezione 03):

Network 1 // START motore (da pulsante HMI su I0.0)
I0.0 ── β”œβ”€ ────────── ─(S)─ Q0.0

Network 2 // STOP motore (da pulsante HMI su I0.1)
I0.1 ── β”œβ”€ ────────── ─(R)─ Q0.0

Passo 2 β€” Apri l’editor HMI

  1. Clicca il pulsante πŸ“Ÿ HMI nella toolbar
  2. Si apre il pannello HMI con il canvas vuoto
  3. Seleziona il modello KTP700 Basic PN dal menu a tendina (se non Γ¨ giΓ  selezionato)

Passo 3 β€” Aggiungi i widget

Clicca i pulsanti nella toolbar HMI per aggiungere gli elementi, poi trascinali nella posizione desiderata:

#WidgetLabelVariabileNote
1TextCONTROLLO MOTOREβ€”Titolo in alto, centrato
2ButtonSTARTI0.0Colore verde, modo momentary
3ButtonSTOPI0.1Colore rosso, modo momentary
4LEDRUNNINGQ0.0Colore verde β€” si accende quando il motore gira
5MotorM1Q0.0Animazione rotante quando Q0.0=1

Passo 4 β€” Configura ogni widget

Doppio click su ciascun widget per aprire la configurazione. Imposta la variabile (tipo, byte, bit), il colore e la label come indicato nella tabella sopra.

Passo 5 β€” Testa!

  1. Premi RUN nella toolbar β€” l’HMI entra in modalitΓ  esecuzione
  2. Premi il pulsante START sull’HMI β†’ il LED RUNNING si accende, il Motor inizia a ruotare
  3. Premi STOP β†’ tutto si ferma
  4. Nota: i pulsanti HMI scrivono direttamente nelle variabili I0.0 e I0.1 β€” il programma Ladder li legge normalmente

πŸ” Flusso dati: Pulsante HMI (START) β†’ scrive I0.0=1 β†’ il Ladder legge I0.0 β†’ Set Q0.0 β†’ il LED HMI legge Q0.0=1 β†’ si illumina. L’HMI Γ¨ l’interfaccia, il Ladder Γ¨ il cervello, gli I/O sono il ponte.


πŸ‹οΈ Esercizi pratici

Esercizio 11.1 β€” Pannello Controllo Motore

Implementa il progetto guidato descritto sopra. Aggiungi anche un’etichetta Text con il nome del motore e sistema i widget in una disposizione ordinata.


Esercizio 11.2 β€” Dashboard Serbatoio

Crea un pannello di monitoraggio serbatoio con questi widget:

  1. Tank collegato a MW0 β€” mostra il livello
  2. Gauge collegato a MW0 β€” indicatore a lancetta (range 0–100)
  3. Display collegato a MW0 β€” valore numerico
  4. Bargraph collegato a MW0 β€” barra verticale
  5. Slider collegato a MW0 β€” per simulare il sensore di livello
  6. Text β€” “LIVELLO SERBATOIO” come titolo

RUN β†’ muovi lo slider e osserva Tank, Gauge, Display e Bargraph aggiornarsi in tempo reale.


Esercizio 11.3 β€” HMI + Ladder combinati

Combina HMI e Ladder: il serbatoio dell’esercizio 11.2 con il controllo livello della lezione 09:

  • Lo Slider HMI scrive su MW0 (simula il sensore)
  • Nel Ladder: MW0 < 20 β†’ Set Q0.0 (pompa ON), MW0 > 80 β†’ Reset Q0.0 (pompa OFF)
  • Nell’HMI: aggiungi una Pump collegata a Q0.0 e un LED “POMPA” collegato a Q0.0
  • RUN β†’ muovi lo slider. La pompa si avvia automaticamente quando il livello Γ¨ basso e si ferma quando Γ¨ alto

Esercizio 11.4 β€” Sfida: pannello semaforo

Sfida: riprendi il programma semaforo della lezione 06 e costruisci un HMI con:

  • Una Light (colonna luminosa) collegata a un MW che codifica il colore (1=rosso, 2=giallo, 3=verde)
  • Un Button START e un Button STOP
  • Un Display che mostra il tempo rimasto nella fase corrente
  • Un Text che indica la fase corrente
Suggerimento per la Light

La Light legge un valore MW. Nel Ladder, aggiungi dei Network che scrivono il valore in MW0: se M0.0 (verde) β†’ MW0=3, se M0.1 (giallo) β†’ MW0=2, se M0.2 (rosso) β†’ MW0=1. Dato che il simulatore non ha istruzioni MOVE dirette, puoi usare un approccio creativo: Set/Reset diversi Merker che controllano il valore, oppure gestirlo interamente con i comparatori che hai imparato.


Esercizio 11.5 β€” Sfida: HMI multi-pagina

Sfida avanzata: crea un HMI con due pagine:

  • Pagina 1 “Controllo”: pulsanti START/STOP, LED stato motore, Motor animato
  • Pagina 2 “Monitoraggio”: Tank con livello, Gauge temperatura, Trend del livello nel tempo
  • Configura un tasto funzione F1 per passare alla Pagina 1 e F2 per la Pagina 2

❓ Quiz rapido

1. Un pulsante HMI Γ¨ configurato come “momentary” su I0.0. Cosa succede quando l’operatore preme e rilascia?

Mostra risposta

Quando preme: I0.0 = 1. Quando rilascia: I0.0 = 0. È come un pulsante fisico β€” attivo solo finchΓ© Γ¨ premuto. Se il programma Ladder usa un’autoritenuta o un Set, l’azione persiste. Se usa una bobina standard, l’azione dura solo il tempo della pressione.


2. Un LED HMI Γ¨ collegato a Q0.0 ma non si accende quando il motore gira. Cosa controllo?

Mostra risposta

Verifica la configurazione del widget: tipo variabile (deve essere Q), byte (0) e bit (0). Se tutto Γ¨ corretto, verifica che il programma Ladder stia effettivamente scrivendo Q0.0 = 1 (controlla nel pannello I/O a destra). Se Q0.0 Γ¨ a 1 nel pannello ma il LED HMI non si accende, il collegamento del widget Γ¨ sbagliato.


3. Qual Γ¨ la differenza tra un Button “momentary” e un Button “toggle”?

Mostra risposta

Momentary: attivo (1) solo mentre Γ¨ premuto, torna a 0 al rilascio. Come un pulsante fisico a molla. Toggle: ogni click alterna lo stato (0β†’1, 1β†’0). Come un interruttore. Scegli momentary per START/STOP (il Ladder gestisce la memoria con Set/Reset), toggle per selettori ON/OFF dove vuoi che lo stato resti.


4. Un Tank mostra il 50% ma nel Ladder MW0 vale 13824. PerchΓ© non mostra 13824?

Mostra risposta

Il Tank interpreta il valore MW come percentuale di riempimento (0–100). Se il range del widget Γ¨ configurato come 0–100, il valore 50 nel MW corrisponde al 50% di riempimento. Se MW0 vale 13824, il Tank mostra erroneamente un livello fuori scala (>100%). La soluzione: nel Ladder, converti il valore analogico (0–27648) in percentuale (0–100) prima di scriverlo in MW, oppure configura il range del Tank su 0–27648.


5. Posso avere piΓΉ widget collegati alla stessa variabile?

Mostra risposta

SΓ¬, quanti ne vuoi! Nell’esercizio 11.2, Tank, Gauge, Display e Bargraph leggono tutti MW0 β€” mostrano lo stesso dato in modi diversi. È una pratica comune: un Display mostra il numero esatto, un Gauge dΓ  una lettura intuitiva “a colpo d’occhio”, e un Trend mostra l’andamento nel tempo. PiΓΉ widget = piΓΉ informazione per l’operatore.

Prossima lezione β†’

Lezione 12 β€” Gestione Progetti e Salvataggio
πŸ’Ύ Salva   πŸ“€ Esporta   πŸ“₯ Importa
Salvare, esportare, organizzare β€” e preparare il portfolio
per i progetti finali del livello Esperto.

Β© Prof. D. Bertolino Β· S7 PLC Crash Course Β· Unofficial S7-1200 Simulator Β· Lezione 11