# Positionierbewegungen ohne Ausgleichsbewegung (#PTP ON/OFF, #AX LOCK ALL, #AX UNLOCK ALL)

## Hinweis

Nicht im Umfang der Standardlizenz! Die Nutzung dieser Funktionalität erfordert die Lizenzierung des Erweiterungspaketes "Transformationen".

Syntax:
#PTP ON | Anwahl Trafo PTP Bewegungsführung
#PTP OFF | Abwahl Trafo PTP Bewegungsführung

Wenn nach Anwahl der kinematischen Transformation das Werkzeug positioniert und orientiert wird, führt dies zu Ausgleichsbewegungen in den Maschinenachsen, da die Werkzeugspitze (TCP) auf der Bahn geführt wird. Sind diese Ausgleichsbewegungen unerwünscht, so kann über die oben aufgeführten Befehle eine zeitoptimalere Bewegungsführung erreicht werden.

Bei 5-Achsmaschinen wird die Bewegung auf Basis des Werkzeugkopfbezugspunktes durchgeführt; - der Bezugspunkt bewegt sich mit dem programmierten Vorschub (F-Wort) oder Eilgang auf einer Geraden, der TCP nicht (siehe folgende Abb.).

Bei nicht kartesischen Maschinenstrukturen (z.B. Roboter, Tripod) bewegen sich weder der Bezugspunkt noch der TCP auf einer Geraden. Der programmierte Vorschub (F-Wort) oder Eilgang wirkt auf die Maschinenachsen. Es ist jedoch sichergestellt, dass am Ende der Bewegung der TCP auf dem programmierten PCS-Zielpunkt steht.

Die Bewegungsprogrammierung ist identisch zur PCS-Programmierung, die Umrechnung der PCS-Koordinaten in MCS-Koordinaten wird von der Steuerung ausgeführt. Im Unterschied zur Verwendung des Befehls #WCS TO MCS wird die Versatz- und Werkzeugverrechnung identisch wie bei aktiver kinematischer Transformation durchgeführt.

## Achtung

Während aktiver Trafo PTP Bewegungsführung werden im Echtzeitteil der CNC in den PCS-Koordinaten ACS-Werte angezeigt!

Abb.: Bewegungsführung ohne / mit #PTP

## Achtung

Während aktiver Trafo PTP Bewegungsführung ist die An-/Abwahl zusätzlicher Koordinatentransformationen (#(A)CS ON/OFF, #MCS ON/OFF usw.) nicht erlaubt!

## Programmierbeispiel

Positionierbewegungen ohne Ausgleichsbewegung (PTP)

Beispiel zur vorangegangenen Abbildung:

N10 T1 D1 ;Werkzeuganwahl

N20 G00 X-200 Y0 Z0 A90 ;MCS Anfahrposition

N30 #TRAFO ON ;RTCP-Anwahl, Default-Kinematik

;aus P-CHAN-00032 gültig

N40 #PTP ON ;Trafo PTP Bewegung ein

N50 G00 X200 Y0 Z0 A-90 ;PCS Zielposition

...

N180 #PTP OFF ;Trafo PTP Bewegung aus

N185 G01 X100 Y150 F5000

…

N500 #TRAFO OFF ;RTCP-Abwahl

N999 M30

Beispiel mit automatischer Werkzeugausrichtung:

N10 T1 D1 ;Werkzeuganwahl

N20 #TRAFO ON ;RTCP-Anwahl, Default-Kinematik)

;aus P-CHAN-00032 gültig

N30 #TOOL ORI CS ;Werkzeug ausrichten, Default-Kinematik

;aus P-CHAN-00032 gültig.

N40 #PTP ON ;Trafo PTP Bewegung ein

N50 G00 X0 Y0 Z100 G90 ;PCS Anfahrposition

...

N180 #PTP OFF ;Trafo PTP Bewegung aus

N185 G01 X100 Y150 F5000

…

N500 #TRAFO OFF ;RTCP-Abwahl

N999 M30

## Hinweis

Im Zusammenhang mit der Trafo PTP Bewegungsführung kann es erforderlich sein, für bestimmte Achsen die sich ergebenden Verfahrbewegungen aus technologischen Gründen zu unterdrücken (z.B. um innerhalb von Softwareendschaltergrenzen zu bleiben).

Zu diesem Zweck können während aktiver PTP-Programmierung Bewegungen einzelner Achsen mit dem Befehl #AX LOCK/UNLOCK ALL temporär gesperrt werden.

Syntax:
#AX LOCK [ { AX=<Achsname> } | { AXNR=.. } ] | Anwahl zu sperrender Achsen

AX=<Achsname> | Namen der zu sperrenden Achsen
AXNR=.. | Logische Nummern der zu sperrenden Achsen, Positive Ganzzahlen

Syntax:
#AX UNLOCK ALL | Freigabe gesperrter Achsen. Sind mehrere Achsen gesperrt, so können diese nur gemeinsam wieder freigegeben werden. Die Freigabe nur bestimmter Achsen ist nicht möglich. Auch wenn nur eine einzelne Achse gesperrt ist, muss diese mit ALL freigegeben werden.

Die Programmierung von #AX LOCK, #AX UNLOCK ALL ist nur während aktivem #PTP erlaubt.

Gesperrte ACS Ausgangsachsen der kinematischen Transformation bewegen sich nicht bei G00 und G01.

## Programmierbeispiel

Positionierbewegungen ohne Ausgleichsbewegung (PTP)

Anwahl der zu sperrenden Achse bzw. Freigabe aller gesperrten Achsen.

Korrekt:

N10 #CYL[EDGES=4 ROUNDING=5 LENGTH1=40 LENGTH2=40]

N20 #PTP ON

N30 #AX LOCK[AX=Z AX=B] ;alternativ: #AX LOCK[AXNR=3 AXNR=5]

N40 G00 G90 U30

……………………

N60 #AX UNLOCK ALL ;Mit impliziter Positionsanforderung

N70 #PTP OFF

N80 G01 G90 Z0 F3000

N90 G01 U40 F2000

……….

Falsch:

N10 #AX LOCK[AX=Z] ;Programmierung vor PTP

N20 #CYL[EDGES=4 ROUNDING=5 LENGTH1=40 LENGTH2=40]

N30 #PTP ON

N40 G00 G90 U30

…………………..

N60 #AX UNLOCK ALL ;Mit impliziter Positionsanforderung

N70 #PTP OFF

N80 G01

……….

N200 #CYL OFF