Hinweise zu MC_PowerStepper
Mit dem Funktionsbaustein MC_PowerStepper werden die Freigaben und der Override für eine Achse gesetzt. Dazu wird intern ein MC_Power Baustein verwendet. Zusätzlich erkennt der MC_PowerStepper die bei Schrittmotoren im Überlastfall auftretenden Stall-Situationen und bietet geeignete Gegenmaßnahmen an. Die Stausbits einer KL2531 oder KL2541 Klemme werden überwacht und die dort signalisierten Fehler an die NC gemeldet.
Schrittmotor und Synchron-Servo: Gemeinsamkeiten und Unterschiede
Beide Motortypen verwenden ein elektromagnetisches und ein permanentmagnetisches Feld, um durch deren Zusammenspiel eine Antriebskraft zu erzeugen. Während jedoch beim Servo eine kostenaufwändige Sensorik eingesetzt wird, um die Ausrichtung der Felder gezielt zu kontrollieren (rotorlageorientierte Bestromung) wird beim Schrittmotor auf diese Orientierung verzichtet. Dadurch ist eine deutliche Kosteneinsparung erzielbar. Allerdings entsteht so die Möglichkeit, dass der Motor durch eine äußere Kraft über den Punkt des maximalen von ihm erzeugten Moments hinaus bewegt wird. Da das elektromagnetisch erzeugte Feld dies nicht berücksichtigt wird er bei weiter steigender Auslenkung jetzt ein absinkendes Rückstellmoment erzeugen. Dies führt dazu, dass ab einer Auslenkung von mehr als einem halben Polspiel das Rückstellmoment im Vorzeichen wechselt und den Motor zum nächsten Pol mit entsprechender Richtung zieht. Je nach jetzt geltenden Bedingungen kann der Motor jetzt in der neuen Orientierung einrasten (der so genannte Schrittverlust ist eingetreten) oder auch hier den gleichen Vorgang wiederholen. Letzteres wird als Stalling bezeichnet und wird vor allem dann auftreten, wenn der Motor mit typischen Frequenzen des aktiven Fahrbetriebs bestromt wird.
Beispiel 1: Ein mit einem Encoder ausgerüsteter Schrittmotor wird mit für Servos üblichen Parametern mit der NC PTP verfahren.
Bei etwa 1.8 Sekunden wird die Achse von einem Hindernis kurzzeitig blockiert. Obwohl die Achse anschließend frei beweglich ist kann sie dem Geschwindigkeitssollwert nicht folgen, sondern steht mit erheblicher Geräuschentwicklung und ohne ein erkennbares Moment zu erzeugen still. Erst nachdem der Profilgenerator sein Fahrziel erreicht hat sinkt die Summe aus Soll- und Korrekturgeschwindigkeit ab. Der Motor setzt sich in diesem Beispiel in unregelmäßiger Weise in Bewegung. Schon ein geringes Lastmoment würde dies jedoch verhindern. Die einzige Lösung würde hier ein MC_Reset und eine angemessene Beruhigungszeit sein. Anschließend müsste die Achse durch die Applikation erneut gestartet werden. Dabei würden im Achsinterface diverse Zustandsbits reagieren. Dies ist in der Applikation entsprechend zu berücksichtigen, da es sonst zu fehlerhaften Reaktionen im Maschinenablauf kommen kann.
Erste Maßnahme: Reglerbegrenzung
Wenn in der oben beschriebenen Situation die Ausgabe des Lagereglers auf einen ausreichend kleinen Wert wie z.B. 2% begrenzt wird ergibt sich das nachfolgende Bild.
Auch hier ist für die restliche Zeit der Profilgenerierung die Sollgeschwindigkeit zu hoch, als dass der Schrittmotor der Sollbewegung angemessen folgen könnte. Nach dem das Ende des Sollprofils erreicht ist wird der Schrittmotor jetzt durch den Lageregler mit einer geringen Arbeitsfrequenz zum Ziel geführt, der er ohne Rampe folgen kann. Dabei erzeugt er ein recht hohes Moment. Allerdings ist der Zeitbedarf für diese Korrekturmaßnahme sehr hoch.
Erkennung und Handhabung von Stall-Situationen unter Verwendung eines Encoders
Um geeignete Gegenmaßnahmen ergreifen zu können ist zunächst ein Erkennen des Problems nötig. Das nachfolgende Bild ergibt sich, wenn ein MC_PowerStepper Baustein verwendet wird. In seiner Parameterstruktur vom Typ ST_PowerStepperStruct ist als DestallDetectMode PwStDetectMode_Lagging eingetragen. Der Baustein verwendet als Entscheidungsgrundlage den Schleppabstand der Achse und verwendet dabei den Grenzwert und die Filterzeit der hier zu deaktivierenden Schleppüberwachung aus den NC-Achsdaten. In diesem Beispiel ist PwStMode_SetError als DestallMode eingetragen. Das Ergebnis ist zunächst nur durch den anderen Fehlercode vom Schleppabstands-Alarm zu unterscheiden.
Wenn PwStMode_UseOverride als DestallMode eingetragen ist verwendet der MC_PowerStepper Baustein den Override, um das Profil unmittelbar zu stoppen. Da dieses Anhalten jedoch keinen Abbruch des Profils bewirkt, gleichzeitig aber das Erreichen des Profilendes verhindert werden keine Statusbits beeinflusst. Die hier auf 2% begrenzte Reglerausgabe führt die Achse bis auf die Schleppabstandsgrenze an die aktuelle Sollposition des Profils heran. Dann wird der Override wieder auf den von der Applikation vorgegebenen Wert gesetzt.
Im Ergebnis wird ein erheblich größerer Teil des Gesamt-Profils mit der vorgegebenen Geschwindigkeit gefahren und die Zielposition korrekt erreicht. Die Statusinformationen der Achse werden korrekt erzeugt.
Kombinationen von Stall-Erkennung und -Handhabung
Die nachfolgende Tabelle stellt Kombinationen der unterstützten Modi zur Stall-Erkennung und -Handhabung dar.
|
PwStMode_SetError |
PwStMode_SetErrNonRef |
PwStMode_UseOverride |
PwStDetectMode_Encoderless |
Anmerkung 1 |
Anmerkung 2 |
nicht geeignet |
PwStDetectMode_Lagging |
Anmerkung 3 |
nicht sinnvoll |
Anmerkung 4 |
Anmerkung 1: Sinnvoll bei Achsen ohne Encoder, die nicht referenziert werden.
Anmerkung 2: Sinnvoll bei Achsen ohne Encoder, die unter Verwendung des Pulszählers der Klemme und z. B. eines externen Sensors referenziert werden.
Anmerkung 3: Das erzeugte Verhalten entspricht weitgehend der Schleppüberwachung.
Anmerkung 4: Sinnvoll bei Achsen mit Encoder.