S5→S7 Zähler-Formate: BCD vs. INT — Konvertierungsreferenz
Referenz zum Verständnis und zur Konvertierung zwischen S5/S7-Legacy-Zähler-BCD-Format und IEC-Zähler-INT-Format. BCD-Struktur, Konvertierungsbefehle (BTI, ITB, BTD, DTB) und Migrationsfallen.
S5→S7 Zähler-Formate: BCD vs. INT — Konvertierungsreferenz
S5- und S7-Legacy-Zähler speichern ihre Werte im BCD-Format (Binary-Coded Decimal). IEC-Zähler (CTU, CTD, CTUD) speichern Werte als INT. Die Verwechslung dieser Formate ist einer der häufigsten Migrationsfehler — das Programm kompiliert fehlerfrei, liefert aber für Zählwerte über 9 falsche Ergebnisse.
Wie S5/S7-Legacy-Zähler Werte speichern
Beim Laden eines Zählwerts in AWL (L Z n) legt die CPU den Wert in zwei Formaten im Akkumulator 1 ab:
In KOP/FUP haben Zähler zwei Ausgänge:
- CV — Zählwert als binärer Integer (hexadezimale Anzeige)
- CV_BCD — Zählwert im BCD-Format
BCD-Format-Struktur (16-Bit-Zählwort)
Bit: 15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
0 0 0 0 | Hunderter | Zehner | Einer
| (BCD) | (BCD) | (BCD)
Bereich: 0 bis 999 (drei BCD-Ziffern, je 0–9)
Die Falle: Für Werte 0–9 sind BCD und binär identisch. Ab 10 unterscheiden sie sich:
| Zählwert | BCD (hex) | Binär (hex) | Binär (dezimal) |
|---|---|---|---|
| 5 | 0x0005 | 0x0005 | 5 |
| 10 | 0x0010 | 0x000A | 10 |
| 99 | 0x0099 | 0x0063 | 99 |
| 100 | 0x0100 | 0x0064 | 100 |
| 999 | 0x0999 | 0x03E7 | 999 |
Wenn Sie einen BCD-Zählwert laden und ohne Konvertierung Integer-Arithmetik durchführen, ist das Ergebnis für Werte ≥ 10 falsch. BCD 0x0010 ist nicht dezimal 16 — es repräsentiert den Dezimalwert 10.
Konvertierungsbefehle (AWL)
BCD → Integer
| Befehl | Von → Nach | Bereich | Beschreibung |
|---|---|---|---|
BTI | BCD Wort → INT | -999 bis +999 | 3-stelliges BCD in AKKU 1 → 16-Bit-Integer |
BTD | BCD DWort → DINT | -9999999 bis +9999999 | 7-stelliges BCD → 32-Bit-Integer |
Beispiel:
L Z 1 // Zähler 1 laden (BCD im AKKU 1)
BTI // BCD nach INT konvertieren
T MW 20 // Als Integer speichern — jetzt sicher für Arithmetik
Integer → BCD
| Befehl | Von → Nach | Bereich |
|---|---|---|
ITB | INT → BCD Wort | -999 bis +999 |
DTB | DINT → BCD DWort | -9999999 bis +9999999 |
Überlauf: Überschreitet der Wert den BCD-Bereich (>999 für BTI/ITB), werden OV und OS gesetzt.
SCL-Konvertierungsfunktionen
// BCD Wort nach INT
intWert := BCD_TO_INT(bcdWort);
// INT nach BCD Wort
bcdWort := INT_TO_BCD(intWert);
IEC-Zähler: Kein BCD — Immer INT
IEC-Zähler (CTU, CTD, CTUD) auf S7-1200/1500 speichern den Zählwert als INT (oder DINT auf S7-1500). Keine BCD-Darstellung. Der CV-Ausgang ist ein reiner Integer.
| Zählertyp | CV-Datentyp | Bereich |
|---|---|---|
| S5 Legacy (Z n) | BCD (3-stellig) | 0–999 |
| S7 Legacy (S_CU, S_CD) | BCD + binär | 0–999 |
| IEC (CTU, CTD, CTUD) | INT | -32768 bis +32767 |
| IEC auf S7-1500 | DINT möglich | ±2.147.483.647 |
Migrations-Checkliste: Zählerformat
- BTI/ITB-Befehle entfernen — IEC-Zähler geben INT direkt aus
- Vergleichslogik anpassen — S5
U Z ntestet CV > 0; IEC CTU.Q testet CV ≥ PV - Arithmetik prüfen — wenn das alte Programm ohne BTI rechnete, war es für Werte ≥ 10 möglicherweise still falsch
- HMI/SCADA-Schnittstellen aktualisieren — Datentyp von BCD auf INT ändern
Häufig gestellte Fragen
Warum zeigt mein Zähler nur über 9 falsche Werte?
Wahrscheinlich Integer-Arithmetik auf BCD-Wert ohne Konvertierung. BCD und binär sind für 0–9 identisch. BTI-Befehl nach dem Laden des Zählers einfügen.
Kann ich Legacy-Zähler (S_CU, S_CD) auf S7-1500 verwenden?
Ja, im Emulationsmodus. Siemens empfiehlt IEC-Zähler (CTU, CTD, CTUD) für jede Neuentwicklung.
Zählercode automatisch konvertieren
PLCcheck Pro erkennt Legacy-Zähler-Zugriffsmuster, identifiziert fehlende BCD-Konvertierungen und erzeugt korrekte IEC-Zähler-Äquivalente.
Code zur Zähleranalyse hochladen →
Teil der Adress-Mapping-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-Absolutadressierung vs. S7-Symboladressierung
Warum S5 Absolutadressen verwendet und S7 symbolische Namen bevorzugt. Migrationsstrategie für die Umstellung.
8 Min. Lesezeit
migration-guideS5-Sonderbausteine (OB, SB) in S7 umsetzen
Wie S5-Organisationsbausteine (OB) und Schrittbausteine (SB) nach S7 migriert werden. OB-Nummern-Zuordnung, Anlauf-OBs, Interrupt-OBs, SB-Konvertierungsstrategien.
12 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.