Opérations sur Compteurs
CTU, CTD, CTUD & Legacy S5
Le comptage d'événements est au cœur du contrôle industriel. Maîtrisez les compteurs IEC standard et les instructions legacy dans TIA Portal pour vos applications de production.
Que sont les opérations sur compteurs dans TIA Portal ?
Les opérations sur compteurs dans TIA Portal permettent de compter des événements internes au programme ou des signaux externes (fronts montants). Ce sont des blocs fonctionnels conformes à la norme IEC 61131-3 qui gèrent l'incrémentation, la décrémentation, la réinitialisation et la comparaison avec une valeur de présélection (PV).
TIA Portal propose 3 types de compteurs IEC (CTU, CTD, CTUD) ainsi que des instructions de compatibilité S5 (Legacy) et des bobines de comptage. Chaque instance de compteur nécessite son propre bloc de données d'instance (IDB) ou peut être intégrée en tant que multi-instance dans un FB.
Compteurs IEC
Les 3 blocs fonctionnels de comptage standard — flexibles et robustes
CTU — Compteur Croissant (Count Up)
Ce qu'il fait
Compte les fronts montants sur l'entrée de comptage CU. À chaque passage de FALSE à TRUE sur CU, la valeur de comptage actuelle CV augmente de 1. Lorsque CV devient supérieur ou égal à la valeur de présélection PV, la sortie Q passe à TRUE. L'entrée R (Reset) remet CV à 0 et Q à FALSE.
Quand l'utiliser
Utilisé pour compter des pièces sur un convoyeur, le nombre de cycles d'une machine, ou le nombre de fois qu'une alarme s'est produite. Idéal pour tout processus où vous devez atteindre une cible numérique pour déclencher une action.
Conseils Pro
Le comptage s'arrête à la valeur maximale du type de données utilisé (Int, DInt, etc.). CV ne 'boucle' pas automatiquement à zéro sans Reset.
L'entrée R est prioritaire : tant que R est à TRUE, le compteur reste à 0 et ignore les fronts sur CU.
En SCL : myCTU(CU := trigger, R := reset, PV := 10); IF myCTU.Q THEN ... END_IF;
CTD — Compteur Décroissant (Count Down)
Ce qu'il fait
Décompte à partir d'une valeur initiale. À chaque front montant sur l'entrée CD, la valeur actuelle CV diminue de 1. Lorsque CV est inférieur ou égal à 0, la sortie Q passe à TRUE. L'entrée LD (Load) charge la valeur de présélection PV dans CV.
Quand l'utiliser
Utile pour gérer des stocks (soustraire des pièces), des comptes à rebours de processus, ou surveiller la capacité restante d'un réservoir ou d'un magasin.
Conseils Pro
L'entrée LD est utilisée pour 'recharger' le compteur. Tant que LD est TRUE, CV est égal à PV.
Contrairement au CTU, la condition de sortie Q est remplie lorsque CV atteint 0 (ou moins).
Le compteur s'arrête à la valeur minimale du type de données (ex: -32768 pour un Int).
CTUD — Compteur Bidirectionnel (Up/Down)
Ce qu'il fait
Combine les fonctions de CTU et CTD dans un seul bloc. Il possède deux entrées de comptage (CU pour incrémenter, CD pour décrémenter) et deux sorties (QU pour 'Comptage haut atteint', QD pour 'Zéro atteint'). Il dispose à la fois d'une entrée Reset (R) et d'une entrée Load (LD).
Quand l'utiliser
Parfait pour le suivi de position simple (avancer/reculer), la gestion de parking (entrées/sorties de véhicules), ou le suivi de niveau de stock dynamique où des éléments sont ajoutés et retirés.
Conseils Pro
QU passe à TRUE si CV >= PV. QD passe à TRUE si CV <= 0.
R (Reset) réinitialise CV à 0. LD (Load) initialise CV à PV. R a la priorité sur LD.
Très utile pour les entrepôts automatisés : incrémenter à l'entrée d'un colis, décrémenter à la sortie.
Instructions Legacy et Bobines
Compteurs S5 et instructions de type bobine pour LAD/FBD
S_CU / S_CD / S_CUD
Ce qu'il fait
Anciennes instructions de comptage (Legacy S5) utilisées sur S7-300/400. Elles utilisent des numéros de compteurs globaux (C0...C255) au lieu de DB d'instance. Elles permettent de paramétrer, compter et réinitialiser en une seule instruction complexe.
Quand l'utiliser
Uniquement pour la maintenance de programmes existants ou la migration de projets S5/S7-300 vers S7-1500. À éviter pour les nouveaux développements.
Conseils Pro
Ces compteurs ne sont pas 'typés' comme les compteurs IEC. Leur plage est limitée (0-999).
Leur comportement face aux fronts montants peut différer des standards IEC.
Remplacez-les systématiquement par des CTU/CTD IEC lors d'un refactoring pour une meilleure portabilité.
—(SC)— Présélectionner Compteur
—(SC)—Ce qu'il fait
Instruction de type bobine qui charge une valeur de présélection dans un compteur spécifié lorsque le RLO passe à TRUE. C'est l'équivalent graphique de l'entrée Load (LD).
Quand l'utiliser
En LAD/FBD pour forcer le chargement d'une valeur dans un compteur depuis un réseau séparé.
Conseils Pro
Principalement utilisé avec les compteurs legacy.
La valeur chargée est souvent définie par une constante ou une variable entière.
Pour les compteurs IEC, utilisez plutôt l'entrée LD du bloc ou accédez à l'instance directement.
—(CU) / —(CD)— Bobines de comptage
—(CU)—Ce qu'il fait
Instructions de type bobine qui incrémentent (CU) ou décrémentent (CD) un compteur à chaque front montant du RLO. Elles permettent de piloter un compteur sans utiliser le bloc fonctionnel complet dans le réseau.
Quand l'utiliser
Pour une programmation LAD très compacte où l'on souhaite juste déclencher un comptage en fin de ligne.
Conseils Pro
Ces bobines référencent un compteur spécifique (ex: C1 ou un DB de compteur IEC).
Attention à la lisibilité : il est plus difficile de voir la valeur actuelle (CV) avec des bobines qu'avec des blocs.
Privilégiez les blocs FB pour une meilleure auto-documentation du code.
Note sur la compatibilité S5
Compteurs globaux
Les compteurs S5 (S_CU, S_CD, S_CUD) sont limités à 256 instances globales et une plage de 0 à 999. Les compteurs IEC (CTU, CTD, CTUD) sont préférables car ils utilisent des DB d'instance, supportent des types de données plus larges (LInt) et n'ont pas de limite de nombre fixe.
Comparaison des compteurs — Lequel utiliser ?
Choisir le bon compteur pour votre application industrielle
| Vous avez besoin de... | Utilisez ce compteur | Exemple |
|---|---|---|
| Compter des événements croissants | CTU | Nombre de produits finis emballés |
| Décompter jusqu'à zéro | CTD | Nombre de places restantes en rayon |
| Suivre un flux bidirectionnel | CTUD | Nombre de véhicules dans un parking |
| Charger une valeur cible | PV / LD | Définir un lot de 50 pièces via IHM |
| Remise à zéro automatique | Reset (R) | Fin de lot, prêt pour le suivant |
| Gérer des millions d'unités | IEC (DInt/LInt) | Compteur totalisateur de production annuelle |
Foire Aux Questions
Quelle est la différence entre un compteur IEC et un compteur S5 ?
Les compteurs IEC utilisent des Blocs de Données (DB) d'instance, ce qui permet d'en créer une infinité (limité par la mémoire). Ils supportent des entiers 16, 32 ou 64 bits. Les compteurs S5 sont limités à 256 numéros globaux (C0-C255) et comptent uniquement jusqu'à 999.
Comment faire pour que le compteur reparte de zéro automatiquement ?
Vous pouvez connecter la sortie Q du compteur sur sa propre entrée R (Reset), souvent via une bobine de reset ou un front montant. Ainsi, dès que la cible est atteinte, le compteur s'efface instantanément.
Puis-je utiliser un compteur pour mesurer une vitesse ?
Un compteur seul ne mesure pas la vitesse. Vous devez compter les impulsions pendant une durée fixe (fenêtre de temps gérée par un Timer) puis faire le calcul : Vitesse = Impulsions / Temps.
Les compteurs perdent-ils leur valeur à l'arrêt du PLC ?
Comme pour les Timers, la valeur actuelle (CV) est stockée dans le DB d'instance. Si le DB est configuré comme 'Rémanent', le compteur retrouvera sa valeur après un redémarrage ou une coupure de courant.