Hilfsachsen
Eine Hilfsachse ist eine Achse, deren Position nicht bei jedem Satzübergang mit einem festen Zahlenwert vorgegeben werden muss. Die Bewegung der Hilfsachse wird über mehrere Hauptachssätze verschliffen. Haupt- und Hilfsachsen erreichen zeitgleich ihre programmierten Zielpositionen. Hierbei findet ein automatischer Abgleich der Bewegungszeiten statt.
Beispiel: Pick-and-Place-Bewegung
Die Rotation der E1-Hilfsachse wird in einer definierten Höhe nach dem Greifen gestartet und muss in einer definierten Höhe vor dem Ablegen beendet sein. Im übrigen Bereich der Bewegung ist die Position der E1-Hilfsachse nicht vorgegeben, sondern wird von der Steuerung auf die Hauptachsen synchronisiert. Dabei werden die Limitierungen der Haupt- und Hilfsachsen berücksichtigt, d. h. die "schnellere" Abarbeitung muss ggf. so in ihrer Geschwindigkeit reduziert werden, dass beide Bewegungen zeitgleich enden.
Beispiel: Pick-and-Place-Bewegung
Beauftragung der Hilfsachsen
Die Beauftragung der Hilfsachsen erfolgt über dieselben bewegungsbeauftragenden FBs ( MC_MoveLinearAbsolute , MC_MoveLinearRelative , usw.), die auch zur Beauftragung der Hauptachsen verwendet werden.
Beispiel MC_MoveLinearAbsolute :
- Das Array mit den absoluten Zielpositionen ist dem Eingang Position zu übergeben.
- Die Array-Elemente [1 ... 6] enthalten die Positionen der Hauptachsen.
- Die Array-Elemente [7 ... 12] enthalten die Positionen der Hilfsachsen.
- Über den Eingang aeAuxMode (ARRAY[1..6] OF L_MC4P_AuxMode) lässt sich für jede Hilfsachse der Modus festlegen:
Hilfsachsenmodus "Discrete"
Im Modus "Discrete" wird zum Ende des Bewegungssegments die Position der Hilfsachsen abgeglichen. So können Zwischenhalt-Punkte der Hilfsachsen in einer Bewegungsfolge platziert werden oder die Hilfsachsen analog zu den Hauptachsen verwendet werden.
Im folgenden Beispiel verfährt die Hilfsachse in MoveP2 aus ihrer Startposition auf die Zielposition 180. Diese Position wird zeitgleich mit dem Erreichen der MoveP2-Zielpositionen der Hauptachsen erreicht.
Beispiel: Hilfsachsenmodus "Discrete" in MoveP2
Hilfsachsenmodus "Continuous"
Im Modus "Continuous" wird die am FB angegebene Zielposition nicht ausgewertet. Im darauf folgenden FB kann entweder wieder der Modus "Continuous" angewählt sein oder die Sequenz wird mit einem Modus "Discrete" abgeschlossen.
Im folgenden Beispiel wird die Bewegung der Hilfsachse in MoveP2 gestartet. Die Zielposition 180 erreicht die Hilfsachse am Ende von MoveP3. Diese Position wird zeitgleich mit dem Erreichen der MoveP3-Zielpositionen der Hauptachsen erreicht.
Beispiel: Hilfsachsenmodus "Continuous" in Move_P2
|
Hinweis!
Eine "Continuous"-Sequenz muss immer mit einem "Discrete"-Auftrag abgeschlossen werden! |
Mögliche Beauftragungssequenzen
Für Hilfsachsen ergeben sich diese möglichen Beauftragungssequenzen:
Mögliche Beauftragungssequenzen
Verhalten bei Blending
Wird ein Bewegungssegment verschliffen, das Zielpositionen für eine oder mehrere Hilfsachsen enthält, gilt die Zielposition der Hilfsachse zum Anfang des Verschliffsegments. Das Verschliffsegment wird dem nachfolgenden Bewegungssatz zugeordnet und dieser beinhaltet evtl. keine Hilfsachsbewegung. Die ursprüngliche Zielposition wird durch den Verschliff nicht mehr angefahren. Daher gibt es keinen klar definierten Punkt auf dem Verschliffsegment, der als Zielposition für die Hilfsachse dienen könnte.
Beispiel: Verhalten bei Blending
Verhalten bei Aborting
Die Bewegung der Hilfsachse(n) wird synchron zu den Hauptachsen schnellstmöglich beendet und anschließend entsprechend den neuen Bewegungsvorgaben fortgesetzt.
Zeitverhalten
Ist eine Hilfsachsbewegung programmiert, so erfolgt der Start der Bewegung erst, wenn die vollständige Bewegungsfolge bekannt ist. Das gilt insbesondere auch dann, wenn mehrere Hilfsachsbewegungen zeitlich überlappend programmiert sind.
Beispiel 1: Hilfsachs-Bewegungsfolge über die FBs MoveP2 ... MoveP10
- MoveP1 wird sofort gestartet: TargetVel = 0
- Der Start von MoveP2 wird solange verzögert, bis MoveP10 verarbeitet wurde.
- Abhängig von der Position in MoveP2 erfolgt dann im LookAhead eine Anhebung MoveP2 TargetVel.
Beispiel 2: Hilfsachs-Bewegungsfolge über die FBs MoveP2 ... MoveP5 und MoveP8 ... MoveP10
- MoveP1 wird sofort gestartet: TargetVel = 0
- Der Start von MoveP2 wird solange verzögert, bis MoveP5 verarbeitet wurde.
- MoveP6 und MoveP7 werden sofort gestartet: TargetVel = 0
- Der Start von MoveP8 wird solange verzögert, bis MoveP10 verarbeitet wurde.
Tipp!
Das Zuordnen von Haupt- und Hilfsachsen zu einer Kinematik erfolgt auf der Registerkarte Verbundene Antriebe der entsprechenden Kinematik-Achsgruppe.
|
Hinweis!
Wird dieselbe Hilfsachse in zwei direkt aufeinanderfolgenden FBs vom Typ MC_Move< ...... > im Modus "DiscreteAbsolute" oder "DiscreteRelative" beauftragt, können diese zwei Segmente nicht miteinander verschliffen werden. Ein ggf. programmiertes "Blending" wird ignoriert. Hintergrund: Das Verschliffsegment müsste in diesem Fall sowohl der ersten als auch der zweiten Teilbewegung der Hilfsachse zugeordnet werden. Diese zeitliche Überlagerung wird nicht unterstützt. |
Inbetriebnahmebeispiel "Kinematik-Achsgruppe"