„Low Cost“-Schrittmotor-Achsen mit digitaler Ansteuerung (24V / 2A)
Die „Low Cost“-Schrittmotor-Achse wird in der Basisversion ohne physikalischen Encoder betrieben (daher Simulations-Encoder). Dies bedeutet, dass es keine wirkliche physikalische Rückkopplung zwischen Soll- und Istwerten gibt, und somit die Achse nicht geregelt, sondern nur gesteuert betrieben wird. Hierbei wird davon ausgegangen, dass im Antrieb kein Schlupf auftritt und dass die Achse exakt dem vorgegeben Schrittmuster (Sollwertprofil) folgen kann. Trotz dieser aus Kostengründen gegebenen Einschränkung, kann die Schrittmotor-Achse physikalisch referenziert werden, da der Simulationsencoder als Inkremental-Encoder implementiert ist, und praktisch alle Eigenschaften unterstützt.
Konfiguration der „Low Cost”-Schrittmotor-Achse
Achs-Typ: Low Cost Schrittmotorachse (dig. E/A)
Encoder-Typ: Simulations-Encoder
Controller-Typ: Schrittmotor-Regler
Drive-Typ: Schrittmotor-Antrieb
Referenzieren
Wie üblich muss das digitale Referenziernockensignal mittels der SPS in das Achsinterface zur NC (PlcToNc-Achsstruktur) gespiegelt werden. Hierbei gilt der übliche Ablauf für das Referenzieren einer Achse, wobei eben auf die Hardwareeigenschaft „Latchen einer Position“, veranlasst durch einen Sync-Impuls, verzichtet werden muss. Stattdessen dient beim Herunterfahren vom Referenziernocken die fallende Flanke als örtliches Ereignis, um eine Referenzposition zu ermitteln. Die Genauigkeit des Referenziervorgangs kann durch Reduzierung der Geschwindigkeit beim Herunterfahren vom Nocken beliebig erhöht werden (maximal mögliche Genauigkeit beträgt ein Motorschritt).
Hinweise zur Inbetriebnahme
An dieser Stelle sei auf einige technische Beschränkungen eines Schrittmotors hingewiesen, wobei alle empfohlenen Tests unter Last gemacht werden müssen.
- Die maximal erlaubte Grenzfrequenz [kHz] des Schrittmotors in Bewegung darf nicht überschritten werden, da man sonst den linearen Bereich der Ansteuerung verlässt und in die Antriebsbegrenzung gerät.
- Die maximale Start- und Stoppfrequenz [kHz] beim Starten und Stoppen der Achse darf nicht überschritten werden, da sonst der Schrittmotor in dieser Anfangs- und Endphase der Positionierung „Schritte verlieren“ kann.
- Die maximale Beschleunigung und Verzögerung [kHz/s] darf in der Start- und Stoppphase der Bewegung nicht überschritten werden, da sonst auch hier „Schritte verloren“ gehen können.
- Wenn der Schrittmotor überfordert ist, dann reißt der Kontakt zum antreibenden elektromagnetischen Feld ab und der Motor bleibt (chaotisch zitternd) stehen. Zur Inbetriebnahme sollte der Motor daher in einer ersten Testserie mit schwachen Rampen (niedrige Beschleunigung und Verzögerung) langsam monoton steigend auf die gewünschte Sollgeschwindigkeit (1. Testparameter) gefahren werden, um sicher zu stellen, dass der Motor auch folgen kann. In einer zweiten Testserie sollten (bei fester Sollgeschwindigkeit) die Rampen langsam monoton steigend auf die gewünschte Beschleunigung/Verzögerung (2. Testparameter) gefahren werden.
IO-Konfiguration des Drives
Die Verbindung (Mapping) der logischen NC-Achsausgänge (Drive-Outputstruktur, nCtrl-Byte bzw. nExtCtrl-Byte) mit den physikalischen digitalen IO-Ausgängen (24V / 2A) muss im TwinCAT System Manager noch manuell durchgeführt werden. Hierbei werden einzelne Bits aus dem nCtrl-Byte bzw. nExtCtrl-Byte mit den jeweiligen digitalen Ausgängen verknüpft. Um ein einzelnes Bit aus einem Byte (8 Bit) auszuwählen, muss ein Byteoffset im Wertebereich von 0 bis 7 eingetragen werden. Möchte man beispielsweise das zweite Bit aus einem Byte adressieren, so muss als Byteoffset der Wert 1 eingetragen werden.
Konfigurationsparameter
| Daten-typ | Byte | Bit | Def.-Bereich | Variablenname | Beschreibung |
---|---|---|---|---|---|---|
1 | INT32 | 0 – 3 | __ | __ | nOutData1 | Drive-Output Ausgabedaten 1 (NC→IO) |
2 | INT32 | 4 – 7 | __ | __ | nOutData2 | Drive-Output Ausgabedaten 2 (NC→IO) |
3 | UINT8 | 8 | __ | __ | nControlByte | Control-Byte |
3.0 | BOOL | 8 | 0 | 0 / 1 | bPhaseA | Phase A |
3.1 | BOOL | 8 | 1 | 0 / 1 | bPhaseAInv | Phase A Invers |
3.2 | BOOL | 8 | 2 | 0 / 1 | bPhaseB | Phase B |
3.3 | BOOL | 8 | 3 | 0 / 1 | bPhaseBInv | Phase B Invers |
3.4 | BOOL | 8 | 4 | 0 / 1 | __ | RESERVE |
3.5 | BOOL | 8 | 5 | 0 / 1 | __ | RESERVE |
3.6 | BOOL | 8 | 6 | 0 / 1 | bBreakInv | Inverses Bremsbit: (0 = AKTIV, 1 = PASSIV) |
3.7 | BOOL | 8 | 7 | 0 / 1 | bBreak | Bremsbit (0 = PASSIV, 1 = AKTIV) |
4 | UINT8 | 9 | __ | __ | nExtControlByte | Extended Control Byte |
4.0 | BOOL | 9 | 0 | 0 / 1 | bFrequency | Frequenz (Rechtecksignal) |
4.1 | BOOL | 9 | 1 | 0 / 1 | bDirectionPlus | Richtung Positiv |
4.2 | BOOL | 9 | 2 | 0 / 1 | __ | RESERVE |
4.3 | BOOL | 9 | 3 | 0 / 1 | __ | RESERVE |
4.4 | BOOL | 9 | 4 | 0 / 1 | __ | RESERVE |
4.5 | BOOL | 9 | 5 | 0 / 1 | __ | RESERVE |
4.6 | BOOL | 9 | 6 | 0 / 1 | __ | RESERVE |
4.7 | BOOL | 9 | 7 | 0 / 1 | __ | RESERVE |
5 | UINT16 | 10 -11 | __ | __ | nReserved | Reserve-Bytes |
Schrittmotorparameter
Motorparameter
Parameter | Beschreibung |
---|---|
Schrittmotor Betriebsmodus | Der Schrittmotor kann durch die Art der Ansteuerung in verschiedenen Betriebsmodi betrieben werden. Somit lassen sich die Periode einstellen, mit der verschiedene Schrittmusterkombinationen ausgegeben werden. Hierdurch kann Einfluss auf die Schrittweite (Vollschritt oder Halbschritt) und auf das Motordrehmoment genommen werden. Die Auswahl der Betriebsarten kann der nachfolgenden „Schrittmotor-Betriebsmodus“-Tabelle entnommen werden. |
Weglänge pro Schritt dSStep | Physikalische Skalierung eines Motorschrittes (Schrittwechsel) entsprechend den mechanischen Gegebenheiten wie Getriebe, etc. Einheit: [mm/INC] |
Mindestgeschwindigkeit für Geschwindigkeitsprofil Vmin | Für die Geschwindigkeitsprofilgenerierung wird, soweit die geforderte Sollgeschwindigkeit auf dem Verfahrweg erreicht werden kann, diese Mindestgeschwindigkeit Vmin als Start- und Endgeschwindigkeit des errechneten Geschwindigkeitsprofils genommen. Natürlich kann aufgrund der Zeitdiskretisierung (Zykluszeit) nicht jedes Geschwindigkeitsniveau erreicht werden, sondern es ergibt sich eine bestimmte Auswahl von diskreten Geschwindigkeitsstufen (proportional zu 1/(n*dT) mit n=1,2,3... und dT Achszykluszeit in Sekunden). Hierbei wird mittels Rundung das nächste mögliche Geschwindigkeitsniveau genommen. Einheit: [mm/s] |
Anzahl Schritte pro Geschwindigkeitsstufe >Nlevel | Es wird entsprechend der Randbedingungen (Mindestgeschwindigkeit, Zielgeschwindigkeit, Verfahrweg) ein Geschwindigkeitsprofil mit diskreten Geschwindigkeitsstufen (proportional zur Schrittfrequenz) errechnet. Das Verweilen auf einer Geschwindigkeitsstufe kann durch diesen Parameter im Bereich von 0 bis 100 bezogen auf die Motorschritte eingestellt werden. Mit diesem Parameter Nlevel kann also eine Skalierung (Streckung bzw. Stauchung) der Geschwindigkeitsrampe vorgenommen werden. Für den Grenzfall von Nlevel = 0 wird kein verramptes Geschwindigkeitsprofil erzeugt, sondern für den gesamten Verfahrweg die geforderten Sollgeschwindigkeit konstant beibehalten. Einheit: 1 |
Schrittmotor-Betriebsmodi
Motormodi
Schrittmotor Modus | Beschreibung |
---|---|
1 PHASE | 1 phasige Erregung (Schrittmusterperiodizität: Modulo 4) (STANDARD) |
2 PHASE | 2 phasige Erregung (Schrittmusterperiodizität: Modulo 4) |
12 PHASE | 1-2 phasige Erregung (Schrittmusterperiodizität: Modulo 8) |
DRIVER | Ansteuerung per Leistungsteil (Vorgabe von Richtung und Frequenz) |
Formel zur Berechnung der diskreten Fahrfrequenzen
Formel zur Berechnung der diskreten Geschwindigkeitsstufen
Schrittmotorparameter des Drives
Je nach Typ und Betriebsart des Schrittmotors können im System Manager in dem Drive-Reiter „Schrittmotor“ bis zu 8 Bytemasken für das Drive-Ausgabemuster parametriert werden. Diese Muster werden je nach Betriebsart der Achse beim aktiven Positionieren zyklisch ausgegeben und wiederholen sich periodisch. Im Stillstand der Achse (kein aktives Verfahren) wird das jeweils zuletzt ausgegebene Bitmuster mit der Haltestrommaske als logische UND-Operation verknüpft. Diese Haltestrommaske soll zur Reduzierung des Motorstromes und somit zur Reduzierung der Motortemperatur im Stillstand der Achse dienen.
Beispiel für Geschwindigkeits- und Positionsprofil
In der Darstellung ist ein typisches Geschwindigkeits- und Positionsprofil für eine „Low Cost“-Schrittmotor-Achse über der Zeit [s] dargestellt. Die blaue Kurve stellt die Geschwindigkeit [mm/s] und die grüne Kurve den Positionsverlauf [mm] dar. Die Soll- und Istwerte sind identisch, da kein realer Encoder, sondern ein Simulationsencoder verwendet wird. Interessant sind die diskreten Geschwindigkeitsstufen, deren Höhe sich beginnend von der Startgeschwindigkeit auf die geforderte Sollgeschwindigkeit erhöht und gegen Ende der Zielposition wieder auf das Stoppniveau reduziert wird.