Zähloperationen in SPS mit Anweisungsliste AWL
In der Programmiersprache AWL werden in Step7 bis zu 256 Zähler unterstützt. Die tatsächlich verfügbare Anzahl der Zähler ist jedoch CPU-abhängig und kann den technischen Daten für die jeweilige CPU entnommen werden.
Die Zähloperationen:
- FR Zählerfreigabe
Die Zählerfreigabe löscht den Flankenmerker, mit dem der adressierte Zähler beim Wechsel des VKE von "0" auf "1" auf Rückwärtszählen oder Vorwärtszählen gesetzt wird. Soll ein Zähler gesetzt werden oder eine normale Zählerfunktion ausgeführt werden, ist eine Freigabe eines Zählers nicht erforderlich. - L Laden des aktuellen Zählwertes als Ganzzahl
Der Zählwert eines adressierten Zählers wird im Format Ganzzahl in den AKKU1 geladen. - LC Laden des aktuellen Zählwertes als BCD-Zahl
Der Zählwert eines adressierten Zählers wird im Format BCD-Zahl in den AKKU1 geladen. - S setzen eines Zähleranfangswertes
Der Zähleranfangswert wird von AKKU1 mit dieser Operation als positive BCD-Zahl im Bereich zwischen 0 und 999 in den adressierten Zähler geladen. - R zurücksetzten des Zählers
Der adressierte Zähler wird auf den Zählwert "0" zurückgesetzt beim Wechsel des Signalzustandes im VKE von "0" auf "1". - ZV zählen Vorwärts
Bei einem Wechsel des Signalzustandes des VKE von "0" auf "1" wird der Zählwert des adressierten Zähler um den Wert 1 erhöht. Es kann maximal bis zu einem Wert von 999 hochgezählt werden. Ein Überlauf wird nicht angezeigt. - ZR zählen Rückwärts
Bei einem Wechsel des Signalzustandes des VKE von "0" auf "1" wird der Zählwert des adressierten Zählers um den Wert 1 verringert. Es kann von maximal 999 bis zu einem Wert von 0 heruntergezählt werden. Ein Überlauf wird nicht angezeigt.
U E 6.0 //Abfrage des Eingangs E 6.0
FR Z 5 //Wenn E 6.0 = "1" wird der Zähler Z5 freigegeben (nur in AWL)
U E 6.0 //Abfrage des Eingangs E 6.0
L C#80 //Wenn E 6.0 = "1" wird der Zähler Z5 auf den Zählwert 80 gesetzt
S Z 5
U E 6.0 //Abfrage des Eingangs E 6.0
R Z 5 //Wenn E 6.0 = "1" wird der Zähler Z5 zurückgesetzt
U E 6.0 //Abfrage des Eingangs E 6.0
ZV Z 5 //Bei jedem Wechsel des Signalzustandes von "0" auf "1"
an E 6.0 erhöht sich der Wert des Zählers Z5 um 1
U E 6.0 //Abfrage des Eingangs E 6.0
ZR Z 5 //Bei jedem Wechsel des Signalzustandes von "0" auf "1"
an E 6.0 verringert sich der Wert des Zählers Z5 um 1
U E 6.0 //Abfrage des Eingangs E 6.0
ZV Z 5 //Bei jedem Wechsel des Signalzustandes von "0" auf "1"
an E 6.0 erhöht sich der Wert des Zählers Z5 um 1
L Z 5
T MW 10 //Der Zählwert von Zähler Z5 wird dual codiert in
Merkerwort 10 geschrieben
U E 6.0 //Abfrage des Eingangs E 6.0
ZV Z 5 //Bei jedem Wechsel des Signalzustandes von "0" auf "1"
an E 6.0 erhöht sich der Wert des Zählers Z5 um 1
LC Z 5
T MW 10 //Der Zählwert von Zähler Z5 wird bcd codiert in
Merkerwort 10 geschrieben