Lezione 14 di 15

S7 CC Lezione 14

🎓 S7 PLC Crash Course · Lezione 14

Progetto: Impianto di Miscelazione 🧪

Sequenza a 8 passi · Analogico · Temperatura · Valvole · Agitatore
Un intero processo chimico automatizzato.

🎯 Obiettivo del progetto

Progettare il controllo automatico di un impianto che miscela due liquidi in un serbatoio, con riscaldamento controllato da sensore di temperatura analogico. La sequenza di lavoro ha 8 passi — il progetto più complesso del corso.

Questo progetto combina: sequenze a Merker (lezione 04), timer (05–06), analogico (09), comparatori (10) e HMI (11). È il test definitivo della tua padronanza del Ladder.

📋 Scheda progetto

Modulo14 — Progetto 2
Lezione14 di 15
Livello⭐⭐⭐⭐ Esperto
Tempo~90 minuti
Network stimati~20
CPU1215C (serve AI)

📐 Specifiche dell’impianto

Un serbatoio di miscelazione riceve due liquidi (A e B) attraverso valvole separate. Un agitatore mescola i liquidi. Una resistenza riscalda il contenuto. Un sensore di temperatura analogico monitora il processo. Al termine, una valvola di scarico svuota il serbatoio.

Schema dell’impianto di miscelazione Liquido A V-A Q0.0 Liquido B V-B Q0.1 SERBATOIO I0.2 L.basso I0.3 L.alto AG Q0.2 Q0.3 Risc. T° IW64 0–150°C V-SC Q0.4 Scarico → scarico ● Q0.5 “In corso” ● Q0.6 “Completato” COMANDI I0.0 START ciclo I0.1 STOP I0.4 Emergenza IW64 Temp. (analogico) PASSI (Merker) M0.0 Passo 1: Carico A M0.1 Passo 2: Carico B M0.2 Passo 3: Miscelazione M0.3 Passo 4: Riscaldamento M0.4 Passo 5: Mantenimento M0.5 Passo 6: Raffreddamento M0.6 Passo 7: Scarico M0.7 Passo 8: Completato
Figura 1 — Schema dell’impianto di miscelazione con tutti gli I/O e i passi della sequenza

Tabella I/O

Ingressi

I0.0Pulsante START ciclo
I0.1Pulsante STOP
I0.2Sensore livello basso
I0.3Sensore livello alto
I0.4Emergenza
IW64Temperatura (0–27648 = 0–150°C)

Uscite

Q0.0Valvola ingresso liquido A
Q0.1Valvola ingresso liquido B
Q0.2Motore agitatore
Q0.3Resistenza riscaldamento
Q0.4Valvola scarico
Q0.5Lampada “Ciclo in corso”
Q0.6Lampada “Ciclo completato”

🔄 La sequenza di lavoro — 8 passi

Sequenza di lavoro — 8 Passi P1 M0.0 Carico A 10s (timer) P2 M0.1 Carico B fino a I0.3 P3 M0.2 Miscela 15s (timer) P4 M0.3 Riscalda fino a >98°C P5 M0.4 Mantieni 20s (timer) P6 M0.5 Raffredda spegni risc. P7 M0.6 Scarico fino a I0.2 P8 M0.7 Completo segnala P1: Q0.0 · P2: Q0.1 · P3: Q0.2 · P4: Q0.2+Q0.3 · P5: Q0.2+Q0.3 · P6: Q0.2 · P7: Q0.4 · P8: Q0.6
Figura 2 — Gli 8 passi in sequenza: ogni passo attiva uscite diverse e ha la sua condizione di avanzamento
PassoMerkerAzioneUscite attiveCondizione per avanzare
1M0.0Apri valvola A (carico liquido A)Q0.0Timer 10 secondi
2M0.1Chiudi A, apri valvola BQ0.1Sensore livello alto I0.3 = 1
3M0.2Chiudi B, avvia agitatoreQ0.2Timer 15 secondi
4M0.3Avvia riscaldamento (+ agitatore)Q0.2, Q0.3Temperatura > 18000 (≈98°C)
5M0.4Mantieni agitatore + riscaldamentoQ0.2, Q0.3Timer 20 secondi
6M0.5Spegni riscaldamento (agitatore continua)Q0.2Immediato (un solo ciclo, poi passa)
7M0.6Ferma agitatore, apri valvola scaricoQ0.4Sensore livello basso I0.2 = 1
8M0.7Chiudi scarico, segnala completamentoQ0.6Attende nuovo START

⚠️ Soglia temperatura: il sensore IW64 va da 0 a 27648, che corrisponde a 0–150°C. La soglia di 98°C corrisponde a circa 18000 nel valore grezzo (98/150 × 27648 ≈ 18078). Nel simulatore userai lo slider di IW64 per simulare la temperatura che sale e scende.


💻 Il programma Ladder — struttura consigliata

Questo progetto è più grande del precedente. La struttura raccomandata è:

Sezione 1 — Sicurezza (N1–N2)
Emergenza, reset tutti i Merker
Sezione 2 — Avvio Sequenza (N3)
START → Set M0.0 se nessun passo attivo
Sezione 3 — Transizioni (N4–N11)
8 Network: condizione → Set passo successivo + Reset passo corrente
Sezione 4 — Uscite (N12–N18)
Merker → uscite fisiche + segnalazione

Invece di darti il codice completo come nella lezione 13, questa volta ti do le specifiche per ogni Network e tu costruisci il programma. È un esercizio di progettazione, non solo di copia.

Sezione 1 — Sicurezza

N1 // Emergenza: resetta TUTTI i passi
I0.4 ─┤ ├─ → ─(R)─ M0.0 + ─(R)─ M0.1 + … + ─(R)─ M0.7
// (8 Network di Reset, o un Network per Merker)

N2 // STOP: resetta tutti i passi (come emergenza)
I0.1 ─┤ ├─ → Reset M0.0 … M0.7

Sezione 3 — Transizioni (il cuore del progetto)

Ogni transizione segue lo schema: passo corrente attivo AND condizione soddisfatta → Set passo successivo + Reset passo corrente.

// ═══ TRANSIZIONI ═══

N4 M0.0 ─┤ ├─ [TON T0, PT=10000] ── ─(S)─ M0.1 // P1→P2: dopo 10s
N5 M0.1 ─┤ ├─ ────────────────── ─(R)─ M0.0 // disattiva P1

N6 M0.1 ─┤ ├─ I0.3 ─┤ ├─ ────── ─(S)─ M0.2 // P2→P3: livello alto
N7 M0.2 ─┤ ├─ ────────────────── ─(R)─ M0.1

N8 M0.2 ─┤ ├─ [TON T1, PT=15000] ── ─(S)─ M0.3 // P3→P4: dopo 15s
N9 M0.3 ─┤ ├─ ────────────────── ─(R)─ M0.2

N10 M0.3 ─┤ ├─ [CMP>= MW0 >= 18000] ── ─(S)─ M0.4 // P4→P5: temp >98°C
N11 M0.4 ─┤ ├─ ────────────────── ─(R)─ M0.3

N12 M0.4 ─┤ ├─ [TON T2, PT=20000] ── ─(S)─ M0.5 // P5→P6: dopo 20s
N13 M0.5 ─┤ ├─ ────────────────── ─(R)─ M0.4

N14 M0.5 ─┤ ├─ ────────────────── ─(S)─ M0.6 // P6→P7: immediato
N15 M0.6 ─┤ ├─ ────────────────── ─(R)─ M0.5

N16 M0.6 ─┤ ├─ I0.2 ─┤ ├─ ────── ─(S)─ M0.7 // P7→P8: livello basso
N17 M0.7 ─┤ ├─ ────────────────── ─(R)─ M0.6

🔍 Nota sulla temperatura: nel Network N10, il comparatore confronta MW0 con 18000. Per collegare il valore dello slider IW64 al comparatore, la soluzione più diretta nel simulatore è usare il pannello I/O per osservare il valore IW64 e configurare la soglia come costante nel comparatore. In un S7-1200 reale con TIA Portal useresti direttamente IW64 come operando.

Sezione 4 — Uscite

Ogni uscita è pilotata dai Merker dei passi in cui è attiva:

N18 M0.0 ─┤ ├─ ────────── ─( )─ Q0.0 // Valvola A (solo P1)
N19 M0.1 ─┤ ├─ ────────── ─( )─ Q0.1 // Valvola B (solo P2)
N20 M0.2 ─┤ ├─ ┬ ──────── ─( )─ Q0.2 // Agitatore (P3, P4, P5, P6)
M0.3 ─┤ ├─ ┤
M0.4 ─┤ ├─ ┤
M0.5 ─┤ ├─ ┘

N21 M0.3 ─┤ ├─ ┬ ──────── ─( )─ Q0.3 // Riscaldamento (P4, P5)
M0.4 ─┤ ├─ ┘

N22 M0.6 ─┤ ├─ ────────── ─( )─ Q0.4 // Valvola scarico (P7)

N23 NOT M0.7 ─┤/├─ M0.0 ─┤ ├─ ┬ ─( )─ Q0.5 // “In corso” (qualsiasi passo 1-7)
M0.1 ─┤ ├─ ┤
… ─┤ ├─ ┘ // (OR di M0.0–M0.6)

N24 M0.7 ─┤ ├─ ────────── ─( )─ Q0.6 // “Completato” (P8)

Nota i rami paralleli nei Network 20 e 21: l’agitatore è attivo durante 4 passi (P3–P6), il riscaldamento durante 2 (P4–P5). Ciascun Merker di quei passi è in OR.


📟 L’interfaccia HMI

Per questo progetto usa un KTP1200 Basic (12″, più spazio) o un TP700 Comfort. Widget consigliati:

WidgetLabelVariabileNote
TextIMPIANTO MISCELAZIONE—Titolo
ButtonSTART CICLOI0.0Verde, momentary
ButtonSTOPI0.1Rosso, momentary
ButtonEMERGENZAI0.4Rosso, toggle
TankSERBATOIOMW0Livello animato
GaugeTEMPERATURAMW2Range 0–150
SliderSIM. TEMP.MW2Per simulare il sensore IW64
ValveV-AQ0.0Valvola liquido A
ValveV-BQ0.1Valvola liquido B
MotorAGITATOREQ0.2Animazione rotazione
LEDRISC.Q0.3Rosso — riscaldamento attivo
ValveSCARICOQ0.4Valvola scarico
LEDIN CORSOQ0.5Verde — ciclo attivo
LEDCOMPLETOQ0.6Blu — ciclo terminato

🧪 Test di collaudo

Test 1 — Ciclo completo

  1. Premi START → Q0.0 (Valvola A) si apre, Q0.5 (In corso) ON ✓
  2. Dopo 10s → Q0.0 chiude, Q0.1 (Valvola B) si apre ✓
  3. Attiva I0.3 (livello alto) → Q0.1 chiude, Q0.2 (Agitatore) parte ✓
  4. Dopo 15s → Q0.3 (Riscaldamento) si accende (agitatore continua) ✓
  5. Muovi slider IW64 sopra 18000 → la sequenza avanza al Passo 5 ✓
  6. Dopo 20s → Q0.3 si spegne, Q0.2 continua brevemente, poi si ferma ✓
  7. Q0.4 (Scarico) si apre ✓
  8. Attiva I0.2 (livello basso) → Q0.4 chiude, Q0.6 (Completato) ON ✓

Test 2 — Emergenza a metà ciclo

  1. Avvia il ciclo, aspetta di essere al Passo 3 o 4
  2. Attiva I0.4 (emergenza) → TUTTE le uscite OFF, tutti i Merker a 0 ✓
  3. Disattiva emergenza → sistema fermo, attende nuovo START ✓

Test 3 — Nuovo ciclo dopo completamento

  1. Completa un ciclo → Q0.6 ON
  2. Premi START → Q0.6 OFF, il ciclo ricomincia dal Passo 1 ✓

🏆 Estensioni

  • Trend temperatura: aggiungi un widget Trend collegato a MW2 (o IW64) per visualizzare l’andamento della temperatura durante il ciclo
  • Display passo corrente: usa un MW per codificare il numero di passo (1–8) e un Display per mostrarlo. Aggiungi un Text che mostra la descrizione del passo
  • Timeout di sicurezza: se il Passo 4 (riscaldamento) non raggiunge la temperatura entro 60 secondi, genera un allarme “timeout riscaldamento” e ferma il ciclo
  • Contacicli: aggiungi un CTU che conta quanti cicli completi sono stati eseguiti (conta i fronti P di M0.7). Dopo 10 cicli → lampada manutenzione
  • Seconda pagina HMI: Pagina 1 = sinottico processo. Pagina 2 = parametri (slider per tempi dei timer, soglia temperatura)

💡 Salva il progetto come Mod14_Impianto_Miscelazione.json. Questo è il progetto più complesso del corso — dimostra la capacità di gestire sequenze multi-passo con timer, sensori analogici e HMI. È il tipo di competenza che i datori di lavoro cercano in un programmatore PLC junior.

Prossima e ultima lezione →

Lezione 15 — Best Practice e Troubleshooting
Le regole d’oro, gli errori comuni, la checklist di collaudo
e il tuo progetto finale di valutazione.

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