Cos'è un ciclo di scansione PLC? Come i PLC eseguono i programmi
Ogni PLC esegue lo stesso ciclo fondamentale dal momento dell'accensione: legge gli input, esegue la logica, scrive gli output, ripete. Questo ciclo, chiamato ciclo di scansione, determina la reattività di un PLC agli eventi del mondo reale e definisce il limite massimo di prestazioni per qualsiasi processo controllato.
Comprendere la meccanica del ciclo di scansione aiuta i programmatori a ottimizzare il codice, risolvere i problemi di reattività e selezionare la CPU più adatta per le applicazioni più esigenti. Questa guida spiega nel dettaglio come funziona il ciclo di scansione e quali fattori lo influenzano.
La CPU del PLC esegue il suo programma in un ciclo continuo e sequenziale. Ogni iterazione completa è composta da quattro fasi distinte.
La CPU acquisisce lo stato corrente di tutti i moduli di input e memorizza questi valori in una sezione di memoria dedicata, chiamata tabella delle immagini di input. Questo avviene all'inizio di ogni ciclo di scansione.
Per gli ingressi digitali, la CPU legge un semplice valore 1 (ON) o 0 (OFF). Per gli ingressi analogici, la CPU converte il segnale reale (4-20 mA, 0-10 V o dati del sensore di temperatura) in un valore digitale e lo memorizza.
Questa fase è rapida: in genere da 1 a 10 millisecondi per l'intera scansione dell'ingresso, a seconda del numero di moduli di ingresso e della loro configurazione.
Con i dati di input freschi in memoria, la CPU esegue il programma utente un'istruzione alla volta. Ogni istruzione viene valutata rispetto ai valori correnti della tabella delle immagini di input e i risultati vengono scritti nella tabella delle immagini di output.
È qui che vengono effettivamente eseguite la logica a contatti, i blocchi funzione o le istruzioni di testo strutturato. La CPU legge dalla tabella delle immagini di input, esegue operazioni logiche o aritmetiche e memorizza i risultati nella tabella delle immagini di output, ma, aspetto fondamentale, non scrive ancora sui moduli di output fisici.
La scrittura in memoria è di gran lunga più veloce rispetto alla comunicazione con i moduli di I/O fisici. Rimandare le scritture sugli output fisici fino al completamento della scansione garantisce che tutti gli output cambino simultaneamente, prevenendo stati intermedi instabili.
La scansione del programma è in genere la fase più lunga. Il tempo di scansione è proporzionale alle dimensioni del programma, alla sua complessità e al numero di istruzioni.
Al termine della scansione del programma, la CPU scrive simultaneamente i valori dalla tabella dell'immagine di output nei moduli di output fisici. Le uscite digitali si attivano o disattivano. Le uscite analogiche applicano i valori calcolati al processo.
Questa scrittura coordinata garantisce che gli output riflettano un'istantanea coerente della valutazione logica, senza modifiche all'output durante la scansione del programma. La scansione dell'output richiede in genere da 1 a 5 millisecondi, a seconda del numero di moduli di output.
La fase finale comprende tutte le altre operazioni che la CPU deve eseguire tra un ciclo e l'altro:
· Comunicazione con pannelli HMI e altri dispositivi di rete
· Elaborazione di istruzioni basate sul tempo (timer, orologio in tempo reale)
· Aggiornamento dei registri di diagnostica e guasti
· Gestione delle richieste di comunicazione provenienti da altri PLC o sistemi SCADA
Il tempo dedicato alle operazioni di pulizia varia in base al carico di comunicazione. Un PLC con molteplici connessioni HMI e un'intensa attività di messaggistica di rete potrebbe impiegare una quantità di tempo considerevole in questa fase.

Il tempo di scansione è la durata totale di tutte e quattro le fasi per un ciclo completo. Misurato in millisecondi, determina direttamente la velocità con cui un PLC può rispondere alle variazioni di input.
Valori tipici:
· Programma di piccole dimensioni (100-500 istruzioni): 1-5 ms
· Programma di medie dimensioni (1.000-5.000 istruzioni): 5-20 ms
· Programma di grandi dimensioni (oltre 10.000 istruzioni): 20-100 ms
La relazione tra tempo di scansione e velocità della macchina è fondamentale. Una macchina confezionatrice che lavora a 100 confezioni al minuto ha 600 millisecondi per ciclo. Se il tempo di scansione del PLC è di 50 ms, la macchina ha ancora 550 ms di tempo di risposta disponibile; ma se il tempo di scansione raggiunge i 500 ms, la macchina smette di rispondere.
Per applicazioni di confezionamento, imbottigliamento o controllo del movimento ad alta velocità, sono spesso richiesti tempi di scansione inferiori a 2 ms.
Una domanda frequente: perché la CPU scrive in una tabella di memoria anziché direttamente sulle uscite?
L'approccio basato sulla tabella delle immagini risolve tre problemi. In primo luogo, garantisce aggiornamenti atomici dell'output: ogni output in una data scansione riflette la stessa valutazione logica. In secondo luogo, consente alle istruzioni del programma di leggere i propri stati di output senza creare un ciclo di feedback. In terzo luogo, riduce drasticamente il sovraccarico di comunicazione I/O raggruppando le scritture.
Senza tabelle immagine, una singola scansione ladder logic potrebbe innescare decine di scritture individuali in output in diversi punti durante l'esecuzione, creando un comportamento instabile della macchina.
L'esecuzione standard del ciclo di scansione valuta ogni istruzione ad ogni scansione, indipendentemente dal fatto che le condizioni siano cambiate. Per la maggior parte delle applicazioni questo è accettabile, ma spreca tempo della CPU valutando logica inattiva.
La maggior parte dei PLC moderni supporta l'esecuzione di attività tramite interrupt o periodiche per gestire eventi critici in termini di tempo senza interrompere la scansione principale.
Interruzioni temporizzate (TDI): Eseguono una routine specifica a intervalli precisi, indipendentemente dalla scansione principale. Utilizzate per il conteggio ad alta velocità, l'elaborazione dell'encoder o il controllo PID a intervalli fissi.
Interruzioni attivate da eventi: vengono eseguite quando si verifica una condizione specifica, come una transizione del fronte di ingresso, un evento di comunicazione o una condizione di guasto. Le risposte di sicurezza critiche spesso utilizzano le interruzioni per garantire il tempo di risposta indipendentemente dalla posizione di scansione principale.
Per Siemens S7-1500, la logica critica in termini di tempo può essere eseguita in blocchi organizzativi di interrupt ciclici (OB) con priorità configurabili. Allen Bradley ControlLogix utilizza attività periodiche e basate su eventi con frequenze configurabili.
Misurazione del tempo di scansione: la maggior parte degli ambienti di programmazione visualizza il tempo di scansione in tempo reale. In Studio 5000, la scheda Generale > Proprietà del controller mostra le statistiche di esecuzione. In TIA Portal, il menu Online > Diagnostica fornisce i dati relativi al tempo di scansione.
Riduzione dei tempi di scansione:
· Spostare le istruzioni di comunicazione (funzioni MSG) dalla scansione principale del programma alle attività periodiche.
· Semplifica le espressioni complesse: sostituisci, ove possibile, le operazioni aritmetiche annidate con valori precalcolati.
· Quando possibile, utilizzare riferimenti diretti anziché tag copiati.
· Ridurre il numero di messaggi sulle reti EtherNet/IP o PROFINET
· Valuta la possibilità di utilizzare una CPU più veloce se, nonostante l'ottimizzazione, il tempo di scansione supera i requisiti dell'applicazione.
La comunicazione di rete è la causa più comune di aumenti imprevisti dei tempi di scansione. Ogni interrogazione HMI, ogni lettura SCADA e ogni messaggio PLC-to-PLC consuma tempo CPU durante la fase di gestione.
Quando un PLC deve comunicare con molti dispositivi, il carico di comunicazione può crescere più rapidamente di quanto la CPU sia in grado di gestire, causando un graduale aumento dei tempi di scansione fino al superamento di una soglia che provoca un degrado delle prestazioni della macchina.
Buona prassi: separare il controllo critico in termini di tempo e la comunicazione di rete su segmenti di rete o CPU distinti. Utilizzare una CPU per il controllo della macchina e un'altra per la raccolta e la generazione dei dati.
Il ciclo di scansione del PLC è il cuore pulsante di ogni sistema di controllo industriale. Comprendere le sue quattro fasi (lettura degli input, esecuzione del programma, scrittura degli output e gestione) fornisce ai programmatori le basi per scrivere codice efficiente e risolvere i problemi di reattività.
Il tempo di scansione non è solo un valore numerico. Definisce la reale operatività della macchina. Per la maggior parte delle applicazioni, un tempo di scansione di 10-20 ms è impercettibile per gli operatori. Per le apparecchiature ad alta velocità, 1 ms o meno fa la differenza tra prestazioni accettabili e guasti catastrofici.
Conosci i requisiti del tuo processo. Misura il tempo di scansione effettivo durante il funzionamento, non solo in fase di messa in servizio, e progetta l'architettura di controllo in modo da mantenere tali prestazioni per tutto il ciclo di vita della macchina.

D: Una CPU più veloce significa sempre tempi di scansione più rapidi?
R: Non sempre. Il tempo di scansione dipende dalla complessità del programma, dal carico di comunicazione di rete e dalla configurazione I/O. Una CPU più veloce aiuta, ma l'eliminazione delle istruzioni non necessarie e l'ottimizzazione della comunicazione offrono vantaggi maggiori nella maggior parte delle applicazioni.
D: Cosa succede se un ingresso cambia stato durante la scansione del programma?
A: La CPU non lo rileva fino all'inizio della scansione successiva. Se un ingresso cambia a metà dell'esecuzione e poi torna allo stato precedente prima della successiva scansione degli ingressi, il PLC potrebbe non rilevare mai l'evento. Per eventi più rapidi del tempo di scansione, utilizzare l'elaborazione degli ingressi tramite interrupt.
D: In che modo la modifica online influisce sui tempi di scansione?
A: Quando si apportano modifiche al programma mentre il PLC è in funzione (modifica online), la CPU potrebbe mettere brevemente in pausa la scansione o eseguire operazioni aggiuntive per sincronizzare il nuovo codice. Modifiche online significative possono causare un aumento temporaneo del tempo di scansione da 2 a 5 volte rispetto ai valori normali.
D: Devo preoccuparmi dei tempi di scansione per processi lenti come il trattamento delle acque?
A: Per i processi che cambiano nell'arco di secondi o minuti, i tempi di scansione di 100 ms sono irrilevanti. Tuttavia, gli input e gli allarmi relativi alla sicurezza devono essere sempre elaborati con il minimo ritardo possibile, indipendentemente dalla velocità del processo. Utilizzare gli interrupt per qualsiasi input che richieda una risposta più rapida rispetto alla scansione normale.
D: Il tempo di scansione può variare durante il funzionamento?
R: Sì. Il tempo di scansione è proporzionale alla complessità del programma e al carico di comunicazione. Una macchina inattiva, senza alcuna attività, può eseguire la scansione più velocemente rispetto alla stessa macchina che funziona a piena velocità di produzione con interazione attiva con l'interfaccia HMI e modifiche alle ricette.
· [PLC Siemens](https://www.tztechio.com/siemens) — S7-1500, S7-1200
· [PLC Allen Bradley](https://www.tztechio.com/allen-bradley) — ControlLogix, Logica compatta
· [PLC Mitsubishi](https://www.tztechio.com/mitsubishi) — MELSEC iQ-R
Inoltre, con il tuo permesso, vogliamo inserire cookie per rendere la tua visita e l'interazione con slOC più personale. Per questo utilizziamo cookie analitici e pubblicitari. Con questi cookie noi e terze parti possiamo tracciare e raccogliere il tuo comportamento su Internet all'interno e all'esterno di super-instrument.com. In questo modo noi e terzi adattiamo super-instrument.com e le pubblicità al tuo interesse. Facendo clic su Accetta accetti questo. Se rifiuti, utilizziamo solo i cookie necessari e purtroppo non riceverai alcun contenuto personalizzato. Ti invitiamo a visitare la nostra Cookie policy per maggiori informazioni o per modificare il tuo consenso in futuro.
Accept and continue Decline cookies