Operazioni di Conteggio
CTU, CTD, CTUD e Legacy S5
Il conteggio degli eventi è fondamentale nel controllo industriale. Padroneggia i contatori IEC standard e le istruzioni legacy in TIA Portal per le tue applicazioni di produzione.
Cosa sono le operazioni di conteggio in TIA Portal?
Le operazioni di conteggio in TIA Portal consentono di contare eventi interni al programma o segnali esterni (fronti di salita). Sono blocchi funzionali conformi alla norma IEC 61131-3 che gestiscono l'incremento, il decremento, il ripristino e il confronto con un valore preimpostato (PV).
TIA Portal offre 3 tipi di contatori IEC (CTU, CTD, CTUD), oltre a istruzioni di compatibilità S5 (Legacy) e bobine di conteggio. Ogni istanza di contatore richiede il proprio blocco dati di istanza (IDB) o può essere integrata come multi-istanza in un FB.
Contatori IEC
I 3 blocchi funzionali di conteggio standard: flessibili e robusti
CTU — Conteggio Avanti (Count Up)
Cosa fa
Conta i fronti di salita sull'ingresso di conteggio CU. Ad ogni passaggio da FALSE a TRUE su CU, il valore di conteggio attuale CV aumenta di 1. Quando CV diventa maggiore o uguale al valore preimpostato PV, l'uscita Q passa a TRUE. L'ingresso R (Reset) azzera CV e porta Q a FALSE.
Quando usarlo
Utilizzato per contare pezzi su un trasportatore, cicli di una macchina o la frequenza di un allarme. Ideale per qualsiasi processo in cui è necessario raggiungere un obiettivo numerico per attivare un'azione.
Consigli Pro
Il conteggio si ferma al valore massimo del tipo di dati utilizzato (Int, DInt, ecc.). CV non torna a zero automaticamente senza un Reset.
L'ingresso R ha la priorità: finché R è TRUE, il contatore rimane a 0 e ignora i fronti su CU.
In SCL: myCTU(CU := trigger, R := reset, PV := 10); IF myCTU.Q THEN ... END_IF;
CTD — Conteggio all'Indietro (Count Down)
Cosa fa
Conta all'indietro a partire da un valore iniziale. Ad ogni fronte di salita sull'ingresso CD, il valore attuale CV diminuisce di 1. Quando CV è minore o uguale a 0, l'uscita Q passa a TRUE. L'ingresso LD (Load) carica il valore preimpostato PV in CV.
Quando usarlo
Utile per gestire scorte (sottrarre pezzi), conti alla rovescia di processo o monitorare la capacità residua di un serbatoio o magazzino.
Consigli Pro
L'ingresso LD viene utilizzato per 'ricaricare' il contatore. Finché LD è TRUE, CV è uguale a PV.
A differenza di CTU, la condizione di uscita Q è soddisfatta quando CV raggiunge 0 (o meno).
Il contatore si ferma al valore minimo del tipo di dati (es: -32768 per un Int).
CTUD — Contatore Bidirezionale (Up/Down)
Cosa fa
Combina le funzioni di CTU e CTD in un unico blocco. Ha due ingressi di conteggio (CU per incrementare, CD per decrementare) e due uscite (QU per 'Limite alto raggiunto', QD per 'Zero raggiunto'). Dispone di un ingresso Reset (R) e un ingresso Load (LD).
Quando usarlo
Perfetto per il monitoraggio della posizione semplice (avanti/indietro), gestione parcheggi (ingressi/uscite veicoli) o monitoraggio dinamico delle scorte.
Consigli Pro
QU passa a TRUE se CV >= PV. QD passa a TRUE se CV <= 0.
R (Reset) ripristina CV a 0. LD (Load) inizializza CV a PV. R ha la priorità su LD.
Molto utile per magazzini automatizzati: incrementare all'entrata di un pacco, decrementare all'uscita.
Istruzioni Legacy e Bobine
Contatori S5 e istruzioni di tipo bobina per LAD/FBD
S_CU / S_CD / S_CUD
Cosa fa
Vecchie istruzioni di conteggio (Legacy S5) utilizzate su S7-300/400. Utilizzano numeri di contatore globali (C0...C255) invece di DB di istanza. Consentono di parametrizzare, contare e resettare in un'unica istruzione complessa.
Quando usarlo
Solo per la manutenzione di programmi esistenti o migrazione di progetti S5/S7-300 a S7-1500. Da evitare per nuovi sviluppi.
Consigli Pro
Questi contatori non sono 'tipizzati' come i contatori IEC. Il loro intervallo è limitato (0-999).
Il loro comportamento rispetto ai fronti di salita può differire dagli standard IEC.
Sostituiscili sistematicamente con CTU/CTD IEC durante un refactoring per una migliore portabilità.
—(SC)— Preimposta Contatore
—(SC)—Cosa fa
Istruzione di tipo bobina che carica un valore preimpostato in un contatore specificato quando l'RLO passa a TRUE. È l'equivalente grafico dell'ingresso Load (LD).
Quando usarlo
In LAD/FBD per forzare il caricamento di un valore in un contatore da un segmento separato.
Consigli Pro
Utilizzato principalmente con i contatori legacy.
Il valore caricato è spesso definito da una costante o una variabile intera.
Per i contatori IEC, usa l'ingresso LD del blocco o accedi direttamente all'istanza.
—(CU) / —(CD)— Bobine di conteggio
—(CU)—Cosa fa
Istruzioni di tipo bobina che incrementano (CU) o decrementano (CD) un contatore ad ogni fronte di salita dell'RLO. Consentono di pilotare un contatore senza utilizzare il blocco funzionale completo.
Quando usarlo
Per una programmazione LAD molto compatta in cui si desidera solo attivare un conteggio a fine riga.
Consigli Pro
Queste bobine fanno riferimento a un contatore specifico (es: C1 o un DB contatore IEC).
Attenzione alla leggibilità: è più difficile vedere il valore attuale (CV) con le bobine che con i blocchi.
Preferisci i blocchi FB per una migliore auto-documentazione del codice.
Nota sulla compatibilità S5
Contatori globali
I contatori S5 (S_CU, S_CD, S_CUD) sono limitati a 256 istanze globali e un intervallo da 0 a 999. I contatori IEC (CTU, CTD, CTUD) sono preferibili perché utilizzano DB di istanza, supportano tipi di dati più ampi (LInt) e non hanno un limite di numero fisso.
Confronto tra contatori — Quale usare?
Scegliere il contatore giusto per la tua applicazione industriale
| Hai bisogno di... | Usa questo contatore | Esempio |
|---|---|---|
| Contare eventi crescenti | CTU | Numero di prodotti finiti imballati |
| Contare all'indietro fino a zero | CTD | Posti rimanenti sullo scaffale |
| Monitorare un flusso bidirezionale | CTUD | Veicoli in un parcheggio |
| Caricare un valore target | PV / LD | Imposta lotto di 50 pezzi via HMI |
| Reset automatico | Reset (R) | Fine lotto, pronto per il successivo |
| Gestire milioni di unità | IEC (DInt/LInt) | Contatore totalizzatore di produzione annua |
Domande Frequenti
Qual è la differenza tra un contatore IEC e un contatore S5?
I contatori IEC utilizzano Blocchi Dati (DB) di istanza, il che consente di crearne un numero infinito. Supportano interi a 16, 32 o 64 bit. I contatori S5 sono limitati a 256 numeri globali (C0-C255) e contano solo fino a 999.
Come posso far ripartire il contatore da zero automaticamente?
Puoi collegare l'uscita Q del contatore al suo ingresso R (Reset). In questo modo, appena l'obiettivo viene raggiunto, il contatore si azzera istantaneamente.
Posso usare un contatore per misurare una velocità?
Un contatore da solo non misura la velocità. Devi contare gli impulsi durante un tempo fisso (gestito da un Temporizzatore) e poi fare il calcolo: Velocità = Impulsi / Tempo.
I contatori perdono il loro valore all'arresto del PLC?
Come per i Temporizzatori, il valore attuale (CV) è memorizzato nel DB di istanza. Se il DB è configurato come 'Remanente', il contatore manterrà il suo valore dopo un riavvio.