Zähloperationen in der Programmiersprache Kontaktplan KOP

Zähler in Step7® Kontaktplan KOP
Zähler in Step7® Kontaktplan KOP

Die Zähler in Step7 haben einen eigenen reservierten Speicherbereich in der CPU. In diesem Speicherbereich wird für jeden Zähler ein 16 Bit Wort reseviert. Die Programmiersprache Kontaktplan KOP unterstützt 256 Zähler.

Z_VORW, Z_RUECK und ZAEHLER geben an um welche Zählfunktion es sich handelt. Z_VORW ist ein Vorwärtszähler mit einem Eingang zum Vorwärts- bzw. Aufwärtszählen, Z_RUECK ist ein Rückwärtszähler mit einem Eingang zum Rückwärts- bzw. Abwärtszählen und ZAEHLER ist ein Zähler mit einem Eingang zum Vorwärtszählen und einem Eingang zum Rückwärtszählen.

Die Eingabe eines Zählwertes ist in Step7 mit Wortbreite (16 Bit) definiert mit dem Maximalwert 999 bei Verwendung des 8421-BCD-Codes. Die Bits 12 bis 15 bei der Eingabe des Zählwertes sind nicht von Bedeutung.

Über den Eingang ZW kann man eine Zählfunktion mit einem Zählwert vorbelegen und damit einen definierten Anfangswert bestimmen. Den zu ladenden Zählwert übernimmt die Zählfunktion nur bei einer positiven Flanke am Setzeingang "S". Der Anfangswert eines Zählers muß zuvor in den Akkumulator 1 geladen worden sein. Der Zählwert wird BCD-codiert als Wort mit 16 Bit eingegeben, umfasst aber nur 12 Bit aufgrund des Wertebereiches von 000 bis 999. Ein konstanter Zählwert kann mit L C#000 bis L C#999 oder L W#16#000 bis L W#16#0999 angegeben werden. Der Befehl L steht für Lade in den Akkumulator 1. Auch basiert der Maximalwert der Zählwerteingabe auf der Verwendung des 8421-BCD-Codes in Step7®. Die Zählwerteingabe erfolgt immer als positiver Wert. Im Programmablauf sollte immer zuerst der Zählwert in den Akku geladen werden und dann der Setzbefehl gegeben werden. Ein Zählwert kann auch aus Eingangs-, Ausgangs-, Merker-, Lokaldaten- oder Datenwörtern geladen werden.

Fragt man den Status des Zähloperanden Zx ab, wobei das x für die Nummer des Zählers steht, kann ausgewertet werden, ob der Zähler den Zählwert "0" oder "Nicht Null", also "1", hat. Der Status kann über die binären Operationen (U, O, XOR, NAND, NOR und XN) in Step7® abgefragt werden. Dadurch kann der Status des Zählers in Form eines Bitzustandes (0, 1) für Verknüpfungen genutzt werden. Das Ergebnis einer Statusabfrage eines Zähloperanden liefert den Wert "1", solange der Zählerstand größer als null ist.

Der Setzeingang "S" setzt einen Zähler auf einen Vorgabewert. Der Rücksetzeingang "R" setzt einen Zähler zurück. Solange am Rücksetzeingang R der Signalzustand "1" anliegt, haben Signalzustandsänderungen an den anderen Eingängen keinen Einfluß auf den Zähler.

Eine positive Flanke am Eingang ZV eines Vorwärtszählers läßt den Zähler um "1" aufwärtszählen / inkrementieren. Der maximale Zählumfang reicht von 0 bis 999. Einen Übertrag gibt es nicht. Ist der Wert 999 erreicht zählt der Zähler nicht mehr weiter. Die binäre Abfrage der Zählfunktion führt den Wert "1", solange der Zählerstand von Null verschieden ist. Erhält der Rücksetzeingang R den Signalzustand 1 wird der Zähler zurückgesetzt, d. h. der Zählwert wird auf null gesetzt und die binäre Abfrage des Zähloperanden liefert den Signalzustand "0".

Eine positive Flanke am Eingang ZR eines Rückwärtszähler läßt den Zähler um "1" abwärtszählen. Der Zähler kann dann maximal von 999 an rückwärtszählen / dekrementieren. Ist der Wert 0 erreicht zählt der Zähler nicht mehr weiter, negative Werte können nicht dargestellt werden. Die binäre Abfrage der Zählfunktion führt den Wert "1", solange der Zählerstand von Null verschieden ist. Erhält der Rücksetzeingang R den Signalzustand 1 wird der Zähler zurückgesetzt, d. h. der Zählwert wird auf null gesetzt und die binäre Abfrage des Zähloperanden liefert den Signalzustand "0".

Weitere Zähloperationen in Kontaktplan KOP

Zähloperationen in  Step7® Kontaktplan KOP
Zähloperationen in Step7® Kontaktplan KOP

Setzen eines Zähleranfangswertes

Mit dem Operanden 1 wird die Nummer des Zählers angegeben, der mit einem Wert an Operand 2 voreingestellt werden soll. Der Wert an Operand 2 ist eine positive Zahl zwischen 0 und 999 und wird im 8421-BCD-Code eingegeben. Ein konstanter Zählwert an Operand 2 wird mit dem Befehl C#xxx eingegeben, z.B. C#125. Mit der Operation "Zähleranfangswert setzen" wird ein Zähler gesetzt. Diese Operation wird nur dann ausgeführt wenn das VKE einen Signalzustandwechsel von "0" auf "1" hat. Programmiert werden kann diese Operation nur am rechten Ende einer Verknüpfungskette, aber es können mehrere solcher Operationen gesetzt werden.

Zähloperation ZV vorwärtszählen

Mit der Operation ZV zählt der im Operanden angegebene Zähler bei jeder positiven Flanke im VKE vorwärts. Der Wert des Zähler wird dabei bei jeder Flanke um 1 erhöht. Gezählt werden kann bis maximal 999. Programmiert werden kann diese Operation nur am rechten Ende einer Verknüpfungskette, aber es können mehrere solcher Operationen gesetzt werden.

Zähloperation ZR rückwärtszählen

Mit der Operation ZR zählt der im Operanden angegebene Zähler bei jeder positiven Flanke im VKE rückwärts. Der Wert des Zähler wird dabei bei jeder Flanke um 1 verringert. Gezählt werden kann von maximal 999 an abwärts. Programmiert werden kann diese Operation nur am rechten Ende einer Verknüpfungskette, aber es können mehrere solcher Operationen gesetzt werden.