Lezione 9 di 15

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

Modulo9 — Segnali Analogici
Lezione09 di 15
Livello⭐⭐⭐ Avanzato
Tempo~40 minuti
CPU consigliata1215C (ha AI + AQ)
PrerequisitiLezione 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.

Conversione: Segnale Elettrico → Valore PLC → Unità Ingegneristiche SENSORE Segnale elettrico 0 – 10V oppure 4 – 20mA A/D PLC (IW64) Valore grezzo 16 bit 0 – 27648 intero senza unità NORM_X SCALE_X VALORE REALE Unità ingegneristiche 0 – 100.0 °C oppure bar, %, m/s… Esempio: 5V sul sensore → 13824 in IW64 → 50.0°C (metà scala) 13824 / 27648 = 0.5 → 0.5 × 100°C = 50°C
Figura 1 — Dal sensore al valore reale: due conversioni in serie

Tabella di conversione rapida

Tensione (0–10V)Corrente (4–20mA)Valore PLCPercentualeEsempio (0–100°C)
0 V4 mA00%0.0°C
2.5 V8 mA691225%25.0°C
5.0 V12 mA1382450%50.0°C
7.5 V16 mA2073675%75.0°C
10.0 V20 mA27648100%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

TipoFormatoCPU integratiEspansioni (da…)Descrizione
IW (Input Word)IW[indirizzo]IW64, IW66IW96, 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

CaratteristicaDigitale (I/Q)Analogico (IW/QW)
Valori possibili0 o 10 – 27648
Dimensione1 bit16 bit (word)
IndirizzoI0.0, Q0.3IW64, QW66
Sensore tipicoPulsante, finecorsaTemperatura, pressione, livello
Attuatore tipicoMotore ON/OFF, valvolaVelocità variabile, posizione
Nel LadderContatti e bobineComparatori con soglie
Nel pannello I/OQuadratini cliccabiliSlider (input), barre (output)

🏋️ Esercizi pratici

Esercizio 9.1 — Esplorazione analogica

  1. Seleziona CPU 1215C DC/DC/DC dal pannello hardware
  2. Osserva il pannello I/O: dovrebbero apparire IW64, IW66 (slider) e QW64, QW66 (barre)
  3. Muovi lo slider di IW64 al massimo → leggi il valore: 27648 (100%)
  4. Mettilo a metà → circa 13824 (50%)
  5. Aggiungi un modulo SM 1231 AI x4 dal pannello hardware. Cosa appare? (IW96, IW98, IW100, IW102)
  6. 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).

  1. Crea un Network con un comparatore: operando 1 = MW (o costante che rappresenta IW64), operando 2 = costante 20000, operatore >=
  2. Collega a Bobina Q0.0
  3. 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