Lezione 5 di 15

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

Modulo5 — Timer Base
Lezione05 di 15
Livello⭐⭐ Intermedio
Tempo~40 minuti
Elementi nuovi1 (Timer TON)
PrerequisitiLezione 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

Tipo
[TON]
Funzione
Ritardo all’eccitazione
Preset
PT in millisecondi
Sezione
Ingressi (sinistra)

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

SegnaleTipoDescrizione
INIngressoLa corrente logica che arriva al timer dalla catena di contatti a sinistra
PT (Preset Time)ParametroIl tempo da raggiungere, in millisecondi. Es: 3000 = 3 secondi
ET (Elapsed Time)Valore correnteQuanto tempo è passato dall’attivazione di IN. Sale da 0 a PT
QUscitaVale 1 quando ET ≥ PT. Vale 0 in tutti gli altri casi

Comportamento nel tempo

Diagramma Temporale — Timer TON (PT = 3000 ms) tempo → 0s 1s 2s 3s 4s IN ET Q (uscita) IN = 1 (stabile per tutto il tempo necessario) ET sale da 0 a PT (3000 ms) ET = PT Q = 1 PT raggiunto! IN → 0 ET → 0 Q → 0
Figura 1 — TON: l’uscita Q si attiva solo dopo che IN è rimasto a 1 per PT millisecondi

Le 4 regole del TON

  1. IN = 1: il timer conta. ET sale da 0 verso PT, un po’ ad ogni ciclo di scansione
  2. ET raggiunge PT: l’uscita Q diventa 1 e ET si ferma a PT
  3. IN torna a 0 prima di PT: il timer si azzera (ET = 0, Q resta 0). Nessun effetto
  4. 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?

TON con ingresso instabile — il timer si resetta ogni volta IN ET finalmente stabile → ET arriva a PT Q Q = 1 Q resta 0 finché IN non è stabile
Figura 2 — Se l’ingresso “rimbalza”, il timer ricomincia da capo ogni volta. Q si attiva solo dopo un periodo stabile.

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.

  1. Aggiungi un Network
  2. Trascina un Contatto NA → configura come I0.0
  3. Trascina un Timer TON dalla Toolbox nella sezione ingressi, in serie dopo il contatto
  4. Clicca sul timer per configurarlo: Preset Time = 3000 (3 secondi)
  5. Trascina una Bobina → configura come Q0.0
  6. Premi RUN
  7. Attiva I0.0 nel pannello I/O e tienilo attivo
  8. Osserva il pannello Timer a destra: vedrai T0: ET=0 / PT=3000 e la barra che sale
  9. Dopo 3 secondi: ET raggiunge 3000, la barra è piena, Q0.0 si accende!
  10. 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

CondizioneETQSignificato
IN = 000Timer fermo, tutto azzerato
IN = 1, ET < PTSale verso PT0Timer in conteggio, uscita non ancora attiva
IN = 1, ET ≥ PT= PT (fermo)1Tempo raggiunto! Uscita attiva
IN: 1 → 0→ 0 (reset)→ 0Tutto si azzera immediatamente
IN: 1 → 0 → 1 (prima di PT)→ 0, poi riparte0Il conteggio ricomincia da capo
Unità preset
Millisecondi
1 secondo =
PT = 1000
1 minuto =
PT = 60000

🏋️ 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.

  1. Contatto NA (I0.0) → Timer TON (PT=3000) → Bobina Q0.0
  2. RUN → attiva I0.0, osserva ET nel pannello Timer
  3. Prova a rilasciare I0.0 dopo 2 secondi → ET torna a 0, Q0.0 non si è mai accesa
  4. 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.

  1. Network 1: NOT Q0.0 → TON T0 (PT=500) → Set Q0.0
  2. Network 2: Q0.0 → TON T1 (PT=500) → Reset Q0.0
  3. RUN → Q0.0 lampeggia da subito, senza premere nulla
  4. 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