Lezione 15 di 15

S7 CC Lezione 15

🎓 S7 PLC Crash Course · Lezione 15

Best Practice e Troubleshooting 🏆

Le regole d’oro, gli errori comuni, la checklist di collaudo
e il tuo progetto finale di valutazione — l’ultima lezione del corso.

🎯 Cosa trovi in questa lezione

  • Le regole d’oro della programmazione PLC
  • Gli errori più comuni e come risolverli
  • Una checklist di collaudo universale
  • Come passare dal simulatore a TIA Portal
  • Il progetto finale di valutazione
  • E poi? I prossimi passi nel mondo dell’automazione

📋 Scheda lezione

Modulo15 — Chiusura Corso
Lezione15 di 15 🏁
Livello⭐⭐⭐⭐ Esperto
Tempo~30 min lettura + progetto
Elementi nuoviNessuno (sintesi)
PrerequisitiLezioni 01–14

📏 Le regole d’oro della programmazione PLC

In 14 lezioni hai imparato gli strumenti. Ora impari le abitudini che separano un programma che funziona da un programma che funziona bene — leggibile, manutenibile, sicuro.

🛑 Sicurezza — sempre per prima

R1 — STOP > START, sempre
Lo STOP deve avere priorità sullo START in ogni circuito. Nel Ladder: il Network di Reset viene dopo il Network di Set. Nell’autoritenuta: il contatto NC dello STOP è in serie dopo il parallelo START/autoritenuta.
R2 — Emergenza = NC (fail-safe)
Il pulsante di emergenza usa sempre un contatto NC: normalmente chiuso (lascia funzionare), premuto = aperto (ferma tutto). Se il cavo si rompe → circuito aperto → sistema fermo. Mai il contrario.
R3 — Sicurezza per prima nel programma
I Network di emergenza e arresto devono essere i primi del programma. Il PLC li valuta per primi ad ogni ciclo — anche se qualcosa va storto dopo, la sicurezza è già stata processata.
R4 — Interblocco obbligatorio
Movimenti opposti (avanti/indietro, su/giù, carico/scarico) devono essere interbloccati. Anche se “sembra impossibile” che entrambi siano attivi — con un bug o un Merker corrotto, succede.

📐 Organizzazione — leggibilità è manutenibilità

R5 — Commenta ogni Network
Scrivi COSA fa, non COME. “Avvio pompa riempimento” è utile. “Set Q0.0 se M0.0 AND NOT I0.6” è già leggibile nel Ladder.
R6 — Un’uscita, un responsabile
Ogni uscita (Q) deve essere scritta da un solo Network con bobina standard, oppure da una coppia Set/Reset ben identificata. Mai due Network con ─( )─ Q0.0 — il secondo cancella il primo.
R7 — Struttura a sezioni
Ordine: ① Sicurezza/Emergenza → ② Transizioni sequenza → ③ Uscite fisiche → ④ Segnalazione/HMI. Sempre. In ogni progetto.
R8 — Convenzione Merker
Decidi una convenzione e rispettala: M0.x = passi sequenza, M1.x = flag di stato, M2.x = condizioni intermedie. Documentala nel primo commento del programma.

⚡ Performance — efficienza conta

R9 — Timer ragionevoli
Evita preset sotto 100ms per usi non critici. Con scan time di 50ms, un timer da 30ms non ha precisione sufficiente — potrebbe scattare al primo o al secondo ciclo, con un errore del 100%.
R10 — Timeout per ogni operazione
Se aspetti un sensore (livello alto, finecorsa, temperatura), aggiungi sempre un timer di timeout. Se il sensore non risponde entro X secondi → allarme. Mai lasciare la sequenza “appesa” in attesa infinita.

🔧 Errori comuni e soluzioni

Dopo 14 lezioni di pratica, questi sono gli errori che si vedono più spesso. Se qualcosa non funziona nel tuo programma, controlla questa lista prima di tutto:

ErroreSintomoCausaSoluzione
Bobine in serieErrore quando aggiungi una bobinaIl simulatore blocca bobine in serie nella sezione usciteUsa Network separati per ogni uscita, o rami paralleli nella sezione uscite
Doppia assegnazioneL’uscita “lampeggia” o non rispondeDue Network con ─( )─ Q0.0 — il secondo cancella il primoUsa Set/Reset in Network separati, oppure unifica la logica in un solo Network
Timer che non parteET resta a 0La condizione di ingresso non è stabile (lampeggia tra 0 e 1)Verifica la catena di contatti: se uno oscilla, il timer si resetta ad ogni ciclo
Counter che non contaCV resta fermoL’ingresso è tenuto a 1 (stato) anziché generare fronti (transizioni 0→1)Il counter conta i fronti, non gli stati. L’ingresso deve tornare a 0 prima di un nuovo conteggio
Sequenza bloccataIl processo si ferma a un passoLa condizione di transizione non si verifica, o il Merker di reset non funzionaControlla i Merker nel pannello I/O: quale è attivo? La condizione di avanzamento è vera? Il Merker precedente è stato resettato?
Due passi attiviUscite conflittuali (es: carico + scarico)Manca il Reset del passo precedente nella transizioneOgni Set di un nuovo passo deve avere il corrispondente Reset del passo precedente
HMI non si aggiornaWidget mostra valore errato o fissoL’indirizzo del widget non corrisponde alla variabile nel LadderDoppio click sul widget → verifica tipo (I/Q/M/MW), byte e bit
Emergenza non funzionaIl sistema non si fermaL’emergenza è su un contatto NA invece che NC, o i Reset sono prima dei SetL’emergenza deve usare un contatto NA che legge l’ingresso NC del pulsante. I Network di Reset emergenza devono essere i primi del programma

💡 Metodo di debug sistematico: quando qualcosa non funziona, metti il simulatore in RUN e osserva il pannello I/O. Guarda gli ingressi (sono quelli che ti aspetti?), poi i Merker (il passo corretto è attivo?), poi le uscite (corrispondono al passo?). Risali la catena logica fino a trovare il punto dove la realtà diverge dall’aspettativa.


✅ Checklist universale di collaudo

Ogni progetto, prima di essere consegnato o messo in produzione, deve superare questa checklist. Stampa e usa per ogni esercizio futuro:

🔒 SICUREZZA
☐ Tutte le uscite hanno una condizione di arresto/emergenza?
☐ L’emergenza ferma TUTTO (compresi timer attivi e sequenze)?
☐ Lo STOP ha priorità sullo START in ogni circuito?
☐ I movimenti opposti sono interbloccati?
☐ I pulsanti di sicurezza usano logica NC (fail-safe)?

🔄 SEQUENZE
☐ Un solo Merker/passo è attivo in ogni momento?
☐ Ogni transizione fa Set del nuovo passo E Reset del precedente?
☐ C’è un percorso di ritorno allo stato iniziale (reset o ciclo)?
☐ I timer hanno timeout ragionevoli?
☐ I counter hanno una condizione di reset?

📟 HMI
☐ L’HMI mostra tutti gli stati critici del processo?
☐ I pulsanti HMI sono collegati agli indirizzi corretti?
☐ I widget di visualizzazione si aggiornano in tempo reale?
☐ Esiste un modo per l’operatore di vedere il passo corrente?

📋 DOCUMENTAZIONE
☐ Ogni Network ha un commento descrittivo?
☐ La tabella I/O è documentata?
☐ La convenzione Merker è documentata?
☐ Il progetto è salvato come file .json?

🌉 Dal simulatore a TIA Portal — cosa cambia

Quando aprirai TIA Portal per la prima volta, ti troverai in un ambiente molto più complesso — ma i concetti sono esattamente gli stessi. Ecco cosa cambia e cosa resta uguale:

✅ Uguale

  • Contatti NA, NC, P, N
  • Bobine standard, Set, Reset
  • Timer TON, TOF, TP (con IEC timers)
  • Counter CTU, CTD, CTUD
  • Comparatori
  • Network, commenti, struttura
  • Indirizzamento I/Q/M/IW/QW/MW
  • Ciclo di scansione
  • Logica AND/OR/NOT
  • Set/Reset e autoritenuta
  • Sequenze a Merker
  • HMI con WinCC (concetti identici)

🆕 Nuovo in TIA Portal

  • Data Block (DB) — strutture dati organizzate
  • Function Block (FB/FC) — sottoprogrammi riusabili
  • SCL — programmazione testuale (come il C)
  • PROFINET — comunicazione di rete
  • Tag table — nomi simbolici per ogni I/O
  • MOVE, CALCULATE — istruzioni aritmetiche
  • Cross-reference — dove è usata ogni variabile
  • Simulazione online — test con PLC reale
  • Diagnostica — errori hardware
  • Safety — programmazione F-CPU

La colonna di sinistra è tutto ciò che hai imparato in questo corso. La colonna di destra è ciò che aggiungerai con TIA Portal. Ma il punto chiave è: la logica Ladder, i timer, i counter, le sequenze e l’HMI funzionano esattamente allo stesso modo. Quello che cambia è l’ambiente software, non i concetti.


📊 Riepilogo del corso — tutto ciò che sai

LezioneConcettiElementi appresi
01PLC, scan cycle, S7-1200, indirizzamentoI, Q, M, IW, QW, MW, T, C
02Ladder Logic, AND/OR/NOTContatto NA, NC, Bobina
03Memoria, priorità STOPSet, Reset, autoritenuta
04Variabili interne, sequenze, interbloccoMerker M, Memory Word MW
05Ritardo all’eccitazioneTimer TON
06Ritardo alla diseccitazione, impulsoTimer TOF, TP
07Conteggio eventiCounter CTU, CTD, CTUD
08Cattura del cambiamentoEdge P, Edge N
09Segnali continui, 0–27648I/O Analogici, NORM_X/SCALE_X
10Confronto valori numerici6 Comparatori
11Interfaccia operatore16 widget HMI, 8 pannelli
12Salvataggio, organizzazioneJSON, Undo/Redo, portfolio
13Progetto completo 1Nastro trasportatore
14Progetto completo 2Impianto di miscelazione
15Best practice, troubleshootingRegole d’oro, checklist

In totale: 19 elementi Ladder (4 contatti, 3 bobine, 3 timer, 3 counter, 6 comparatori), 16 widget HMI, 8 modelli di pannello, 9 CPU, 15 moduli di espansione. E la capacità di combinarli in sistemi completi.


🎓 Progetto finale di valutazione

Progetta un sistema di automazione a tua scelta che dimostri la padronanza di tutti i concetti del corso. Può essere realistico (un impianto che esiste) o inventato (un processo che ti piacerebbe automatizzare).

Requisiti minimi

Ladder Logic
☐ Almeno 6 ingressi e 6 uscite digitali
☐ Almeno 1 ingresso analogico con comparatore
☐ Almeno 2 timer di tipo diverso (TON + TOF o TP)
☐ Almeno 1 contatore (CTU, CTD o CTUD)
☐ Almeno 1 rilevamento fronte (P o N)
☐ Un circuito di emergenza funzionante
☐ Almeno 1 interblocco tra azioni incompatibili
HMI e Documentazione
☐ Un HMI completo con almeno 2 pagine
☐ Almeno 8 widget (input + output + processo)
☐ Un commento su ogni Network
☐ Una tabella I/O documentata (nel commento del Network 1 o su carta)
☐ Il progetto salvato come file .json
☐ Un breve testo descrittivo (cosa fa il sistema, come funziona)

Idee per il progetto (scegli una o inventa la tua)

🚗 Autolavaggio
Sensore presenza auto → ciclo: prelavaggio 10s → sapone 15s → risciacquo 20s → asciugatura 30s. Semaforo ingresso, contalavaggi, HMI con animazioni.
🏗️ Gru a ponte
Movimenti: su/giù, destra/sinistra (interbloccati). Finecorsa su ogni asse. Sensore carico (analogico). Allarme sovraccarico. Modalità AUTO/MAN.
🍕 Forno industriale
Sequenza: carica → riscalda fino a temperatura → mantieni X minuti → raffredda → scarica. Sensore temperatura analogico, trend, allarme sovra-temperatura.
🅿️ Parcheggio automatico
Sensori ingresso/uscita, CTUD per posti disponibili, sbarra automatica con timer, display posti liberi, semaforo COMPLETO/LIBERO.
🚰 Stazione di pompaggio
Due pompe con alternanza automatica, sensori livello alto/basso, isteresi, allarme troppo pieno, contacicli per manutenzione, HMI con Tank e Pump.
📦 Macchina confezionatrice
Nastro alimentazione → dosaggio (TP) → saldatura (timer) → espulsione. Contapezzi per scatole, cambio formato con selettore, HMI con Conveyor e counter.

⚠️ Non esiste un progetto “troppo semplice” se soddisfa i requisiti minimi. Un autolavaggio ben fatto, con tutti i commenti, l’emergenza funzionante, l’HMI completo e i test documentati, vale più di una centrale nucleare con metà dei Network senza commento. La qualità batte la complessità.


🚀 E poi? I prossimi passi

Hai completato il corso S7 PLC Crash Course. Ma il percorso nell’automazione non finisce qui — è appena iniziato. Ecco dove puoi andare ora:

  1. Installa TIA Portal — la versione trial è gratuita per 21 giorni. Ricrea uno dei tuoi progetti del simulatore in TIA Portal: vedrai quanto è familiare
  2. Prova con hardware reale — un S7-1200 Starter Kit costa poche centinaia di euro. Collegare un LED reale a Q0.0 e vederlo accendersi con il tuo programma è un’emozione che il simulatore non può dare
  3. Impara SCL — il Structured Text (SCL in Siemens) è il passo successivo. Permette calcoli complessi, cicli FOR, gestione stringhe — tutto ciò che il Ladder fa con difficoltà
  4. Esplora le comunicazioni — PROFINET, Modbus TCP, OPC UA. Come fa un PLC a parlare con un altro PLC, con un robot, con un sistema SCADA
  5. Studia la sicurezza funzionale — la programmazione F-CPU per applicazioni dove la sicurezza è certificata (presse, robot, macchine pericolose)

🏆 Congratulazioni!

Hai completato il corso S7 PLC Crash Course.

15 lezioni · 19 elementi Ladder · 16 widget HMI · 2 progetti completi
Da “cos’è un PLC?” a impianti di miscelazione con sequenze a 8 passi.

Le competenze che hai acquisito con il simulatore si trasferiscono direttamente all’hardware reale e a TIA Portal. Quando aprirai un progetto industriale, riconoscerai i Network, i timer, i counter, le sequenze a Merker e l’HMI — perché li hai già costruiti, testati e debuggati decine di volte.

Ora sei pronto per il mondo reale.

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