kk logo

In vielen SPS-Programmen benötigt man Zählerfunktionen um in Produktionsschritten Mengen zu erfassen. Wie hoch die Produktionszahl ist, wie oft ein Zylinder bewegt wurde oder wie lange es noch dauert bis ein Lager leer ist. Für diesen Einsatz reichen die einfachen Zählfunktionen der SPS aus. Sollen dagegen Drehzahlen von Motoren, Bewegungen oder Sollwerte aus Encodern (auch Drehgeber genannt) ausgewertet werden braucht es schnelle Zähler um Frequenzen bis 250 kHz. auszuwerten. 

Um die Funktion der schnellen Impulszählung nutzen zu können, muss dies im Hardware-Setup aktiviert und eingestellt werden.

1 ACE SPS Tutorial schnelle Zählereingänge

In VBuilder stehen zwei Arten von schnellen Zählern zur Auswahl, die Impulszähler und die Quadraturzähler, insgesamt stehen 3 schnelle Zähler zur Verfügung. 

2 ACE SPS Tutorial schnelle Zählereingänge

Für einen Impulszähler wird ein Eingang benötigt. Für einen Quadraturzähler werden 2 Eingänge benötigt, da beim Quadraturzähler die Eingänge um 90 Grad versetzt ausgewertet werden.3 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Zähler sind Hintergrundaufgaben

Die Zähler arbeiten im Hintergrund und aktualisieren sich selbst, vor der Ausführung jedes Programmlogikdurchgangs, basierend auf dem Zustand des ausgewählten Bits zu diesem Zeitpunkt. Nachdem eine Motion In Funktion programmiert ist, muss diese nicht durch eine andere Funktion ausgeführt werden. 

 Der Zähler muss nur einmal nach dem Start "initialisiert" werden. 

4 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Eine erneute Abfrage wie bei Eingängen ist nicht nötig.

 5 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Ist keine schneller Zähler in der Hardware konfiguriert, erscheint diese Meldung.

6 ACE SPS Tutorial schnelle Zählereingänge

Ist einer oder mehrere schnelle Zähler konfiguriert erscheint nach Auswahl der Motion Funktion diese Fenster.

Für den Impulszähler:
Bei den Impulszählern wird jeder Flankenwechsel von 0 nach 1 (rise) oder von 1 nach 0 (falls) gezählt. Bei den Motion In Funktionen kann dieser Wechsel mit einer einer sehr hohen Frequenz stattfinden. (siehe unten) Der Impulszähler hat drei Funktionen:

  • Hochzählen +1
  • Runterzählen -1
  • Stopp

7 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Hoch- und Runterzählen mit dem Impulszähler 

Für das hochzählen benötigt es keine weitere Funktion, die Funktion "counts up" muss nur einmal im Programm eingefügt werden. Findet ein Flankenwechsel am ausgewählten Eingang statt, wird die ausgewählte Variable hochgezählt. Soll runtergezählt werden, muss die Funktion "counts down" über eine Flanke aktiviert werden. Die Funktion "counts up" muss dabei nicht über eine Flanke deaktiviert werden. Findet nun ein Flankenwechsel statt, wird die Variable heruntergezählt. 

8 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Soll der Zähler auf 0 oder eine andere Zahl gesetzt werden, kann die Copy Funktion verwendet werden. Hier setze ich den Zähler auf 0. 

9 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Quadraturzähler 

Der der Quadraturzähler zählt nicht einfach nur hoch oder runter, über die beiden Eingänge wird auch erkannt in welche Richtung gezählt werden muss.

  • Motorsteuerung / Bewegungssteuerung 
    • Über einen Quadraturzähler kann ein Motor von der absoluten oder relativen Position 0 auf zum Beispiel + 2345 Schritte und dann zurück auf -354 Schritte gefahren werden. 
  • Inkremental Geber 
    • Über einen Inkrementalgeber können auch Bewegungen erfasst werden. Es können aber auch Sollwerte wie beim Poti eingegeben werden, nur dass es hier keine Endposition gibt. Das heißt es können sehr genaue Sollwerte eingegeben werden, wie zum Beispiel 12,4257. Über ein schnelles und langsames drehen kann der Wert schneller oder langsamer geändert werden. 

 Beim Quadraturzähler muss in der Auswahl nur eine I32 Variable eingetragen werden, alles andere wird von der Software übernommen.  10 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Ist ein Inkremental Geber mit zwei Anschlüssen (A&B) an die SPS angeschlossen dann wird jetzt automatisch vorwärts und rückwärts gezählt und das Ergebnis in der Variablen gespeichert. Im Beispiel wird die Variable Counter auf 0 gesetzt wenn der Wert größer als 400 oder kleiner als -400 ist. Der Wert 800 zwischen +400 und -400 ist also in Ordnung. Wird der Wert über oder unterschritten wird er auf 0 gesetzt. 

 11 ACE SPS Tutorial schnelle Zählereingänge

 Anschluss eines Drehgebers oder Inkrementalgebers

Dank des großen Spannungsbereich der ACE SPS können verschiedene Drehgeber angeschlossen werden. So kann ein KY-040 der für einen Arduino gedacht ist und mit mit 5 Volt Spannung versorgt, genauso angeschlossen werden, wie ein 600 P/R der für Industrielle Anwendungen verwendet wird und mit 24 Volt versorgt wird.

Anschluss eines WayinTop KY-040 an die ACE SPS

  • CLK, Anschluss A des Gebers
  • DT, Anschluss B des Gebers
  • SW, (switch), Taster, wird beim Drücken auf den Geber geschlossen 

12 ACE SPS Tutorial schnelle Zählereingänge

Der KY-040 ist rastend, das bedeutet bei jedem drehen bleibt der KY-040 nicht irgendwo stehen sondern rastet ein. Zwischen diesem rasten liegen aber 4 Schritte. Wird der KY-040 mit der Hand bedient wird hat man ein tolles haptisches Feedback aber es wird jedes mal +4 gezählt. Soll ein Sollwert eingestellt oder ein Motor auf eine Position gefahren werden ist das natürlich unpraktisch. Soll das haptische Feedback auch zum zählen "passen" +1, dann muss der Quadratur Zähler durch 4 geteilt werden. 

Der Taster des KY-040 wird über eine "on oder off" Funktion abgefragt. Hier verwende ich den Taster zum resetten bzw. auf 0 setzen der Variablen. 

15 sps inkrementalgeber drehzahlsteller schnelle zähler

 

Anschluss eines WISAMIC 600P/R an die ACE SPS 

 13 ACE SPS Tutorial schnelle Zählereingänge

Stopp Funktion (stop counter)

Die Funktion (stop counter), stoppt den Zähler (counter). Wurde der Zähler gestoppt und es soll weitergezählt werden, muss die Funktion durch eine Flanke erneut aktiviert werden. Besser wäre es also von einer Pause zu sprechen und nicht von einem Stopp.   

14 SPS Tutorial Zählereingänge Impulszähler Quadraturzähler

Hinweis aus dem Handbuch von VBuilder zur "Zählerfrequenz der Hardware" 

Die Hochgeschwindigkeits-Pulszähler in jeder Einheit sind für den typischen Betrieb bis zu 100 kHz spezifiziert. In Wirklichkeit werden die allgemeinen Hochgeschwindigkeits-Pulseingänge mit bis zu 250 kHz betrieben. Quadratureingänge arbeiten mit bis zu 200 kHz. Der allgemeine Hochgeschwindigkeits-Pulszähler verbraucht ca. 1,6% der gesamten Prozessorzeit (für die jeweilige SPS-Einheit, in der er sich befindet) für jede 10KHz-Pulsrate, während der Quadratureingang ca. 2,8% pro 10KHz verbraucht. Wenn Sie die Pulsfrequenz erhöhen, steigt die CPU-Auslastung proportional an. Niedrigere Pulsfrequenzen verbrauchen proportional weniger Zeit. Ob und an welcher Stelle das Problem auftreten könnte, ist anwendungsabhängig. Bis zu 100 kHz ist es bei den meisten Anwendungen schwer vorstellbar, ein Problem zu lösen.

King of my heart

Let the King of my heart
Be the mountain where I run
The fountain I drink from
Oh, He is my song

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee