Tutto sui PLC: la CPU
A practical engineering guide to PLC CPU operation, from deterministic scan cycles and I/O image tables to memory, communications, diagnostics, redundancy, p...
Sebbene tutti i componenti all’interno di un PLC siano fondamentali per il suo funzionamento, nessuno è più importante del modulo responsabile dell’esecuzione delle istruzioni logiche che costituiscono la parte “programmabile” di un PLC: la CPU.
L’unità centrale di elaborazione funziona in modo molto simile alla CPU presente in qualsiasi computer, ma raramente troviamo specifiche che si avvicinino anche lontanamente alle prestazioni persino di un moderno laptop di fascia bassa. Il motivo è che, sebbene entrambi eseguano istruzioni fondamentali per il funzionamento del computer, la differenza nel contesto di installazione richiede strategie di esecuzione estremamente diverse.
Che cosa fa realmente la CPU di un PLC?
Per svolgere il compito di “eseguire un processo”, una CPU deve completare alcune attività distinte, tutte strettamente correlate tra loro:
- Comunicare con il dispositivo di programmazione host e caricare il programma
- Trasmettere i dati I/O attraverso il backplane
- Leggere e aggiornare il registro degli ingressi
- Calcolare il risultato di ogni riga di codice
- Aggiornare il registro delle uscite
Il caricamento e l’esecuzione di un programma distinguono questa CPU da un computer tradizionale in un modo molto importante. Per la maggior parte dei laptop, con “sistema operativo”, come Windows, MacOS o Linux, intendiamo il sistema in background che carica ed esegue i programmi e fornisce l’interfaccia utente. Un PLC, invece, non installa né esegue programmi e non offre un’interfaccia utente con cui interagire tramite mouse e tastiera.
Al contrario, un microprocessore come quelli presenti in un PLC è ciò che viene definito “runtime” o ambiente di runtime: ciò significa che esegue soltanto righe di codice macchina e non fornisce un ambiente in cui progettare il codice.

Figura 1. Il modulo CPU (centrale) è progettato per interfacciarsi con un alimentatore, moduli di comunicazione (a sinistra) e moduli I/O (a destra). Immagine utilizzata per gentile concessione dell’autore
Per la progettazione del codice, ogni produttore crea il proprio “ambiente di sviluppo integrato”, come Studio 5000 di Rockwell, TIA Portal di Siemens o TwinCAT di Beckhoff. Ciascuno di questi IDE viene installato su un laptop o un computer desktop; il progetto viene creato e poi scaricato nell’ambiente di runtime del PLC tramite un’interfaccia Ethernet (o PROFINET, EtherCAT, ecc.) oppure seriale (di solito USB).
Oggi esiste una versione evoluta del PLC che integra runtime e sistema operativo nello stesso dispositivo, affiancati. Tra gli esempi figurano gli embedded PC di Beckhoff o PLCnext di Phoenix Contact. Questi dispositivi consentono la programmazione nei consueti linguaggi IEC 61131, ma permettono anche di installare l’IDE e altre applicazioni basate sul sistema operativo direttamente sul PLC.
Come comunica il PLC con i dispositivi I/O?
La comunicazione tramite backplane garantisce la trasmissione di tutte le informazioni I/O tra la CPU e i moduli I/O. Può inoltre gestire la trasmissione dei dati verso i moduli di comunicazione per il collegamento a blocchi I/O remoti.
Le connessioni backplane nei PLC basati su chassis o rack sono costituite da un connettore a pettine multipolare che fornisce alimentazione funzionale ai moduli (non l’alimentazione dei dispositivi di campo, ma questo è un altro argomento) e un numero sufficiente di linee dati Tx e Rx per eseguire rapidamente la scansione di molti moduli in un tempo molto breve. A seconda del produttore, queste linee dati possono utilizzare una forma di comunicazione seriale o una connessione EtherCAT ad alta velocità.
Alcuni PLC dispongono di un numero fisso di I/O integrati (i PLC più piccoli in stile “brick”); alcuni consentono persino di aggiungere moduli supplementari, ma anche questi modelli richiedono il collegamento dati tra la CPU e i punti I/O.

Figura 2. Alcuni PLC con I/O fissi includono anche alloggiamenti per moduli aggiuntivi. Immagine utilizzata per gentile concessione dell’autore
La CPU interroga i moduli di ingresso e di uscita per rilevare lo stato corrente degli I/O alla massima velocità possibile e inserisce tali valori in registri di indirizzamento dedicati nella memoria della CPU.
Le righe di codice, con ogni tag o variabile che fa riferimento a una posizione nel banco di memoria, vengono calcolate una alla volta mentre si forma un registro temporaneo delle uscite. Non appena viene analizzata l’ultima riga, quel registro delle uscite viene inviato a ciascun modulo di uscita. Pertanto, i terminali di uscita non si aggiornano nell’istante in cui una riga passa da falso a vero: sembra soltanto così perché il ciclo di scansione del PLC è molto breve.
Le specifiche più importanti della CPU di un PLC
A differenza dei computer normali, nessun produttore di PLC promuove la velocità in GHz o la quantità di RAM in GB del proprio processore più recente. Perché?
Per quanto riguarda la velocità, la frequenza di clock di un PLC è irrilevante. Ci interessa invece il tempo di esecuzione delle diverse istruzioni. Bit, interi, numeri in virgola mobile, funzioni: ognuno di questi calcoli richiede una determinata quantità di tempo del processore. Le schede tecniche forniscono liberamente queste informazioni, consentendo al programmatore di stimare il tempo necessario per una scansione completa, dalla lettura degli ingressi all’implementazione delle uscite.

Figura 3. Alcuni PLC presentano le funzionalità tipiche di un PLC affiancate alle specifiche prestazionali di un sistema operativo basato su Linux. Immagine utilizzata per gentile concessione dell’autore
Quindi siamo interessati alla velocità, ma non alla frequenza di clock in GHz: ci interessa piuttosto la velocità del ciclo in μs o ms. Poiché ogni programma è diverso, non è possibile fornire una specifica relativa al tempo di ciclo di ogni utente.
Per quanto riguarda l’archiviazione del programma, non abbiamo bisogno di essere appesantiti da un’unità a stato solido esterna da 500 GB. A differenza di un computer, che archivia decine di immagini, video e programmi, noi memorizziamo poche righe di codice testuale, come in un file del Blocco note. Immagina il file .txt più grande che tu abbia mai visto. Qualche MB, forse? Allo stesso modo, l’attenzione non è rivolta alla capacità di archiviazione, ma all’affidabilità assoluta.
Una specifica comune per lo spazio di archiviazione dei programmi è inferiore a 1 GB; solo i processi industriali più imponenti si avvicineranno a questa capacità. Alcuni PLC consentono di espandere la memoria o indicano un costo iniziale per i modelli CPU con una memoria flash più grande, ma spendere denaro per acquistare più memoria di quella necessaria è inutile.
Qual è la CPU migliore per il mio PLC?
Ecco i principali aspetti da considerare:
- Un protocollo di comunicazione compatibile con il laptop di programmazione. Se acquisti una CPU più vecchia con un’interfaccia di programmazione RS-232, assicurati di avere il cavo e il software compatibili.
- Memoria sufficiente per contenere il programma. Quanta te ne serve? Una breve conversazione con il produttore probabilmente chiarirà la questione, ma se hai un processo di piccole dimensioni, qualsiasi capacità inferiore a 100 MB sarà probabilmente più che sufficiente.
- Capacità I/O. Ogni CPU è classificata in base al numero di punti I/O che possono essere collegati al sistema. Assicurati di averne abbastanza.
- Un tempo di ciclo effettivo ridotto per garantire l’affidabilità del sistema. Anche in questo caso, parla con il produttore per farti un’idea del numero di punti I/O e di istruzioni necessari, così da assicurare un ritardo ridotto tra i dati di ingresso e i comandi di uscita.

Figura 4. Scegli con attenzione: anche la CPU più potente è inutile se non puoi collegarti tramite la porta e il protocollo appropriati. Immagine utilizzata per gentile concessione dell’autore
Con queste informazioni dovresti essere pronto ad affrontare la prossima installazione o il prossimo aggiornamento del PLC, assicurandoti di essere preparato per il futuro senza sprecare il denaro dell’azienda. È un equilibrio delicato, ma sono disponibili numerose risorse per aiutarti a prendere la decisione migliore.
Ora dobbiamo esaminare i moduli I/O, poiché l’ossatura del sistema di automazione dipende dall’invio di segnali agli attuatori fisici e dalla ricezione del feedback dei sensori sulle prestazioni del nostro processo.