S7 CC Lezione 05
🎓 S7 PLC Crash Course · Lezione 05
Timer TON — Ritardo all’Eccitazione ⏱️
[TON] PT ET Q
Il timer più usato in automazione — ritardi, filtri e lampeggianti.
🎯 Cosa impari in questa lezione
- A cosa servono i timer in automazione
- Come funziona il TON (Timer On-Delay) ciclo per ciclo
- I tre parametri: IN, PT (preset), ET (elapsed time)
- Come inserire e configurare un TON nel simulatore
- Come leggere il conteggio nel pannello Timer
- Pattern pratici: ritardo di avvio, anti-rimbalzo, lampeggiante
📋 Scheda lezione
| Modulo | 5 — Timer Base |
| Lezione | 05 di 15 |
| Livello | ⭐⭐ Intermedio |
| Tempo | ~40 minuti |
| Elementi nuovi | 1 (Timer TON) |
| Prerequisiti | Lezione 04 |
🧠 Perché servono i timer
Finora i tuoi programmi reagivano istantaneamente: pulsante premuto → uscita attiva. Nel mondo reale, però, il tempo è un fattore fondamentale:
- Un motore non deve partire subito — serve un ritardo di sicurezza di 3 secondi per verificare che tutto sia in ordine
- Un sensore “rimbalza” meccanicamente quando si attiva — serve un filtro anti-rimbalzo di 100 ms
- Una lampada di allarme deve lampeggiare a 1 Hz per attirare l’attenzione
- Un dosatore deve erogare per esattamente 2.5 secondi
- Un ventilatore deve restare acceso 30 secondi dopo lo spegnimento del motore
Per tutto questo servono i timer. Il S7-1200 (e il simulatore) ne offre tre tipi: TON, TOF e TP. In questa lezione vediamo il primo e più importante: il TON.
⏱️ Il TON — Timer On-Delay
[TON]TON = Timer ON-delay. In italiano: ritardo all’eccitazione. Significato: l’ingresso deve restare attivo per almeno PT millisecondi prima che l’uscita si attivi.
Pensalo come un conto alla rovescia: quando l’ingresso si accende, il timer inizia a contare. Se il conteggio raggiunge PT, l’uscita diventa 1. Se l’ingresso si spegne prima che il conteggio finisca, il timer si azzera e ricomincia da capo la prossima volta.
I tre segnali del TON
| Segnale | Tipo | Descrizione |
|---|---|---|
| IN | Ingresso | La corrente logica che arriva al timer dalla catena di contatti a sinistra |
| PT (Preset Time) | Parametro | Il tempo da raggiungere, in millisecondi. Es: 3000 = 3 secondi |
| ET (Elapsed Time) | Valore corrente | Quanto tempo è passato dall’attivazione di IN. Sale da 0 a PT |
| Q | Uscita | Vale 1 quando ET ≥ PT. Vale 0 in tutti gli altri casi |
Comportamento nel tempo
Le 4 regole del TON
- IN = 1: il timer conta. ET sale da 0 verso PT, un po’ ad ogni ciclo di scansione
- ET raggiunge PT: l’uscita Q diventa 1 e ET si ferma a PT
- IN torna a 0 prima di PT: il timer si azzera (ET = 0, Q resta 0). Nessun effetto
- IN torna a 0 dopo PT: il timer si azzera (ET = 0) e Q torna a 0 immediatamente
In sintesi: l’ingresso deve restare stabile a 1 per almeno PT millisecondi. Il timer è come un guardiano che dice “sei sicuro? tieni premuto per 3 secondi, poi ti lascio passare”.
Cosa succede se IN è instabile?
Proprio per questo il TON è perfetto come filtro anti-rimbalzo: un sensore meccanico che “rimbalza” per 50 ms non farà mai scattare un TON con PT=100 ms.
🖥️ Il TON nel simulatore — passo per passo
Costruiamo il circuito base: I0.0 attivo per 3 secondi → Q0.0 si accende.
- Aggiungi un Network
- Trascina un Contatto NA → configura come
I0.0 - Trascina un Timer TON dalla Toolbox nella sezione ingressi, in serie dopo il contatto
- Clicca sul timer per configurarlo: Preset Time = 3000 (3 secondi)
- Trascina una Bobina → configura come
Q0.0 - Premi RUN
- Attiva
I0.0nel pannello I/O e tienilo attivo - Osserva il pannello Timer a destra: vedrai
T0: ET=0 / PT=3000e la barra che sale - Dopo 3 secondi: ET raggiunge 3000, la barra è piena, Q0.0 si accende!
- Disattiva I0.0 → tutto si resetta istantaneamente
💡 Dove sta il timer nel Network? Il TON si posiziona nella sezione ingressi (sinistra), in serie con i contatti. Riceve potenza dalla catena di contatti a sinistra e la “trasmette” alla bobina a destra solo dopo che il tempo è trascorso. È un elemento di condizione, non un’azione.
🔧 Pattern pratici con il TON
Pattern 1 — Ritardo di avvio (Star-Delta, sicurezza)
Un motore deve partire 3 secondi dopo il comando START, per dare tempo all’operatore di allontanarsi o per un ciclo di pre-lubrificazione.
Network 1 // Comando START con autoritenuta
I0.0 ─┤ ├─ ┬ I0.1 ─┤/├─ ─── ─( )─ M0.0 // flag “avvio richiesto”
M0.0 ─┤ ├─ ┘
Network 2 // Ritardo 3 secondi, poi motore ON
M0.0 ─┤ ├─ [TON T0, PT=3000] ── ─( )─ Q0.0 // motore
Network 3 // Lampada “attesa avvio” (lampeggia durante il ritardo)
M0.0 ─┤ ├─ NOT Q0.0 ─┤/├─ ─── ─( )─ Q0.1 // lampada “pre-avvio”
Il Network 3 è un tocco elegante: la lampada Q0.1 si accende durante i 3 secondi di attesa (M0.0=1 ma Q0.0=0 ancora), poi si spegne quando il motore parte.
Pattern 2 — Anti-rimbalzo (debounce)
Un finecorsa meccanico genera rimbalzi quando si attiva: il segnale oscilla tra 0 e 1 per circa 10-50 ms prima di stabilizzarsi. Senza filtro, un contatore potrebbe contare 5-10 impulsi invece di uno.
Network 1 // Filtra rimbalzo — segnale stabile dopo 100ms
I0.0 ─┤ ├─ [TON T0, PT=100] ─── ─( )─ M0.0 // sensore filtrato
Ora M0.0 diventa 1 solo se I0.0 resta stabile a 1 per almeno 100 ms. Tutti i rimbalzi vengono ignorati. Da questo punto in poi, usi M0.0 al posto di I0.0 nel resto del programma.
Pattern 3 — Lampeggiante (blinker)
Questo è il circuito più divertente da testare. Due timer TON che si “rimpallano” per creare un’oscillazione:
Network 1 // Fase ON: aspetta 500ms con Q0.0 spento, poi accendi
NOT Q0.0 ─┤/├─ [TON T0, PT=500] ── ─(S)─ Q0.0
Network 2 // Fase OFF: aspetta 500ms con Q0.0 acceso, poi spegni
Q0.0 ─┤ ├─ [TON T1, PT=500] ── ─(R)─ Q0.0
Come funziona: quando Q0.0 è OFF, T0 conta per 500 ms e poi fa il Set. Quando Q0.0 diventa ON, T0 si resetta (il suo ingresso NOT Q0.0 diventa 0) e T1 inizia a contare. Dopo 500 ms T1 fa il Reset. E il ciclo ricomincia.
Risultato: Q0.0 lampeggia a 1 Hz (500ms ON, 500ms OFF). Cambiando i preset puoi ottenere qualsiasi frequenza di lampeggio.
⚠️ Usa due timer diversi! T0 per la fase ON, T1 per la fase OFF. Se usi lo stesso timer per entrambi i Network, non funzionerà perché il secondo Network sovrascrive il primo.
📊 Riepilogo — scheda tecnica del TON
| Condizione | ET | Q | Significato |
|---|---|---|---|
| IN = 0 | 0 | 0 | Timer fermo, tutto azzerato |
| IN = 1, ET < PT | Sale verso PT | 0 | Timer in conteggio, uscita non ancora attiva |
| IN = 1, ET ≥ PT | = PT (fermo) | 1 | Tempo raggiunto! Uscita attiva |
| IN: 1 → 0 | → 0 (reset) | → 0 | Tutto si azzera immediatamente |
| IN: 1 → 0 → 1 (prima di PT) | → 0, poi riparte | 0 | Il conteggio ricomincia da capo |
🏋️ Esercizi pratici
Esercizio 5.1 — Ritardo di accensione
Q0.0 si accende 3 secondi dopo che I0.0 viene attivato. Se I0.0 viene rilasciato prima dei 3 secondi, il conteggio si azzera.
- Contatto NA (I0.0) → Timer TON (PT=3000) → Bobina Q0.0
- RUN → attiva I0.0, osserva ET nel pannello Timer
- Prova a rilasciare I0.0 dopo 2 secondi → ET torna a 0, Q0.0 non si è mai accesa
- Riattiva I0.0 e tienilo per 3 secondi → Q0.0 si accende
Esercizio 5.2 — Anti-rimbalzo
Un sensore su I0.0 rimbalza. Crea un filtro con TON (PT=100ms) che scrive il segnale filtrato su M0.0. Poi usa M0.0 (non I0.0!) per comandare Q0.0.
- Network 1: I0.0 → TON (PT=100) →
─( )─ M0.0 - Network 2: M0.0 →
─( )─ Q0.0
Testa: clicca rapidamente I0.0 on-off-on-off → M0.0 e Q0.0 non si attivano. Tieni I0.0 stabile per più di 100ms → si attivano.
Esercizio 5.3 — Lampeggiante a 1 Hz
Crea il circuito lampeggiante descritto nel Pattern 3: Q0.0 lampeggia 500ms ON, 500ms OFF.
- Network 1: NOT Q0.0 → TON T0 (PT=500) → Set Q0.0
- Network 2: Q0.0 → TON T1 (PT=500) → Reset Q0.0
- RUN → Q0.0 lampeggia da subito, senza premere nulla
- Variante: cambia T0.PT a 200 e T1.PT a 800 → lampeggio asimmetrico (flash rapido)
Esercizio 5.4 — Avvio motore con pre-allarme
Sfida: quando premi START (I0.0), un cicalino (Q0.1) suona per 5 secondi. Dopo i 5 secondi, il cicalino si spegne e il motore (Q0.0) parte. STOP (I0.1) ferma tutto.
Suggerimento
Usa un Merker M0.0 per il flag “avvio richiesto” (con autoritenuta). Poi: M0.0 AND NOT Q0.0 → Q0.1 (cicalino attivo durante l’attesa). M0.0 → TON (PT=5000) → Q0.0 (motore parte dopo 5s). STOP resetta M0.0, che a sua volta spegne cicalino e timer.
Esercizio 5.5 — Luci in sequenza
Sfida avanzata: tre lampade (Q0.0, Q0.1, Q0.2) si accendono in sequenza automatica: Q0.0 si accende subito, dopo 2 secondi si accende anche Q0.1, dopo altri 2 secondi si accende anche Q0.2. Premi I0.1 (RESET) per spegnere tutto e ricominciare.
Suggerimento
Usa 3 timer in cascata: I0.0 → Set M0.0 (avvio). M0.0 → Q0.0 (prima lampada, subito). M0.0 → TON T0 (PT=2000) → Q0.1 (seconda lampada). Q0.1 → TON T1 (PT=2000) → Q0.2 (terza lampada). I0.1 resetta M0.0 e tutte le uscite tornano a 0 perché le condizioni dei timer cadono.
❓ Quiz rapido
1. Un TON ha PT=5000. L’ingresso IN è a 1 da 3 secondi. Quanto vale Q?
Mostra risposta
Q = 0. ET vale 3000 (3 secondi), ma PT è 5000. Non ha ancora raggiunto il preset → l’uscita è ancora OFF. Servirà ancora 2 secondi con IN stabile a 1.
2. Un TON ha PT=2000. IN è stato a 1 per 4 secondi, poi torna a 0. Cosa succede a ET e Q?
Mostra risposta
Quando IN era a 1, dopo 2 secondi Q era diventato 1 (ET=PT=2000). Quando IN torna a 0: ET torna immediatamente a 0 e Q torna a 0. Il TON non ha “memoria” — appena l’ingresso cade, tutto si resetta.
3. In cosa è diverso un TON da una bobina standard con un ritardo meccanico?
Mostra risposta
La differenza chiave: il TON si resetta se l’ingresso cade prima del preset. Un relè temporizzato meccanico continua a contare anche se l’ingresso oscilla. Questo rende il TON un filtro naturale per segnali instabili — il che è spesso un vantaggio, non un difetto.
4. Perché il circuito lampeggiante usa due timer diversi (T0 e T1) e non uno solo?
Mostra risposta
Perché ogni timer ha un solo ingresso e un solo conteggio. Se usassi lo stesso timer in due Network, il secondo Network lo sovrascriverebbe ad ogni ciclo. I due timer gestiscono due fasi diverse (ON e OFF) e devono contare indipendentemente. T0 conta quando Q0.0=0, T1 conta quando Q0.0=1.
5. Voglio che Q0.0 resti accesa anche dopo che I0.0 viene rilasciato, ma con un ritardo all’avvio. Che combinazione uso?
Mostra risposta
Un TON da solo non basta, perché quando rilasci I0.0 il timer si resetta e Q0.0 si spegne. Devi combinare il TON con un Set/Reset o un’autoritenuta. Esempio: I0.0 → TON (PT=3000) → ─(S)─ Q0.0. Il Set “cattura” l’uscita nel momento in cui il timer scade. Poi I0.1 → ─(R)─ Q0.0 per spegnere.
Prossima lezione →
Lezione 06 — Timer TOF e TP[TOF] [TP]
Il ritardo allo spegnimento e il generatore di impulsi —
post-ventilazione, luci temporizzate e il progetto semaforo.
© Prof. D. Bertolino · S7 PLC Crash Course · Unofficial S7-1200 Simulator · Lezione 05