# Modifizieren von Kinematikeigenschaften (#KIN DATA)

Dieser Befehl ermöglicht es bei aktiver Transformation (#TRAFO ON) Eigenschaften der aktiven Kinematik zu modifizieren. Dazu zählt z.B. die Möglichkeit bei redundanten Freiheitsgraden einer Kinematik festzulegen, welche Achsen sich nicht bewegen sollen.

## Versionshinweis

Dieser Befehl ist verfügbar ab der CNC-Version V3.1.3080.

## Hinweis

Es wird nur die Kinematik ID 210 unterstützt.

Wird der Befehl bei anderen Kinematiken angewendet, so bleibt er wirkungslos.

Syntax:
#KIN DATA [LOCKDOF { AX=<Achsname>} | { AXNR=..} ] | Anwahl zu sperrender Achsen
#KIN DATA [UNLOCKDOF { AX=<Achsname>} | { AXNR=..} ] | Anwahl freizugebender Achsen

LOCKDOF | Für die angegebenen Achsen wird der Eintrag im Parameter P-CHAN-00458 gesetzt. Im Gegensatz zur Variable V.G.KIN[i].LOCK_DOF[<AXIDX>] kann der Befehl auch bei aktiver Transformation angewendet werden.
UNLOCKDOF | Für die angegebenen Achsen wird der Eintrag im Parameter P-CHAN-00458 zurückgesetzt. Im Gegensatz zur Variable V.G.KIN[i].LOCK_DOF[<AXIDX>] kann der Befehl auch bei aktiver Transformation angewendet werden.
AX=<Achsname> | Namen der zu sperrenden/freizugebenden Achsen
AXNR=.. | Logische Achsnummern der zu sperrenden/freizugebenden Achsen, positive Ganzzahl

## Beispiel

Anwenden des #KIN DATA-Befehls

Ausgangslage für das nachfolgende Programmierbeispiel ist eine vereinfachte Konfiguration einer Koppelkinematik mit einem stehenden Roboter auf einer X-Linearachse. Bei programmiertem TCP (Achsbezeichner X) bewegt sich aufgrund der Bewegungspriorität in P-CHAN-00450 zuerst die X-Linearachse.

Auszug aus der Parametrierung der Kanalparameter:

gruppe[0].achse[00].log_achs_nr 1

gruppe[0].achse[00].bezeichnung X

gruppe[0].achse[00].default_feed_axis 0

...

gruppe[0].achse[06].log_achs_nr 7

gruppe[0].achse[06].bezeichnung X_LIN

gruppe[0].achse[06].default_feed_axis 0

gruppe[0].achse[07].log_achs_nr 8

gruppe[0].achse[07].bezeichnung X_ROB

gruppe[0].achse[07].default_feed_axis 0

...

trafo[0].id 210

trafo[0].group[0].name LIN_ROB

trafo[0].group[0].chain[0] LIN

trafo[0].group[0].chain[1] ROB

trafo[0].group[0].move_prio[0] LIN

trafo[0].group[0].move_prio[1] ROB

trafo[1].id 91

trafo[1].name LIN

...

trafo[2].id 45

trafo[2].name ROBOT

...

Im folgenden Beispiel wird im Satz N01 die X-Linearachse gesperrt. Es kann somit nur noch der Roboter die programmierte Bewegung fahren.

Im Satz N03 wird die X-Linearachse wieder entsperrt. Somit fährt sie die programmierte X-Bewegung, da sie in der Bewegungspriorität vor dem Roboter steht.

N01 #KIN DATA [LOCKDOF AXNR=7]

N02 G00 G90 X1500

( Kartesische Achspositionen: X=1500, X_LIN=0, X_ROB=0

N03 #KIN DATA [UNLOCKDOF AX=X_LIN]

N02 G00 G90 X1000

( Kartesische Achspositionen: X=1000, X_LIN=-500, X_ROB=1500