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

release_note

This function block is available as of CNC Build V3.1.3080.

Notice

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

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