SCL-Zähler-Funktionen: CTU, CTD, CTUD — Komplette Referenz
Komplette Referenz für IEC-Zähler-Funktionsbausteine in SCL: CTU (vorwärts), CTD (rückwärts), CTUD (bidirektional). Syntax, Parameter, Beispiele und S5-ZV/ZR-Migrationhinweise.
SCL-Zähler-Funktionen: CTU, CTD, CTUD — Komplette Referenz
IEC 61131-3 definiert drei Zähler-Funktionsbausteine: CTU (vorwärts zählen), CTD (rückwärts zählen) und CTUD (bidirektional). In Siemens SCL (TIA Portal) ersetzen diese die Legacy-S5/S7-Zählerfunktionen (ZV, ZR, S_CU, S_CD) mit einer saubereren, portableren Schnittstelle.
CTU — Vorwärtszähler
CTU inkrementiert den Zählwert bei jeder steigenden Flanke am CU-Eingang. Wenn der aktuelle Wert (CV) den Vorgabewert (PV) erreicht oder überschreitet, wird der Ausgang Q TRUE.
Parameter:
| Parameter | Richtung | Typ | Beschreibung |
|---|---|---|---|
| CU | Eingang | BOOL | Vorwärts zählen — inkrementiert CV bei steigender Flanke |
| R | Eingang | BOOL | Reset — setzt CV auf 0 |
| PV | Eingang | INT | Vorgabewert — Q wird TRUE wenn CV ≥ PV |
| Q | Ausgang | BOOL | Fertig — TRUE wenn CV ≥ PV |
| CV | Ausgang | INT | Aktueller Zählwert |
SCL-Beispiel:
VAR
meinZaehler : CTU;
END_VAR
meinZaehler(CU := "Zaehlsensor",
R := "Reset_Taste",
PV := 100);
"Charge_Fertig" := meinZaehler.Q; // TRUE wenn 100 Teile gezählt
"Teile_Zaehler" := meinZaehler.CV; // Aktueller Zählwert
Verhalten:
- Jede steigende Flanke an CU inkrementiert CV um 1
- R = TRUE setzt CV auf 0 und Q auf FALSE
- Q wird TRUE wenn CV ≥ PV und bleibt TRUE bis Reset
- CV zählt über PV hinaus weiter (kein automatischer Stopp)
- CV-Bereich: 0 bis 32767 (INT). Für größere Bereiche: DINT (nur S7-1500)
CTD — Rückwärtszähler
CTD dekrementiert den Zählwert bei jeder steigenden Flanke am CD-Eingang. Wenn CV 0 erreicht, wird Q TRUE.
Parameter:
| Parameter | Richtung | Typ | Beschreibung |
|---|---|---|---|
| CD | Eingang | BOOL | Rückwärts — dekrementiert CV bei steigender Flanke |
| LD | Eingang | BOOL | Laden — setzt CV auf PV |
| PV | Eingang | INT | Vorgabewert — wird in CV geladen wenn LD = TRUE |
| Q | Ausgang | BOOL | Fertig — TRUE wenn CV ≤ 0 |
| CV | Ausgang | INT | Aktueller Zählwert |
SCL-Beispiel:
VAR
meinRueckwaerts : CTD;
END_VAR
meinRueckwaerts(CD := "Teil_Ausgeworfen",
LD := "Charge_Laden",
PV := 50);
"Charge_Leer" := meinRueckwaerts.Q; // TRUE wenn alle 50 Teile ausgeworfen
"Verbleibend" := meinRueckwaerts.CV; // Verbleibende Anzahl
CTUD — Bidirektionaler Zähler
Kombiniert beide Zählrichtungen. Separate Eingänge für Auf/Ab, separate Fertig-Ausgänge.
Parameter:
| Parameter | Richtung | Typ | Beschreibung |
|---|---|---|---|
| CU | Eingang | BOOL | Vorwärts — inkrementiert CV |
| CD | Eingang | BOOL | Rückwärts — dekrementiert CV |
| R | Eingang | BOOL | Reset — setzt CV auf 0 |
| LD | Eingang | BOOL | Laden — setzt CV auf PV |
| PV | Eingang | INT | Vorgabewert |
| QU | Ausgang | BOOL | Aufwärts fertig — TRUE wenn CV ≥ PV |
| QD | Ausgang | BOOL | Abwärts fertig — TRUE wenn CV ≤ 0 |
| CV | Ausgang | INT | Aktueller Zählwert |
SCL-Beispiel:
VAR
meinBiZaehler : CTUD;
END_VAR
meinBiZaehler(CU := "Teil_Rein",
CD := "Teil_Raus",
R := "Reset",
LD := FALSE,
PV := 200);
"Puffer_Voll" := meinBiZaehler.QU; // TRUE wenn 200 Teile im Puffer
"Puffer_Leer" := meinBiZaehler.QD; // TRUE wenn Puffer leer
"Puffer_Stand" := meinBiZaehler.CV; // Aktueller Pufferstand
Migration von S5 ZV/ZR zu IEC-Zählern
| S5 Legacy | IEC-Äquivalent | Kritischer Unterschied |
|---|---|---|
| ZV (vorwärts) | CTU | S5: BCD-Ausgabe, Q = CV > 0. IEC: INT-Ausgabe, Q = CV ≥ PV |
| ZR (rückwärts) | CTD | S5: Q = CV > 0. IEC: Q = CV ≤ 0 |
Kritischer Unterschied: In S5 testet U Z n ob der Zähler größer Null ist. In IEC CTU testet Q ob CV den Vorgabewert erreicht hat. Das sind grundlegend verschiedene Bedingungen. Bei der Migration muss die Logik entsprechend angepasst werden.
Verfügbarkeit nach Plattform
| Zähler | S7-300/400 | S7-1200 | S7-1500 |
|---|---|---|---|
| CTU | ✅ | ✅ | ✅ |
| CTD | ✅ | ✅ | ✅ |
| CTUD | ✅ | ✅ | ✅ |
| DINT-Zähler | ❌ | ❌ | ✅ |
Zählerlogik automatisch konvertieren
PLCcheck Pro analysiert Ihren S5/S7-Zählercode und erzeugt IEC-konforme SCL-Äquivalente mit korrekter Vorgabewert-Zuordnung.
Code zur Zähler-Konvertierung hochladen → | AWL nach SCL Leitfaden →
Teil der SCL-Referenz. Gepflegt von PLCcheck.ai. Keine Verbindung zu Siemens AG.
Verwandte Artikel
S5-Zähler (Z/ZV/ZR) nach S7 migrieren
Wie S5-Zählerprogramme nach S7 migriert werden. ZV (vorwärts), ZR (rückwärts), BCD-Format, S7-Äquivalente (S_CU, S_CD, CTU, CTD, CTUD) und typische Fallstricke.
10 Min. Lesezeit
migration-guideS5 auf S7 migrieren: Der komplette Leitfaden (2026)
Schritt-für-Schritt-Anleitung für die Migration von Siemens S5 SPS-Programmen auf S7-1500. AWL→SCL-Konvertierung, Timer-Umrechnung, Adressumsetzung und Hardware-Auswahl.
18 Min. Lesezeit
migration-guideS5-Absolutadressierung vs. S7-Symboladressierung
Warum S5 Absolutadressen verwendet und S7 symbolische Namen bevorzugt. Migrationsstrategie für die Umstellung.
8 Min. Lesezeit
SPS-Code mit KI analysieren
PLCcheck Pro erklärt, dokumentiert, optimiert und migriert SPS-Code — automatisch.
PLCcheck Pro testen →Nicht verbunden mit Siemens AG. S5, S7, STEP 5, STEP 7 und TIA Portal sind Marken der Siemens AG.