Schrittmotorsteuerung
Der Baustein kontrolliert die Ansteuerung eines Schrittmotortreibers über eine Schritt/Richtungs-Schnittstelle. Der Schrittmotortreiber erzeugt damit die benötigten Stromverläufe für einen angeschlossenen Schrittmotor, damit dieser die gewünschte Anzahl an Schritten ausführt.
Beispiel: Versuchsaufbau mit STG-570, STG-700 und Schrittmotor
In diesen Videotutorials sehen Sie, wie Sie den Schrittmotor-Funktionsbaustein ganz einfach in Ihr Projekt einfügen.
Hier geht's zum gesamten Videotutorial "Versuchsaufbau mit STG-570, STG-700 und Schrittmotor".
Wie im Bild zu sehen ist, werden neben Schritt und Richtung („Step“, „Dir“) noch 2 Steuersignale für den Schrittmodus („Mode“) und die Freischaltung des Treibers („Enable“) verwendet.
Die Grundarbeitsweise ist die folgende:
Am Eingang „wPos“ wird der Sollwert für die Position (Anzahl der Schritte) vorgebeben. Am Ausgang „cPos“ wird stets die aktuelle Position zurückgeben. Der Ausgang „Ready“ signalisiert, ob Sollwert und aktuelle Position übereinstimmen.
Wie viele Schritte pro Sekunde gemacht werden sollen, wird über den Eingang „StepRate“ eingestellt.
Wird nun der Eingang „Enable“ auf HIGH gesetzt, so wird der Motortreiber aktiviert. Anschließend wird ein Timer gestartet, der mit der eingestellten Geschwindigkeit Interrupts erzeugt. So lange „wPos“ und „cPos“ ungleich sind, wird In der Interruptserviceroutine bei jedem Aufruf ein Schritt erzeugt und die aktuelle Position aktualisiert. – Die Abarbeitung erfolgt also grundsätzlich unabhängig von der Programmzykluszeit.
Ist die Sollposition größer als die Istposition, dann erfolgt die Drehung im Uhrzeigersinn und umgekehrt gegen den Uhrzeigersinn. Ist der Motor „verdreht“ angeschlossen so kann die Drehrichtung umgekehrt werden, indem „DirInver“ auf HIGH gesetzt wird.
Alle Eingänge können während des Betriebs geändert werden. Änderungen werden sofort beim nächsten Bausteinaufruf übernommen.
So kann der Motor z.B. eine Position halten, indem „StepRate“ auf 0 gesetzt wird und „Enable“ weiter auf HIGH gelassen wird. Die maximal erreichbare Schrittgeschwindigkeit hängt vom Motor und den Eigenschaften der Stromversorgung ab. Wird der Motortreiber mit einer zu großen Schrittgeschwindigkeit angesteuert, so kann es sein, dass der Motor Schritte „verliert“ bzw. sich auch gar nicht mehr dreht.
Wird ein Referenzschalter verwendet, so kann dieser benutzt werden, um die Istposition auf 0 zu setzen, indem an „PosReset“ ein HIGH angelegt wird.
Parameter
Über den Parameterdialog kann die Schrittweite pro Schritt eingestellt werden:
- Vollschritt
- Halbschritt
- 1/4 Schritt
- 1/8 Schritt
Das größte Haltemoment besitzt ein Schrittmotor, wenn er mit Vollschritten angesteuert wird. Im Gegensatz dazu nimmt die Laufruhe mit kleineren Schrittweiten (Microstepping) zu.
Signale
Name | I/O | Typ(en) | Funktion |
---|---|---|---|
wPos | I | LONG | Sollwert für Schrittposition |
StepRate | I | WORD | Schrittgeschwindigkeit (0..2500) Einheit: Schritte / Sekunde |
DirInver | I | BIT | Drehrichtungsumkehr 0 .. Drehung im Uhrzeigersinn 1 .. Drehung gegen Uhrzeigersinn |
PosReset | I | BIT | Rücksetzen der aktuellen Position 0 .. Nichts zu tun 1 .. Aktuelle Position wird auf 0 gesetzt |
Enable | I | BIT | Aktivierung der Ansteuerung 0 .. Strom für Motor aus 1 .. Motor ansteuern |
cPos | O | LONG | Aktuelle Schrittposition |
Ready | O | BIT | Rückmeldung Ziel erreicht 0 .. Soll- u. Istwert ungleich 1 .. Soll- u. Istwert sind identisch |