[traduzione]

Perché il tuo PLC deve fermarsi subito? Come usare gli interrupt del PLC

Un PLC (Programmable Logic Controller) solitamente esegue la logica in un ciclo. Questo ciclo viene chiamato "ciclo di scansione". Alcuni PLC possono interrompere attività a bassa priorità ed eseguire una routine speciale in caso di un evento hardware o di un evento temporizzato.

Sommario

Siemens chiama queste routine OB. Rockwell Logix le chiama task. Immaginate questo. Leggete un buon libro. Poi squilla il telefono. Segnate la pagina. Rispondete alla chiamata. Quando avete finito, tornate subito al libro.

UN PLC L'interruzione funziona in modo molto simile. La CPU non si "ferma" veramente. Piuttosto, mette in pausa la logica a priorità inferiore, gestisce l'evento urgente e poi torna al punto in cui si era interrotta. Tuttavia, il tempo di interruzione dipende dalla priorità, dal tipo di trigger e dal carico della CPU. Le reazioni rapide sono reali. Semplicemente non sono magiche.

Cos'è un'interruzione PLC?

I PLC normali seguono spesso uno schema di base: aggiornano le uscite, leggono gli ingressi in memoria, quindi eseguono il programma utente con i valori memorizzati. Questo modello funziona bene per molte macchine. Tuttavia, alcuni eventi si verificano troppo rapidamente per la sola scansione principale.

Ecco perché i fornitori offrono OB di interrupt hardware, OB di interrupt ciclici, OB basati sul tempo e task di evento per attività speciali. In Logix, il controller esegue un task alla volta e un task periodico o di evento può interrompere un'attività a bassa priorità e quindi restituire il controllo al task precedente.

CS1H-CPU63H

Perché abbiamo bisogno che si fermino?

Pensa a una lama di sega che gira velocemente. Vuoi catturare un sensore bordo nel punto giusto. Non puoi permetterti di reagire in ritardo. Se la logica principale impiega troppo tempo, la macchina potrebbe spostarsi più lontano di quanto desideri prima che il compito normale arrivi a destinazione.

Il codice basato sugli eventi è utile perché viene eseguito quando si verifica il trigger, anziché attendere il successivo passaggio completo attraverso la logica ordinaria.

Ma ecco la parte che richiede attenzione. Non è sempre necessario uno speciale trucco di "output immediato" per avere un impatto rapido sul mondo reale. Su Siemens, il sistema può trasferire le partizioni dell'immagine di processo in uscita assegnate a un OB di interrupt indipendentemente da UPDAT_PO.

Su Logix, un'attività normalmente elabora gli output al termine del suo ciclo, a meno che non si disattivi tale opzione. Quindi, non date per scontato che un normale tag di output sia sempre troppo lento e non date per scontato che un'istruzione magica risolva ogni caso. Innanzitutto, verificate come il vostro PLC aggiorna gli I/O. Quindi, scegliete il metodo più adatto alla piattaforma.

Marche diverse utilizzano nomi diversi. Siemens S7-1200 utilizza blocchi organizzativi come OB di interrupt hardware e OB di interrupt ciclici. Logix utilizza task continui, periodici e basati su eventi.

L'obiettivo è lo stesso in entrambi i mondi: reagire al momento giusto senza far aspettare l'intero controller. I dettagli, però, sono specifici per ogni marchio.

Come si usa la funzione di interrupt del PLC?

A dire il vero, è piuttosto facile se si seguono le regole. Spesso la gente lo fa sembrare più spaventoso di quanto non sia in realtà. Si può semplificare.

Seleziona il trigger. Indica al PLC quale evento deve avviare la routine veloce. Il trigger potrebbe essere una variazione di un ingresso digitale, un evento di movimento, un evento HSC, un tag consumato o un'interruzione temporizzata.

Scrivi codice veloce. Mantienilo breve e mirato. Se accumuli lavoro extra, aumenti la latenza e il rischio di sovrapposizioni o problemi di timeout.

Cancella il flag. In molti casi, il sistema gestisce autonomamente la chiamata all'evento. Tuttavia, potrebbe essere necessario reimpostare la condizione dell'applicazione o riattivare l'evento sorgente in modo che l'evento successivo abbia senso.

Prestare attenzione anche alle sovrapposizioni. In Logix, se un'attività evento si attiva nuovamente mentre è ancora in esecuzione, il controller ignora il trigger sovrapposto.

Modello CP1E-NA20DT-D

Quali tipi di interruzioni esistono?

I nomi cambiano da un marchio all'altro. Quindi, non considerare un'etichetta del fornitore come una regola per ogni PLC. Tuttavia, questi tre gruppi forniscono una solida mappa di lavoro.

Tipo di interruzioneCosa faMiglior caso d'uso
Hardware o eventoViene eseguito quando si verifica un evento hardware o software configurato e può interrompere il lavoro a bassa prioritàBordi rapidi dei sensori, segni di registrazione, eventi HSC o trigger correlati al movimento
Periodico o ciclicoViene eseguito a intervalli fissi anziché attendere la scansione principaleLavoro di controllo regolare che richiede tempi costanti
Gestione dei guasti o della diagnosiViene eseguito quando la CPU o un modulo segnala un evento temporale o diagnosticoRilevamento di sovraccarichi di scansione, overflow di coda o diagnostica del modulo

Confrontiamo l'idea del timing. I numeri esatti dipendono sempre dalla CPU, dalla priorità, dalla frequenza di trigger e dal carico totale del programma. Quindi, usatelo come una mappa mentale, non come una tavoletta di pietra.

MetricoCiclo di scansione principaleInterruzione hardware/attività evento
Tempi di esecuzioneViene eseguito come parte della normale esecuzione ciclica del programma e la tempistica dipende dal carico e dalla configurazione del programmaViene eseguito quando si verifica il trigger e può interrompere il lavoro a priorità inferiore, ma la latenza reale dipende ancora dalla priorità e dal carico del sistema
UrgenzaAdatto per la logica delle macchine normali e per il sequenziamento generaleIdeale per eventi sensibili al tempo che non devono attendere la logica di routine
Lunghezza del codicePuò contenere una logica di macchina più ampiaDovrebbe rimanere breve in modo che finisca prima del trigger successivo ed eviti problemi di sovrapposizione

Come potete vedere, la differenza di velocità può essere enorme. Tuttavia, non esiste un tempo di risposta magico che vada bene per ogni PLC. Il diavolo si nasconde nei dettagli.

Modello CJ1W-OD262

Stai commettendo questi gravi errori?

Vedo questo problema di continuo. Non dare per scontato che un timer IEC standard si comporti in un interrupt one-shot nello stesso modo in cui si comporta in OB1 o in un normale task ciclico.

Siemens afferma che il timer si aggiorna solo quando viene eseguita l'istruzione o quando il codice legge i membri chiave del timer. Ciò significa che un interrupt hardware o un task evento che viene eseguito una volta per trigger spesso genera un comportamento del timer scadente o fuorviante. Un interrupt ciclico o un task periodico sono diversi perché vengono eseguiti ripetutamente.

Inoltre, non scrivere cicli morti per "attendere" che il tempo passi. Sarebbe come premere a fondo il pedale dell'acceleratore mentre l'auto è ferma in garage. Sprecheresti tempo di esecuzione e causeresti problemi. Siemens sottolinea che gli overrun di scansione, gli overflow di coda e i conflitti di temporizzazione degli interrupt possono generare errori temporali. In alcuni casi, ripetuti errori di ciclo possono portare la CPU in STOP.

Un altro errore enorme è chiamare troppi interrupt. Non tutti i piccoli sensori meritano di saltare la fila. Rockwell avverte che ogni attività extra sottrae tempo al controller rispetto alle altre.

Avverte inoltre che se un'attività viene nuovamente attivata mentre è ancora in esecuzione, il controller ignorerà il trigger sovrapposto. Quindi, usate gli interrupt solo quando ne avete veramente bisogno. Altrimenti, la vostra soluzione rapida si trasformerà in un pasticcio lento.

Dai potenza ai tuoi progetti con i nuovi PLC originali Omron, Mitsubishi e Schneider, disponibili in magazzino e pronti da subito!

Conclusione

Gli interrupt o le attività di evento mettono in pausa le attività a bassa priorità in modo che il PLC possa reagire rapidamente agli eventi urgenti. La CPU non si spegne. Cambia attività e poi riprende. 

Sono utili quando un evento non deve attendere la normale logica ciclica. Interrupt hardware, interrupt ciclici e task evento servono tutti a questo scopo in modi diversi. 

Mantieni breve il codice di interrupt. Un codice lungo aumenta la latenza e il rischio di sovrapposizione. 

Non dare per scontato che i timer standard si comportino bene in una routine di eventi one-shot. Se hai bisogno di un comportamento temporizzato, valuta attentamente se desideri davvero un evento hardware, un'attività periodica o un'interruzione ciclica. 

Non dare per scontato di dover sempre utilizzare I/O fisici immediati per reagire rapidamente. Verifica innanzitutto come il tuo PLC gestisce le immagini di processo, l'accesso diretto agli I/O e l'elaborazione degli output dei task. 

Prestare attenzione a sovrapposizioni, overflow delle code e guasti durante il ciclo. La logica veloce è ottima. Una logica veloce che non finisce mai è un disastro. 

Contattaci

Basta compilare il tuo nome, indirizzo email e una breve descrizione della tua richiesta in questo modulo. Ti contatteremo entro 24 ore.

Potresti trovare interessanti anche questi argomenti

Staffetta

Contattore vs relè: comprendere la differenza tra contattori e relè

Questo articolo si addentra nel mondo dei contattori e dei relè, due componenti essenziali nei sistemi di controllo e automazione industriale. Esploreremo le loro funzionalità, differenze e applicazioni, aiutandoti a capire perché queste informazioni sono cruciali per chiunque sia coinvolto in fabbriche di macchinari e attrezzature, aziende manifatturiere o di soluzioni di fabbrica. Che tu stia cercando di ottimizzare il tuo attuale sistema elettrico o di progettarne uno nuovo, comprendere le sfumature tra relè e contattore può avere un impatto significativo su efficienza, sicurezza ed economicità. 

Per saperne di più "

Richiedi un preventivo veloce

*Rispettiamo la tua riservatezza e tutte le informazioni sono protette.