L_MC4P_MoveSplineRelative
Mit diesem FB kann eine Achsgruppe im spezifizierten Koordinatensystem entlang eines Splines verfahren werden. Der vollständige Spline besteht in den einzelnen Abschnitten aus Polynomen dritter Ordnung.
Der Startpunkt ist die Zielposition des zuletzt beauftragten FBs oder die aktuelle Position, falls die Achsgruppe im Zustand "GroupStandby" ist.
Der Spline wird über die Vorgabe von maximal neun Stützstellen ( ascIntermediatePoint ) und einem Zielpunkt ( alrEndPoint ) definiert. Die Punkte beziehen sich immer relativ zum festen Startpunkt.
Die Vorgabe des Zielpunktes ist zwingend, die Anzahl der Stützpunkte muss mindestens 1 und maximal 9 sein.
Wenn keine weiteren Bewegungskommandos anstehen, befinden sich die Achsen der Gruppe nach Erreichen der Zielposition im Zustand "GroupStandby".
- Bereits das Verändern eines Stützpunktes hat Einfluss auf die Geometrie des gesamten Splines und nicht nur auf die Geometrie des veränderten Abschnittes.
- Doppelte identische Punkte direkt hintereinander werden zusammengefasst.
- Doppelte Punkte, die nicht aufeinanderfolgen, sind zulässig.
- Die Orientierung des TCPs wird während der Bewegung zwischen Start- und Endpunkt kontinuierlich interpoliert.
- Die maximale Geschwindigkeit und Beschleunigung wird ggf. aufgrund der größten Krümmung entlang des gesamten Splines für den gesamten Spline reduziert.
|
Gefahr!
Alle Bahnen müssen immer erst mit Override oder im Simulationsmodus mit virtuellen Achsen getestet werden! |
|
Hinweis!
Kartesische Bahnbewegungen (CP) lassen sich nur durchführen, wenn alle Antriebsachsen auf die im Abschnitt " Unterstützte Kinematiken " definierten Nulllagen referenziert sind. |
|
|
|
|
L_MC4P_MoveSplineRelative |
|
|
|
|
|---|---|---|---|---|---|---|---|
|
AXES_GROUP_KIN |
- |
|
AxesGroup |
AxesRef |
|
- |
AXES_GROUP_KIN |
|
BOOL |
- |
|
xExecute |
xDone |
|
- |
BOOL |
|
ARRAY [1..9] OF STRUCT |
- |
|
ascIntermediatePoint |
xBusy |
|
- |
BOOL |
|
ARRAY [1..12] OF LREAL |
- |
|
alrEndPoint |
xActive |
|
- |
BOOL |
|
LREAL |
- |
|
lrVelocity |
xCommandAborted |
|
- |
BOOL |
|
LREAL |
- |
|
lrAcceleration |
xError |
|
- |
BOOL |
|
LREAL |
- |
|
lrDeceleration |
xErrorID |
|
- |
L_IE1P_Error |
|
LREAL |
- |
|
lrJerk |
iPointPassed |
|
- |
INT |
|
L_MC4P_CoordSystem |
- |
|
eCoordSystem |
|
|
|
|
|
MC_BUFFER_MODE |
- |
|
eBufferMode |
|
|
|
|
|
MC_TRANSITION_MODE |
- |
|
eTransitionMode |
|
|
|
|
|
ARRAY [ 1..12 ] OF LREAL |
- |
|
alrTransitionParameter |
|
|
|
|
|
ARRAY [1..6] OF
|
- |
|
aeAuxMode |
|
|
|
|
|
L_MC4P_Orientation_Mode |
- |
|
eOrientationMode |
|
|
|
|
|
ARRAY[4..6] OF MC_DIRECTION |
- |
|
aeDirection |
|
|
|
|
|
|
|
|
|
|
|
|
|
Eingänge
|
Name Datentyp |
Info/Einstellmöglichkeiten |
|
|---|---|---|
|
AxesGroup AXES_GROUP_KIN |
Achsgruppenreferenz |
|
|
xExecute BOOL |
FALSE ä TRUE |
Ausführung des FBs starten |
|
ascIntermediatePoint ARRAY [1..9] OF Struktur L_MC4P_IntermediatePointSpline |
|
|
|
alrEndPoint ARRAY [1..12] OF LREAL |
Endpunkt mit Orientierung und Hilfsachsen |
|
|
lrVelocity LREAL |
Maximale Geschwindigkeit in [Units/s] für das Anfahren der Zielposition
|
|
|
lrAcceleration LREAL |
Maximale Beschleunigung in [Units/s 2 ] |
|
|
lrDeceleration LREAL |
Maximale Verzögerung in [Units/s 2 ] |
|
|
lrJerk LREAL |
Maximaler Ruck in [Units/s 3 ] |
|
|
eCoordSystem |
Auswahl des zu verwendenen Koordinatensystems:
|
|
|
eBufferMode |
Modus für die Abarbeitung aufeinanderfolgender Bewegungskommandos |
|
|
eTransitionMode |
Modus für das Bahnverhalten am Bewegungsende |
|
|
alrTransitionParameter ARRAY [1..12] OF LREAL |
Beschreibung des Parameters alrTransitionParameter Parameter für "Überschleifen" * alrTransitionParameter[1]
* alrTransitionParameter[2]
* alrTransitionParameter[3..12]
|
|
|
aeAuxMode ARRAY [1..6] OF L_MC4P_AuxMode |
Modus für die Hilfsachsen:
|
|
|
eOrientationMode L_MC4P_Orientation_Mode |
Vorgabe der Orientierungsinterpolation für die WCS-Achsen
Siehe auch: Richtungsvorgabe bei Modulo-Achsen |
|
|
aeDirection ARRAY[4..6] OF MC_DIRECTION |
Richtungsvorgabe für als "Modulo" parametrierte Orientierungsachsen (WCS-Achsen). Der Eingang wird nur ausgewertet bei
Index 4 ... 6: Hauptachsen A, B, C Zulässige Auswahl:
Die Modi mcCurrentDirection , mcPositiveCycle und mcNegativeCycle werden nicht unterstützt. Siehe auch: Richtungsvorgabe bei Modulo-Achsen |
|
Ausgänge
Struktur L_MC4P_IntermediatePointSpline
Programmierbeispiel
Diese Beispiel zeigt die Programmierung einer Bewegung entlang eines mit relativ vorgegeben Stützstellen definierten Splines.
Die Achsgruppe steht an der Position x=50.0, y =10.0, z=20.0
Über den FB My_MoveSpline (Instanz des L_MC4P_MoveSplineRelative) wird folgende Bewegung programmiert:
|
My_MoveSpline.alrIntermediatePoint[1].lrXPos := -45.0;
My_MoveSpline.alrIntermediatePoint[1].lrYPos := -9.0;
My_MoveSpline.alrIntermediatePoint[1].lrZpos := -15.0;
My_MoveSpline.alrIntermediatePoint[1].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[2].lrXPos := -40.0;
My_MoveSpline.alrIntermediatePoint[2].lrYPos := -8.0;
My_MoveSpline.alrIntermediatePoint[2].lrZpos := -12.0;
My_MoveSpline.alrIntermediatePoint[2].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[3].lrXPos := -30.0;
My_MoveSpline.alrIntermediatePoint[3].lrYPos := 0.0;
My_MoveSpline.alrIntermediatePoint[3].lrZpos := -20.0;
My_MoveSpline.alrIntermediatePoint[3].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[4].lrXPos := -30.0;
My_MoveSpline.alrIntermediatePoint[4].lrYPos := 10.0;
My_MoveSpline.alrIntermediatePoint[4].lrZpos := 0.0;
My_MoveSpline.alrIntermediatePoint[4].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[5].lrXPos := 0.0;
My_MoveSpline.alrIntermediatePoint[5].lrYPos := 10.0;
My_MoveSpline.alrIntermediatePoint[5].lrZpos := 20.0;
My_MoveSpline.alrIntermediatePoint[5].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[6].lrXPos := 0.0;
My_MoveSpline.alrIntermediatePoint[6].lrYPos := 50.0;
My_MoveSpline.alrIntermediatePoint[6].lrZpos := 40.0;
My_MoveSpline.alrIntermediatePoint[6].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[7].lrXPos := 10.0;
My_MoveSpline.alrIntermediatePoint[7].lrYPos := 50.0;
My_MoveSpline.alrIntermediatePoint[7].lrZpos := 30.0;
My_MoveSpline.alrIntermediatePoint[7].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[8].lrXPos := 10.0;
My_MoveSpline.alrIntermediatePoint[8].lrYPos := 10.0;
My_MoveSpline.alrIntermediatePoint[8].lrZpos := 10.0;
My_MoveSpline.alrIntermediatePoint[8].xUsePoint := TRUE;
My_MoveSpline.alrIntermediatePoint[9].lrXPos := 0.0;
My_MoveSpline.alrIntermediatePoint[9].lrYPos := 0.0;
My_MoveSpline.alrIntermediatePoint[9].lrZpos := -20.0;
My_MoveSpline.alrIntermediatePoint[9].xUsePoint := TRUE;
My_MoveSpline.alrEndPoint[1] := -15.0;
My_MoveSpline.alrEndPoint[2] := 10.0;
My_MoveSpline.alrEndPoint[3] := -10.0;
|
Koordinatensysteme und Transformationen