Gli ingressi analogici sul PLC: la sonda di temperatura PT100

Una PT100 è un tipo di sensore di temperatura a resistenza (RTD, Resistance Temperature Detector) molto utilizzato in ambito industriale per misurare la temperatura con precisione.

Normalmente si presenta con tre fili di collegamento che seguono il seguente schema.

Collegamento dei fili:

PT100 filo Modulo SM1231 RTD Funzione
Filo 1 (bianco) AI0+ Corrente di misura
Filo 2 (bianco) AI0M Misura tensione
Filo 3 (rosso) AI0N Compensazione

⚠️ I colori possono variare a seconda del costruttore del sensore, ma in genere due fili dello stesso colore sono “gemelli”, mentre quello diverso è la linea di corrente.

La PT100 non può essere collegata direttamente a un ingresso analogico standard del PLC come IW64.

Perché:

  • Gli ingressi analogici standard del PLC (es. IW64) aspettano segnali in tensione (0–10 V) o in corrente (4–20 mA).

  • Una PT100 è un sensore resistivo che cambia resistenza, non fornisce né tensione né corrente utile.

  • Quindi collegarla direttamente non produrrà letture corrette e potrebbe danneggiare l’ingresso.

Per collegare la PT100 ci sono tre soluzioni possibili:

1. Usare un modulo RTD (es. SM1231 RTD) che si collega direttamente la PT100 (2, 3 o 4 fili). È il metodo più semplice e preciso con i PLC S7-1200. Il modulo si occupa di generare la corrente di misura, leggere la resistenza e convertire in temperatura

2. Usare un convertitore PT100 → 4-20 mA. In questo caso si collega la PT100 al convertitore che invia un segnale 4–20 mA. NB: questo segnale può essere collegato a un ingresso analogico del PLC, come IW64, se supporta segnali di corrente

3. Usare un convertitore PT100 → 0-10 V. Si Collega la PT100 al convertitore, che invia un segnale 0-10V. Questo segnale può essere collegato a un ingresso analogico del PLC, come IW64, se supporta segnali di tensione

In questo articolo useremo un convertitore di segnale pt100 -> 0-10 V come quello in figura:

a cui colleghiamo una PT 100 come quella in figura, che ha un range 0-100°C

Quindi, ricapitolando i collegamenti elettrici sono i seguenti:

PT100 → Convertitore

  • Collega la PT100 al convertitore (seguendo le istruzioni del convertitore per il tipo a 2, 3 o 4 fili).

  • Il convertitore trasforma il valore di temperatura in una tensione proporzionale 0–10 V.

Convertitore → PLC (AI0)

  • Il positivo del segnale (0–10 V) del convertitore va collegato al morsetto AI0 del PLC.

  • Il negativo (GND) va collegato al M analogico (MANA) del PLC.

Attenzione che anche il convertitore, come abbiamo detto, va alimentato con i 24V (preso dal PLC) e dalla massa (presa dal PLC). Una massa va anche all’ingresso del PLC, insieme al cavo del segnale (blu) che viene dal convertitore

Preparazione delle variabili

L’unico ingresso impegnato nel progetto è quello analogico. L’indirizzo dell’ingresso dell’immagine sopra è %IW64.

La tabella delle TAGS quindi avrà un’unica linea relativa all’ingresso %IW64 a cui è associrato un valore intero:

 

A questo punto, per procedere alla realizzazione del programma, abbiamo bisogno di ulteriori variabili, che serviranno a comprendere meglio i passaggi da realizzare per arrivare alla definizione della temperatura partendo da un valore di tensione.

Il primo passaggio, prevede la normalizzazione della variabile di ingresso: l’input analogico del PLC S7-1200, infatti, una volta convertito in digitale, restituisce alla CPU un valore che va da 0 a 27648. In altri termini, quando al PLC arriva 0V, la CPU leggerà 0 dalla porta IW64 e quando arrivano 10V, la CPU restituirà il suo valore massimo: 27648.

Questo valore va “normalizzato”, ovvero va trasformato in un valore reale compreso tra 0.0 e 1.0 e per questa operazione sarà necessario creare una variabile di tipo reale in un blocco DB che chiameremo Normed_sens_temp.

Successivamente il valore di Normed_sens_temp (compreso tra 0 e 1), dovrà essere convertito in temperatura, a seconda della scala del sensore. Se, come nel nostro caso, il sensore ha un range che va da 0 a 100°C, si calcolerà la temperatura misurata come una frazione del range (0-100) calcolata in base al valore di Normed_sens_temp.

Il valore della temperatura così calcolata lo salveremo su un’altra variabile reale che chiameremo Scaled_temperatura.

Quindi, riassumendo, sarà necessario aggiungere un blocco dati tramite la funzione “Add new block” della sezione “Program blocks” del ramo del PLC. Il blocco lo chiameremo DB_dati_ingressi:

All’interno del blocco, dovremo creare le due variabili Normed_sens_temp e Scaled_temperatura

Realizzazione del programma

Il programma sarà composto di due blocchi: quello destinato alla “normalizzazione” del valore letto in ingresso, e quello che lo scala. I due blocchi si chiamano, rispettivamente: NORM_X e SCALE_X

NORM_X legge il valore dall’ingresso IW64, che è un numero che va da 0 a 27648, lo trasforma in un numero che va da 0 a 1.0 e salva il risultato nella variabile Normed_sens_temp;

SCALE_X prende la variabile Normed_sens_temp e lo trasforma, tramite una proporzione, in un valore compreso tra i suoi valore MIN e MAX (nel nostro caso 0 e 100), per poi salvare il risultato nel valroe Scaled_temperatura

A questo punto abbiamo il valore della temperatura, che, ad esempio, possiamo mostrare in un HMI (come spiegato nell’articolo Configurare un HMI ). In particolare aggiungiamo un HMI Siemens KTP400 Basic. Per farlo cliccare su “Add new device”

E sullo screen_1 aggiungiamo solo il campo di testo Scaled_temperatura, preso dal DB_Dati_Ingressi. Attenzione al formato, che qui abbiamo scelto come s999.99 (quindi un numero di tre cifre con due decimali e il segno)

Per aggiungere l’unità di misura di deve andare alla voce “Appearance”:

Infine, se non è stato già fatto, va configurata la rete e la connessione tra il PLC e l’HMI. Per farlo, si deve andare alla voce della ramificazione principale: “Devices and network”

Simulazione

In mancanza di un PLC vero, passiamo alla simulazione. Avviamo la simulazione sia del PLC che dell’HMI come spiegato nell’articolo Simulare un progetto per il PLC su TIA Portal

Per simulare un ingresso nel simulatore, si possono usare le “Force tables”. Nella “tabella di forzatura” è possibile forzare un valore di ingresso.

Per aprire una tabella di forzatura selezionare “Force tables” dalla ramificazione e poi inserire la variabile che si vuole forzare (nel nostro caso “ST_Sensore_temp”)

Si deve inserire un valore “forzato” nel campo “Force value” (noi abbiamo messo 2000) e poi si deve cliccare sull’icona degli occhiali con la freccia verde

Infine si deve cliccare sulla F rossa e la freccia verde per applicare la forzatura. Comparirà una F rossa a sinistra dal valore forzato:

Nel programma in corrispondenza dell’ingresso apparirà ancora una F rossa e il valore impostato:

E nel simulatore dell’HMI, apparirà il valore della temperatura calcolato