Motion Control

Ohne Motion Controller Schrittmotoren mit der SPS steuern

Seite: 2/2

Anbieter zum Thema

Die Erzeugung der Steuerimpulse

Eine erreichbare Drehzahl von 3000 Umdrehungen pro Minute bedeutet 50 Umdrehungen pro Sekunde; und wenn pro Umdrehung 24 Schritte (á 4 Vollschritte, wie in Bild 3 dargestellt) notwendig sind, dann müssen pro Ausgang 4800 Pulse pro Sekunde erzeugt werden, um diese Geschwindigkeit zu steuern. Ein Ausgang wechselt also etwa alle 100 µs die Polarität; zwischen zwei Wechseln verschiedener Ausgänge liegen ggf. nur 50 µs. Die Zeiten erklären, warum Mikroprozessoren zur Steuerung von Schrittmotoren nur bedingt geeignet sind, sodass oftmals spezialisierte Hardware eingesetzt wird. Bei der Steuerung ZX20T (Bild 5) hingegen lässt sich die Motorsteuerung per Software direkt integrieren.

Die Erzeugung eines kontinuierlich laufenden Timers mit konstanter Frequenz ist in Listing 1 gezeigt. ST-16 ist der für die ZX20T angepasste Dialekt des Strukturierten Textes und verfügt u.a. über die Variablenart VAR_TIMER, die eine Erweiterung des Standards darstellt. In anderen Implementierungen von Strukturiertem Text kann man für Timer z.B. auch Makros oder Funktionsblöcke nutzen.

Die im Beispiel eingestellte Periode beträgt 10 ms, d.h. es wird eine Rechteck-Schwindung mit einer Frequenz von 100 Hz generiert. Benötigt ein Schrittmotor also 24 Schritte pro Umdrehung und 4 Takte pro Schritt, dauert eine Umdrehung also 0,96 s. Derartige Timer lassen sich in ST-16 für die ZX20T bis zur Kapazitätsgrenze des Bausteins in beliebiger Zahl erzeugen.

Um nun die für den Schrittmotor benötigten Impulse an Ausgängen zu erzielen, kann man sich eines in Software implementierten Zählers bedienen, wie er in Listing 2 dargestellt ist.

Damit ist die einfache Version der Schrittmotorsteuerung in der ZX20T bereits vollendet. Diese Basisversion der Schrittmotorsteuerung benötigt ca. 2% der Ressourcen; an die ZX20T können aufgrund der 16 Ausgänge maximal vier Schrittmotoren angeschlossen werden. Der Motor wird nach Übersetzung und Download in die Steuerung ständig mit rd. 60 Umdrehungen pro Minute laufen. Basierend auf diesem Grundmodell kann jetzt eine Applikation entwickelt werden, bei der der Motor vorwärts/rückwärts gesteuert wird, eine bestimmte Anzahl von Schritten vollzieht usw. Nur eine Eigenschaft einer perfekten Steuerung fehlt noch, die nachfolgend erklärt wird.

Beschleunigung und schnelles Fahren des Schrittmotors

Die hier eingestellten 60 Umdrehungen pro Minute sind zwar ein Startwert, mit dem (je nach Lastmoment) direkt aus dem Stand angefahren werden kann, aber typischerweise kann der Schrittmotor um mindestens eine Größenordnung schneller betrieben werden. In der Applikation ist dies am einfachsten möglich, indem der Timerwert (Listing 1: timer_pulse) entsprechend heruntergesetzt wird.

Die Entwicklungssoftware wird genau dies in der nächsten Version zulassen, wobei die Variation der Timerwerte auch eingeschränkt werden kann, um zur Laufzeit unbrauchbare oder unvernünftige Timerwerte und damit Frequenzen wirkungsvoll zu verhindern.

Weiterhin wird es fertige Funktionsblöcke zur Steuerung von Schrittmotoren geben, die Timer und Zähler bereits enthalten. Aufgrund dessen vereinfacht sich die Programmierung für den Anwender, sodass nur noch ein Funktionsblock mit den entsprechenden Parameterwerten wie Drehzahl, Drehrichtung, Anzahl der Schritte usw. aufgerufen werden muss.

Die Steuerung ZX20T ist vernetzbar. Auch in offenen Ethernet-Systemen und mit gemischter Hardware. Die Entwicklung wurde gefördert vom Bundesministerium für Wirtschaft und Technologie aufgrund eines Beschlusses des Deutschen Bundestages.

* Christian Siemers ist Professor für Automatisierungstechnik und Elektronik an der TU Clausthal sowie für Prozessortechnik an der FH Nordhausen.

* Alfons Austerhoff und Marco Zander arbeiten in der Entwicklung bei Zander Aachen und haben maßgeblich an der ZX20 mitgearbeitet.

Artikelfiles und Artikellinks

(ID:43680799)