Schrittmotorsteuerung

Funktionsbaustein 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