S7 CC Lezione 08
π S7 PLC Crash Course Β· Lezione 08
Rilevamento Fronti β Edge Detection β‘
ββ€Pββ ββ€Nββ
Catturare il momento esatto del cambiamento β toggle, impulsi
e l’ultimo elemento del livello Intermedio.
π― Cosa impari in questa lezione
- Cos’Γ¨ un fronte (edge) e perchΓ© Γ¨ utile
ββ€PββContatto Positive Edge (fronte di salita)ββ€NββContatto Negative Edge (fronte di discesa)- Il concetto di impulso a un ciclo (one-shot)
- Pattern: toggle, impulso da sensore, conteggio controllato
- Come combinare fronti con timer e counter
π Scheda lezione
| Modulo | 8 β Edge Detection |
| Lezione | 08 di 15 |
| Livello | ββ Intermedio |
| Tempo | ~30 minuti |
| Elementi nuovi | 2 (Contatto P, Contatto N) |
| Prerequisiti | Lezione 07 |
π§ Cos’Γ¨ un fronte β l’istante del cambiamento
Un segnale digitale puΓ² essere in due stati: 0 (OFF) o 1 (ON). Ma ci sono due momenti speciali che non sono nΓ© “0” nΓ© “1” β sono transizioni:
- Fronte di salita (Positive Edge, P): l’istante in cui il segnale passa da 0 a 1
- Fronte di discesa (Negative Edge, N): l’istante in cui il segnale passa da 1 a 0
Un fronte non ha durata β nel PLC dura esattamente un ciclo di scansione (50 ms nel simulatore). Il ciclo successivo, anche se il segnale Γ¨ ancora a 1, non Γ¨ piΓΉ un fronte β Γ¨ uno “stato stabile”.
In pratica: un contatto Edge genera un impulso di un solo ciclo nel momento della transizione. Γ come un flash fotografico: si accende per un istante e poi si spegne, indipendentemente da quanto dura la condizione che l’ha generato.
β Contatto P β Fronte di Salita (Positive Edge)
ββ€PββIl contatto P conduce per un solo ciclo di scansione nel momento esatto in cui la variabile associata passa da 0 a 1. Tutti i cicli successivi β anche se la variabile resta a 1 β il contatto Γ¨ aperto.
Pensalo come il “click” di un mouse: non importa quanto a lungo tieni premuto il tasto, il “click” avviene una sola volta, nel momento in cui premi.
β‘ Contatto N β Fronte di Discesa (Negative Edge)
ββ€NββL’opposto del P: conduce per un solo ciclo quando la variabile passa da 1 a 0. Γ il momento del “rilascio” β quando l’operatore toglie il dito dal pulsante, quando il pezzo lascia il sensore.
π Edge e Counter β la connessione nascosta: nella lezione 07 hai imparato che i contatori contano “i fronti di salita”. Ora sai cos’Γ¨ un fronte! Il CTU fa internamente la stessa operazione del contatto P: rileva la transizione 0β1 e incrementa solo in quel momento. Il contatto P rende questo meccanismo esplicito e disponibile per qualsiasi logica, non solo per il conteggio.
π Contatto NA vs Contatto P β la differenza chiave
Questa distinzione Γ¨ fondamentale e fonte di confusione per i principianti. Vediamola fianco a fianco:
Contatto NA ββ€ ββ
Conduce per tutto il tempo in cui la variabile Γ¨ a 1.
Se I0.0 resta a 1 per 3 secondi (60 cicli), il contatto conduce per 60 cicli.
Uso: “finchΓ© il pulsante Γ¨ premuto, fai qualcosa”.
Contatto P ββ€Pββ
Conduce per un solo ciclo alla transizione 0β1.
Se I0.0 resta a 1 per 3 secondi (60 cicli), il contatto conduce per 1 ciclo.
Uso: “quando il pulsante viene premuto, fai qualcosa una volta“.
π§ Pattern pratici
Pattern 1 β Toggle (accendi/spegni con un solo pulsante)
Il pattern piΓΉ richiesto dagli studenti: un pulsante che alterna lo stato di un’uscita. Prima pressione β ON. Seconda pressione β OFF. Terza β ON. E cosΓ¬ via.
Senza il fronte, non si puΓ² fare: un contatto NA terrebbe l’uscita attiva finchΓ© il pulsante Γ¨ premuto. Con il fronte P, il Set/Reset avviene in un solo ciclo e l’uscita resta nello stato impostato.
Network 1 // Fronte + uscita OFF β accendi
I0.0 ββ€Pββ NOT Q0.0 ββ€/ββ ββ β(S)β Q0.0
Network 2 // Fronte + uscita ON β spegni
I0.0 ββ€Pββ Q0.0 ββ€ ββ ββββ β(R)β Q0.0
Come funziona: al fronte di salita di I0.0, il Network 1 controlla se Q0.0 Γ¨ OFF (contatto NC). Se sΓ¬, fa il Set. Il Network 2 controlla se Q0.0 Γ¨ ON. Se sΓ¬, fa il Reset. PoichΓ© l’impulso del fronte dura un solo ciclo, non c’Γ¨ conflitto β in quel ciclo, Q0.0 ha un solo stato definito e solo uno dei due Network agisce.
Pattern 2 β Impulso temporizzato da sensore
Ogni volta che un sensore (I0.0) rileva un oggetto, genera un impulso preciso di 200 ms su Q0.0 β indipendentemente da quanto tempo l’oggetto resta davanti al sensore.
Network 1 // Fronte del sensore β impulso 200ms
I0.0 ββ€Pββ [TP T0, PT=200] βββ β( )β Q0.0
Il contatto P genera un impulso di un ciclo al fronte di salita di I0.0. Questo impulso trigghera il TP che a sua volta genera un impulso preciso di 200 ms. Risultato: un “flash” di durata controllata ad ogni rilevamento.
π‘ Edge + TP Γ¨ una combo potentissima. Il fronte “cattura” l’istante dell’evento, il TP lo “espande” in un impulso di durata precisa. La usi ogni volta che un evento istantaneo deve generare un’azione di durata fissa.
Pattern 3 β Conteggio su rilascio (fronte di discesa)
A volte vuoi contare non quando un sensore si attiva, ma quando si disattiva. Esempio: un pezzo Γ¨ “contato” solo quando ha completamente superato la fotocellula (il sensore torna a 0).
Network 1 // Genera impulso al rilascio del sensore
I0.0 ββ€Nββ ββββββββββββββββββββββ β( )β M0.0 // impulso “pezzo passato”
Network 2 // Conta i pezzi passati
M0.0 ββ€ ββ [CTU C0, PV=10, R=I0.1] ββ β( )β Q0.0
Il contatto N su I0.0 genera un impulso quando la fotocellula si libera (1β0 = il pezzo ha superato il sensore). Questo impulso va in M0.0, che a sua volta Γ¨ l’ingresso CU del contatore. CosΓ¬ contiamo solo i pezzi che sono effettivamente passati, non quelli che si trovano ancora davanti al sensore.
π Riepilogo β tutti i contatti a confronto
Con questa lezione conosci tutti e quattro i tipi di contatto del simulatore:
| Contatto | Simbolo | Conduce quando | Durata | Lezione |
|---|---|---|---|---|
| NA (Normally Open) | ββ€ ββ | Variabile = 1 | Tutto il tempo che vale 1 | 02 |
| NC (Normally Closed) | ββ€/ββ | Variabile = 0 | Tutto il tempo che vale 0 | 02 |
| P (Positive Edge) | ββ€Pββ | Variabile: 0 β 1 | 1 ciclo (one-shot) | 08 |
| N (Negative Edge) | ββ€Nββ | Variabile: 1 β 0 | 1 ciclo (one-shot) | 08 |
β οΈ Attenzione con il pannello I/O: nel simulatore, cliccando un ingresso lo si “toggla” (0β1 o 1β0) ed Γ¨ un cambio istantaneo. Per testare i fronti, devi cliccare due volte: il primo click genera il fronte di salita (P), il secondo click genera il fronte di discesa (N). Se l’azione avviene troppo velocemente e non la vedi, rallenta: clicca, osserva, poi clicca di nuovo.
ποΈ Esercizi pratici
Esercizio 8.1 β Toggle ON/OFF
Un singolo pulsante I0.0 alterna Q0.0 tra acceso e spento:
- Network 1: I0.0 ββ€Pββ AND NOT Q0.0 β Set Q0.0
- Network 2: I0.0 ββ€Pββ AND Q0.0 β Reset Q0.0
- RUN β clicca I0.0 (on): Q0.0 si accende. Clicca I0.0 (off poi on): Q0.0 si spegne
- Ogni “click ON” del pulsante alterna lo stato
Esercizio 8.2 β Impulso da sensore
Ogni volta che I0.0 (fotocellula) rileva un oggetto, Q0.0 si attiva per esattamente 200 ms. Usa Edge P + Timer TP.
- Network 1: I0.0 ββ€Pββ β TP (PT=200) β Bobina Q0.0
- Testa: attiva I0.0 β Q0.0 lampeggia per 200ms. Tieni premuto I0.0 β nessun effetto aggiuntivo. Rilascia e riattiva β un altro impulso 200ms
Esercizio 8.3 β Conteggio sul rilascio
Conta i pezzi usando il fronte di discesa del sensore (pezzo passato completamente):
- Network 1: I0.0 ββ€Nββ β Bobina M0.0
- Network 2: M0.0 β CTU (PV=5, R=I0.1) β Bobina Q0.0
- Testa: attiva I0.0, poi disattivalo β il contatore incrementa. Ripeti 5 volte β Q0.0 si accende
Esercizio 8.4 β Sfida: doppio click
Sfida: Q0.0 si attiva solo con un “doppio click” di I0.0 (due pressioni entro 1 secondo). Un singolo click non ha effetto.
Suggerimento
Primo fronte P di I0.0 β Set M0.0 (primo click rilevato) + avvia TON T0 (PT=1000, “finestra” di 1 secondo). Se arriva un secondo fronte P mentre M0.0=1 AND T0.Q=0 (ancora in finestra) β Set Q0.0. Se T0.Q diventa 1 (1 secondo scaduto senza secondo click) β Reset M0.0. Un TP da 3000ms su Q0.0 mantiene l’uscita attiva per 3 secondi.
Esercizio 8.5 β Sfida: frequenzimetro semplice
Sfida avanzata: conta quanti fronti di salita di I0.0 avvengono in 5 secondi. Dopo 5 secondi, il conteggio si “congela” in un Merker-appoggio e il contatore si resetta per una nuova misura.
Suggerimento
Usa un TON con PT=5000 per definire la finestra di misura. Un CTU conta i fronti P di I0.0 durante la finestra. Quando il TON scade (Q=1), usa il fronte P del Q del TON per resettare il contatore e riavviare la misura. Il valore CV del contatore appena prima del reset Γ¨ il numero di impulsi in 5 secondi.
β Quiz rapido
1. I0.0 Γ¨ a 1 da 10 secondi. Un contatto P associato a I0.0 conduce?
Mostra risposta
No. Il contatto P ha condotto per un solo ciclo, 10 secondi fa, quando I0.0 Γ¨ passato da 0 a 1. Da allora Γ¨ aperto. Il fronte Γ¨ un evento istantaneo, non uno stato continuo.
2. Qual Γ¨ la differenza tra un contatto P su I0.0 e un Timer TP triggerato da I0.0?
Mostra risposta
Entrambi reagiscono al fronte di salita, ma con durate diverse. Il contatto P genera un impulso di 1 ciclo (50 ms) β non configurabile. Il TP genera un impulso di PT millisecondi β configurabile. Il contatto P Γ¨ il “trigger”, il TP Γ¨ l'”espansore” dell’impulso. Spesso li usi insieme.
3. Ho un contatto P su I0.0 collegato a un Set di Q0.0. In un altro Network, un contatto P su I0.0 collegato a un Reset di Q0.0. Cosa succede quando premo I0.0?
Mostra risposta
Non funziona come toggle! Entrambi i Network ricevono l’impulso nello stesso ciclo. Il Set mette Q0.0 a 1, poi il Reset la rimette a 0. Per il toggle serve una condizione aggiuntiva: NOT Q0.0 nel Network del Set e Q0.0 nel Network del Reset (come nel Pattern 1 di questa lezione).
4. In quale situazione useresti un contatto N (fronte di discesa) invece di un P (fronte di salita)?
Mostra risposta
Quando l’evento significativo Γ¨ il rilascio, non la pressione. Esempi: contare un pezzo quando ha completamente superato un sensore (il sensore torna a 0), rilevare quando un operatore rilascia un pulsante a due mani (per sicurezza, se una mano si alza prima che l’azione sia completata), o generare un segnale “processo terminato” quando un’uscita si spegne.
5. Posso mettere un contatto P su un Merker o su un’uscita Q, non solo su un ingresso I?
Mostra risposta
SΓ¬! Il contatto P (e N) funziona con qualsiasi variabile: I, Q o M. Ad esempio, Q0.0 ββ€Pββ genera un impulso nel ciclo esatto in cui Q0.0 passa da 0 a 1 β utile per rilevare l’avvio di un motore e comandare azioni “una tantum” come l’incremento di un contatore cicli.
π Fine del Livello INTERMEDIO
Hai completato i moduli 5β8! Ora padroneggi tutti gli elementi “classici” della programmazione Ladder: contatti, bobine, Set/Reset, Merker, timer (TON, TOF, TP), counter (CTU, CTD, CTUD) e rilevamento fronti (P, N). Con questi elementi puoi costruire qualsiasi logica sequenziale e combinatoria.
Nel prossimo livello (Avanzato) entriamo nel mondo dei segnali continui e delle interfacce operatore: I/O analogici, comparatori, editor HMI e gestione progetti.
Prossima lezione β
Lezione 09 β I/O AnalogiciIW64 QW64 0β27648
Temperature, pressioni, livelli β i segnali del mondo reale.
Β© Prof. D. Bertolino Β· S7 PLC Crash Course Β· Unofficial S7-1200 Simulator Β· Lezione 08