Zähleroperationen
CTU, CTD, CTUD & Legacy S5
Das Zählen von Ereignissen ist das Herzstück der industriellen Steuerung. Beherrschen Sie standardmäßige IEC-Zähler und Legacy-Anweisungen in TIA Portal für Ihre Produktionsanwendungen.
Was sind Zähleroperationen in TIA Portal?
Zähleroperationen in TIA Portal ermöglichen es Ihnen, interne Programmereignisse oder externe Signale (positive Flanken) zu zählen. Dies sind Funktionsbausteine gemäß der Norm IEC 61131-3, die das Inkrementieren, Dekrementieren, Rücksetzen und Vergleichen mit einem Vorgabewert (PV) übernehmen.
TIA Portal bietet 3 Arten von IEC-Zählern (CTU, CTD, CTUD) sowie S5-Kompatibilitätsanweisungen (Legacy) und Zählerspulen. Jede Zählerinstanz benötigt einen eigenen Instanz-Datenbaustein (IDB) oder kann als Multiinstanz in einem FB integriert werden.
IEC-Zähler
Die 3 Standard-Zählfunktionsbausteine — flexibel und robust
CTU — Vorwärtszähler (Count Up)
Was es macht
Zählt positive Flanken am Zähleingang CU. Bei jedem Wechsel von FALSE nach TRUE an CU erhöht sich der aktuelle Zählwert CV um 1. Wenn CV größer oder gleich dem Vorgabewert PV wird, wird der Ausgang Q auf TRUE gesetzt. Der Eingang R (Reset) setzt CV auf 0 und Q auf FALSE zurück.
Wann man es verwendet
Wird verwendet, um Teile auf einem Förderband, Maschinenzyklen oder die Häufigkeit eines Alarms zu zählen. Ideal für jeden Prozess, bei dem ein numerisches Ziel erreicht werden muss, um eine Aktion auszulösen.
Profi-Tipps
Der Zählvorgang stoppt beim Maximalwert des verwendeten Datentyps (Int, DInt usw.). CV springt ohne Reset nicht automatisch auf Null zurück.
Der Eingang R hat Vorrang: Solange R auf TRUE steht, bleibt der Zähler auf 0 und ignoriert Flanken an CU.
In SCL: myCTU(CU := trigger, R := reset, PV := 10); IF myCTU.Q THEN ... END_IF;
CTD — Rückwärtszähler (Count Down)
Was es macht
Zählt von einem Anfangswert rückwärts. Bei jeder positiven Flanke am Eingang CD verringert sich der aktuelle Wert CV um 1. Wenn CV kleiner oder gleich 0 ist, wird der Ausgang Q auf TRUE gesetzt. Der Eingang LD (Load) lädt den Vorgabewert PV in CV.
Wann man es verwendet
Nützlich für die Lagerverwaltung (Teile abziehen), Prozess-Countdowns oder die Überwachung der Restkapazität eines Tanks oder Magazins.
Profi-Tipps
Der Eingang LD wird zum 'Nachladen' des Zählers verwendet. Solange LD auf TRUE steht, entspricht CV dem Wert PV.
Im Gegensatz zu CTU ist die Ausgangsbedingung Q erfüllt, wenn CV 0 (oder weniger) erreicht.
Der Zähler stoppt beim Minimalwert des Datentyps (z. B. -32768 bei einem Int).
CTUD — Vorwärts-/Rückwärtszähler
Was es macht
Kombiniert CTU- und CTD-Funktionen in einem Baustein. Er hat zwei Zähleingänge (CU zum Erhöhen, CD zum Verringern) und zwei Ausgänge (QU für 'Maximalwert erreicht', QD für 'Null erreicht'). Er verfügt sowohl über einen Reset-Eingang (R) als auch über einen Lade-Eingang (LD).
Wann man es verwendet
Perfekt für einfache Positionsverfolgung (vorwärts/rückwärts), Parkplatzverwaltung (Ein-/Ausfahrt von Fahrzeugen) oder dynamische Bestandsverfolgung.
Profi-Tipps
QU wird TRUE, wenn CV >= PV. QD wird TRUE, wenn CV <= 0.
R (Reset) setzt CV auf 0 zurück. LD (Load) initialisiert CV mit PV. R hat Vorrang vor LD.
Sehr nützlich für automatisierte Lager: Inkrementieren beim Eingang eines Pakets, Dekrementieren beim Ausgang.
Legacy-Anweisungen und Spulen
S5-Zähler und spulenbasierte Anweisungen für KOP/FUP
S_CU / S_CD / S_CUD
Was es macht
Alte Zählanweisungen (Legacy S5), die bei S7-300/400 verwendet wurden. Sie verwenden globale Zählernummern (C0...C255) anstelle von Instanz-DBs. Sie ermöglichen Parametrierung, Zählen und Rücksetzen in einer einzigen Anweisung.
Wann man es verwendet
Nur für die Wartung bestehender Programme oder die Migration von S5/S7-300 Projekten auf S7-1500. Für Neuentwicklungen zu vermeiden.
Profi-Tipps
Diese Zähler sind nicht wie IEC-Zähler 'typisiert'. Ihr Bereich ist begrenzt (0-999).
Ihr Verhalten bei positiven Flanken kann von den IEC-Standards abweichen.
Ersetzen Sie diese beim Refactoring konsequent durch IEC-CTU/CTD für bessere Portabilität.
—(SC)— Zähler setzen
—(SC)—Was es macht
Spulenbasierte Anweisung, die einen Vorgabewert in einen bestimmten Zähler lädt, wenn das VKE auf TRUE wechselt. Dies ist das grafische Äquivalent zum Lade-Eingang (LD).
Wann man es verwendet
In KOP/FUP, um das Laden eines Wertes in einen Zähler von einem separaten Netzwerk aus zu erzwingen.
Profi-Tipps
Wird hauptsächlich mit Legacy-Zählern verwendet.
Der geladene Wert wird oft durch eine Konstante oder eine Ganzzahlvariable definiert.
Verwenden Sie bei IEC-Zählern stattdessen den LD-Eingang des Bausteins.
—(CU) / —(CD)— Zählerspulen
—(CU)—Was es macht
Spulenbasierte Anweisungen, die einen Zähler bei jeder positiven Flanke des VKE inkrementieren (CU) oder dekrementieren (CD). Sie ermöglichen die Ansteuerung eines Zählers ohne den vollständigen Baustein.
Wann man es verwendet
Für sehr kompakte KOP-Programmierung, wenn man nur einen Zählvorgang am Ende einer Zeile auslösen möchte.
Profi-Tipps
Diese Spulen beziehen sich auf einen bestimmten Zähler (z. B. C1 oder einen IEC-Zähler-DB).
Vorsicht bei der Lesbarkeit: Der aktuelle Wert (CV) ist bei Spulen schwerer zu erkennen als bei Bausteinen.
Bevorzugen Sie FB-Bausteine für eine bessere Selbstdokumentation des Codes.
Hinweis zur S5-Kompatibilität
Globale Zähler
S5-Zähler (S_CU, S_CD, S_CUD) sind auf 256 globale Instanzen und einen Bereich von 0 bis 999 begrenzt. IEC-Zähler (CTU, CTD, CTUD) sind vorzuziehen, da sie Instanz-DBs verwenden, größere Datentypen (LInt) unterstützen und keine feste Anzahlbeschränkung haben.
Zähler-Vergleich — Welchen verwenden?
Wählen Sie den richtigen Zähler für Ihre industrielle Anwendung
| Sie benötigen... | Verwenden Sie diesen Zähler | Beispiel |
|---|---|---|
| Aufsteigende Ereignisse zählen | CTU | Anzahl der verpackten Fertigprodukte |
| Rückwärts bis Null zählen | CTD | Anzahl der verbleibenden Regalplätze |
| Bidirektionalen Fluss verfolgen | CTUD | Anzahl der Fahrzeuge in einem Parkhaus |
| Einen Zielwert laden | PV / LD | Chargengröße von 50 Stück über HMI festlegen |
| Automatischer Reset | Reset (R) | Chargenende, bereit für die nächste |
| Millionen von Einheiten verwalten | IEC (DInt/LInt) | Summenzähler für die Jahresproduktion |
Häufig gestellte Fragen
Was ist der Unterschied zwischen einem IEC-Zähler und einem S5-Zähler?
IEC-Zähler verwenden Instanz-Datenbausteine (DBs), was eine unbegrenzte Anzahl ermöglicht. Sie unterstützen 16-, 32- oder 64-Bit-Ganzzahlen. S5-Zähler sind auf 256 globale Nummern (C0-C255) begrenzt und zählen nur bis 999.
Wie kann ich den Zähler automatisch bei Null neu starten lassen?
Sie können den Q-Ausgang des Zählers mit seinem eigenen R (Reset)-Eingang verbinden. Sobald der Zielwert erreicht ist, wird der Zähler sofort gelöscht.
Kann ich einen Zähler zur Geschwindigkeitsschätzung verwenden?
Ein Zähler allein misst keine Geschwindigkeit. Sie müssen Impulse über eine feste Dauer zählen (Zeitfenster verwaltet von einem Timer) und dann berechnen: Geschwindigkeit = Impulse / Zeit.
Verlieren Zähler ihren Wert, wenn die SPS stoppt?
Wie bei Timern wird der aktuelle Wert (CV) im Instanz-DB gespeichert. Wenn der DB als 'remanent' konfiguriert ist, behält der Zähler seinen Wert nach einem Neustart.