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