Modify kinematic characteristics (#KIN DATA)
This command permits characteristics of the active kinematics to be modified when the transformation is active (#TRAFO ON). This includes, for example, the possibility of specifying which axes should not move in cases of redundant degrees of freedom of a kinematic system.
Release Note
This function block is available as of CNC Build V3.1.3080.
Notice
Only kinematic ID 210 is supported.
If the command is used with other kinematics, it has no effect.
Syntax: | |
#KIN DATA [LOCKDOF { AX=<axis_name>} | { AXNR=..} ] | Select axes to be locked |
#KIN DATA [UNLOCKDOF { AX=<axis_name>} | { AXNR=..} ] | Select axes to be released |
LOCKDOF | Set the entry in parameter P-CHAN-00458 for the specified axes. As opposed to the variable V.G.KIN[i].LOCK_DOF[<AXIDX>], the command can also be used with active transformation. |
UNLOCKDOF | Reset the entry in parameter P-CHAN-00458 for the specified axes. As opposed to the variable V.G.KIN[i].LOCK_DOF[<AXIDX>], the command can also be used with active transformation. |
AX=<axis_name> | Names of locked axes to be released |
AXNR=.. | Logical numbers of locked axes to be released, positive integers |
Example
Using the #KIN DATA command
The starting point for the following programming example is a simplified configuration of a coupling kinematic with a stationary robot on an X linear axis. When TCP is programmed (axis identifier X), the X linear axis moves first due to the motion priority in P-CHAN-00450.
Extract from parameterisation of channel parameters:
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
...
The example below locks the X linear axis in block N01. The robot can then only move the programmed motion.
The X linear axis is unlocked in block N03. The axis then moves the program X motion since it has a higher motion priority than the robot.
N01 #KIN DATA [LOCKDOF AXNR=7]
N02 G00 G90 X1500
( Cartesian axis positions: X=1500, X_LIN=0, X_ROB=0
N03 #KIN DATA [UNLOCKDOF AX=X_LIN]
N02 G00 G90 X1000
( Cartesian axis positions: X=1000, X_LIN=-500, X_ROB=1500