S7 CC Lezione 09
🎓 S7 PLC Crash Course · Lezione 09
I/O Analogici 🌡️
IW64 QW64 0–27648 NORM_X SCALE_X
Temperature, pressioni, livelli — i segnali continui del mondo reale.
🎯 Cosa impari in questa lezione
- La differenza tra segnali digitali e analogici
- Come l’S7-1200 converte i segnali: il range 0–27648
- Indirizzi analogici: IW64, QW64 e le espansioni
- Conversione e scaling: NORM_X e SCALE_X
- Come usare gli slider e le barre nel pannello I/O
- Come combinare analogico e comparatori per allarmi su soglia
📋 Scheda lezione
| Modulo | 9 — Segnali Analogici |
| Lezione | 09 di 15 |
| Livello | ⭐⭐⭐ Avanzato |
| Tempo | ~40 minuti |
| CPU consigliata | 1215C (ha AI + AQ) |
| Prerequisiti | Lezione 08 |
🧠 Digitale vs Analogico — il salto concettuale
Finora hai lavorato con segnali digitali: 0 o 1, OFF o ON, pulsante premuto o non premuto. Il mondo è binario. Ma il mondo reale è continuo: una temperatura non è “calda” o “fredda” — è 23.7°C. Una pressione non è “alta” o “bassa” — è 4.2 bar. Un livello non è “pieno” o “vuoto” — è al 67%.
I segnali analogici rappresentano queste grandezze continue. Nel PLC, arrivano come segnali elettrici proporzionali:
0–10V (tensione)
Il sensore invia una tensione da 0 a 10 Volt, proporzionale alla grandezza misurata. 0V = minimo, 10V = massimo.
Esempio: potenziometro, sensore di posizione, trasmettitore di pressione.
4–20mA (corrente)
Il sensore invia una corrente da 4 a 20 milliampere. 4mA = minimo, 20mA = massimo.
Esempio: trasmettitore di temperatura, livello, portata. Lo standard industriale più diffuso.
🔍 Perché 4–20mA e non 0–20mA? Perché se il cavo si rompe, la corrente è 0mA — che è diverso dal minimo (4mA). Il PLC può riconoscere un errore (0mA) e distinguerlo dal valore minimo (4mA). È lo stesso principio fail-safe che abbiamo visto con il contatto NC dello STOP.
📐 Il range 0–27648 — come il PLC “vede” l’analogico
Il PLC non capisce i Volt o i milliampere. Ha un convertitore A/D (Analogico/Digitale) che trasforma il segnale elettrico in un numero intero. Nell’S7-1200, questo numero va da 0 a 27648.
Tabella di conversione rapida
| Tensione (0–10V) | Corrente (4–20mA) | Valore PLC | Percentuale | Esempio (0–100°C) |
|---|---|---|---|---|
| 0 V | 4 mA | 0 | 0% | 0.0°C |
| 2.5 V | 8 mA | 6912 | 25% | 25.0°C |
| 5.0 V | 12 mA | 13824 | 50% | 50.0°C |
| 7.5 V | 16 mA | 20736 | 75% | 75.0°C |
| 10.0 V | 20 mA | 27648 | 100% | 100.0°C |
Nel simulatore non ci sono veri sensori — al loro posto ci sono gli slider nel pannello I/O. Trascinando lo slider di IW64, cambi il valore che il programma Ladder legge. Il pannello mostra sia il valore grezzo (es: 13824) sia la percentuale (es: 50.0%).
🏷️ Indirizzi analogici nell’S7-1200
| Tipo | Formato | CPU integrati | Espansioni (da…) | Descrizione |
|---|---|---|---|---|
| IW (Input Word) | IW[indirizzo] | IW64, IW66 | IW96, IW98… | Ingressi analogici (lettura sensori) |
| QW (Output Word) | QW[indirizzo] | QW64, QW66* | QW96, QW98… | Uscite analogiche (comando attuatori) |
* Le uscite analogiche integrate sono presenti solo nelle CPU 1215C e 1217C. Le altre CPU hanno solo ingressi analogici integrati.
⚠️ Per questa lezione, cambia CPU! Seleziona la CPU 1215C DC/DC/DC (o AC/DC/Relay) dal pannello hardware. È l’unica con uscite analogiche integrate (QW64, QW66). Se resti sulla 1214C, avrai solo gli ingressi analogici.
🔄 NORM_X e SCALE_X — convertire i valori
Il valore grezzo 0–27648 non è molto utile da solo. Un operatore vuole vedere “72°C”, non “19907”. Per convertire, il S7-1200 usa due funzioni che si applicano in sequenza:
NORM_X — Normalizza
Converte un valore dal range [MIN, MAX] a un valore tra 0.0 e 1.0.
OUT = (VALUE - MIN) / (MAX - MIN)
Esempio:
NORM_X(13824, 0, 27648) = 0.5
Il valore grezzo 13824 è “a metà” del range → 0.5
SCALE_X — Scala
Converte un valore normalizzato (0.0–1.0) nel range desiderato [MIN, MAX].
OUT = MIN + (VALUE × (MAX - MIN))
Esempio:
SCALE_X(0.5, 0, 100) = 50.0
Il valore normalizzato 0.5 nel range 0–100 → 50.0°C
In cascata: NORM_X(grezzo, 0, 27648) → SCALE_X(risultato, 0, 100) converte il valore PLC in gradi Celsius. Nella direzione opposta (per le uscite): NORM_X(°C, 0, 100) → SCALE_X(risultato, 0, 27648).
💡 Nel simulatore non devi programmare NORM_X e SCALE_X esplicitamente — il pannello I/O mostra già la percentuale accanto al valore grezzo. Però è fondamentale capire il concetto, perché in TIA Portal è una delle operazioni più comuni e la troverai in ogni programma con segnali analogici.
🖥️ Il pannello analogico nel simulatore
Con la CPU 1215C selezionata, il pannello I/O mostra due sezioni aggiuntive:
Ingressi Analogici (AIW)
Uno slider per ogni canale AI. Trascina lo slider per variare il valore da 0 a 27648. Mostra il valore numerico e la percentuale.
CPU 1215C integrata: IW64, IW66
Uscite Analogiche (AQW)
Una barra di livello per ogni canale AQ. Non è interattiva — mostra il valore che il programma Ladder scrive (tramite comparatori/MW).
CPU 1215C integrata: QW64, QW66
🔧 Analogico + Comparatori — allarmi su soglia
Il modo più comune di usare i segnali analogici nel Ladder è con i comparatori (che vedremo in dettaglio nella lezione 10). L’idea: confronti il valore analogico con una soglia fissa e generi un’azione.
Ecco un anticipo pratico — un sistema di allarme temperatura a 3 livelli:
// Sensore temperatura su IW64 (0–27648 = 0–150°C)
// Soglie: 20000 ≈ 108°C (warning), 25000 ≈ 136°C (alarm), 27000 ≈ 146°C (emergency)
Network 1 // WARNING — temperatura alta
[CMP>= IW64 >= 20000] ─────── ─( )─ Q0.0 // lampada gialla
Network 2 // ALARM — temperatura critica
[CMP>= IW64 >= 25000] ─────── ─( )─ Q0.1 // lampada rossa
Network 3 // EMERGENCY — spegni riscaldamento
[CMP>= IW64 >= 27000] ─────── ─(R)─ Q0.3 // Reset resistenza
I comparatori nel simulatore accettano come operandi: costanti, Counter CV, Timer ET e Memory Word (MW). Per confrontare direttamente IW64, lo schema più pratico è usare il comparatore con il valore grezzo come soglia — la conversione in °C è solo per la documentazione.
⚠️ Nota sugli operandi del comparatore: nel simulatore attuale, gli operandi del comparatore sono Costanti, Counter CV, Timer ET e MW. Per confrontare il valore di un ingresso analogico (IW64), la tecnica è: il pannello I/O mostra il valore, e tu imposti la soglia come costante nel comparatore. In un S7-1200 reale con TIA Portal puoi confrontare direttamente IW con una costante — il principio logico è identico.
📊 Riepilogo — digitale vs analogico
| Caratteristica | Digitale (I/Q) | Analogico (IW/QW) |
|---|---|---|
| Valori possibili | 0 o 1 | 0 – 27648 |
| Dimensione | 1 bit | 16 bit (word) |
| Indirizzo | I0.0, Q0.3 | IW64, QW66 |
| Sensore tipico | Pulsante, finecorsa | Temperatura, pressione, livello |
| Attuatore tipico | Motore ON/OFF, valvola | Velocità variabile, posizione |
| Nel Ladder | Contatti e bobine | Comparatori con soglie |
| Nel pannello I/O | Quadratini cliccabili | Slider (input), barre (output) |
🏋️ Esercizi pratici
Esercizio 9.1 — Esplorazione analogica
- Seleziona CPU 1215C DC/DC/DC dal pannello hardware
- Osserva il pannello I/O: dovrebbero apparire IW64, IW66 (slider) e QW64, QW66 (barre)
- Muovi lo slider di IW64 al massimo → leggi il valore: 27648 (100%)
- Mettilo a metà → circa 13824 (50%)
- Aggiungi un modulo SM 1231 AI x4 dal pannello hardware. Cosa appare? (IW96, IW98, IW100, IW102)
- Rimuovi l’espansione per tornare alla configurazione base
Esercizio 9.2 — Allarme alta temperatura
Simula un sensore di temperatura su IW64 (0–27648 = 0–100°C). Quando la temperatura supera 72°C (≈ 20000), attiva Q0.0 (allarme).
- Crea un Network con un comparatore: operando 1 = MW (o costante che rappresenta IW64), operando 2 = costante 20000, operatore >=
- Collega a Bobina Q0.0
- RUN → muovi lo slider di IW64. Sotto 20000: Q0.0 spenta. Sopra 20000: Q0.0 accesa
💡 Come mappare IW64 nel comparatore dipende dalla versione del simulatore. Se il comparatore supporta solo MW come operando word, puoi osservare direttamente il valore nel pannello e ragionare sulle soglie.
Esercizio 9.3 — Controllo livello serbatoio
Sfida: un serbatoio ha un sensore di livello su IW64. Implementa un controllo con isteresi:
- Se livello < 5000 (basso) → attiva la pompa Q0.0
- Se livello > 25000 (alto) → ferma la pompa Q0.0
- Tra 5000 e 25000: la pompa mantiene lo stato precedente (isteresi)
- Se livello > 27000 → Q0.1 (allarme troppo pieno)
Suggerimento sull’isteresi
L’isteresi si implementa con Set/Reset: un comparatore < 5000 fa il Set Q0.0 (accendi pompa), un comparatore > 25000 fa il Reset Q0.0 (spegni pompa). Tra i due valori, nessuno dei due Network agisce → la pompa resta nello stato in cui era. Questo evita il “chattering” (accensione/spegnimento rapido) che danneggia le pompe reali.
Esercizio 9.4 — Sfida: conversione mentale
Esercizio di calcolo: un sensore di pressione 0–10 bar è collegato a IW64 (range 0–27648). Calcola il valore PLC per le seguenti soglie:
- Allarme bassa pressione: 2 bar = ?
- Pressione di lavoro: 6 bar = ?
- Allarme alta pressione: 9 bar = ?
Mostra la soluzione
Formula: valore = (bar / 10) × 27648
- 2 bar = (2/10) × 27648 = 5530
- 6 bar = (6/10) × 27648 = 16589
- 9 bar = (9/10) × 27648 = 24883
Questi valori diventano le costanti nei tuoi comparatori. In TIA Portal useresti NORM_X + SCALE_X per fare la conversione nel programma — nel simulatore fai il calcolo a mano e usi le costanti direttamente.
❓ Quiz rapido
1. Il valore grezzo di IW64 è 6912. A quale percentuale corrisponde?
Mostra risposta
25%. La formula è: 6912 / 27648 = 0.25 = 25%. Se il sensore misura 0–100°C, corrisponde a 25°C.
2. Perché gli indirizzi analogici partono da 64 e non da 0?
Mostra risposta
È una convenzione hardware Siemens. Gli indirizzi 0–63 sono riservati per gli I/O digitali. Gli analogici integrati nella CPU partono da 64 (IW64, IW66, QW64, QW66). I moduli di espansione aggiungono indirizzi da 96 in poi. Questa organizzazione è fissa nell’hardware — il simulatore la replica.
3. Ho un sensore 4–20mA. Il cavo si rompe e la corrente è 0mA. Che valore legge il PLC?
Mostra risposta
Il PLC legge un valore sotto zero (o 0). Poiché il range valido parte da 4mA (= 0 nel PLC), un valore di 0mA è fuori scala — il PLC lo interpreta come errore sensore. Ecco perché il 4–20mA è lo standard industriale: il valore 0 è riservato per la diagnostica. Un sensore 0–10V non offre questa garanzia.
4. Qual è la differenza tra IW64 e MW0?
Mostra risposta
Entrambi sono valori a 16 bit, ma IW64 è collegato a un ingresso analogico fisico (un filo che arriva da un sensore), mentre MW0 è una variabile interna (esiste solo nella memoria del PLC). IW64 viene aggiornato dal convertitore A/D ad ogni ciclo. MW0 lo cambi tu dal programma. Nel simulatore, IW64 è controllato dallo slider nel pannello I/O.
5. Cos’è l’isteresi e perché è importante nel controllo analogico?
Mostra risposta
L’isteresi è la differenza tra la soglia di attivazione e la soglia di disattivazione di un’azione. Esempio: pompa ON sotto 5000, pompa OFF sopra 25000. Se usassi una sola soglia (es: ON sotto 15000, OFF sopra 15000), la pompa si accenderebbe e spegnerebbe continuamente quando il valore oscilla intorno a 15000 — detto chattering. L’isteresi crea una “zona morta” dove non succede niente, garantendo stabilità.
Prossima lezione →
Lezione 10 — Comparatori[==] [<>] [>] [<] [>=] [<=]
Sei operatori per confrontare qualsiasi valore — soglie, allarmi, sequenze numeriche.
© Prof. D. Bertolino · S7 PLC Crash Course · Unofficial S7-1200 Simulator · Lezione 09