Independent axes

For programming of independent axes two different operation modes are available:

Independent axes 1:
Fig. 19.1: Movement diagram of path axes/independent axes

For independent axes no offsets are considered.

Additive manual mode (G201/G202) with an independent axis is posssible.

Programming syntax for independent axes:

<axis_name> [ INDP_SYN | INDP_ASYNG90 | G91G00 | G01FEED<expr> | TIME<expr> | FEED_MAX_WEIGHT <expr>  POS <expr> [SLOPE_PROFIL<expr>] {M<expr>} {H<expr>} ]

<axis_name> Axis designation of independent axis

INDP_SYN Identification for synchronous (block wise) independent axis movements. The transition to the next block is only done, if all axes have reached their end position. Must always be the first programmed keyword.

INDP_ASYN Identification for asynchronous (multi block) independent axis movements. There is no synchronization on end positions. Synchronization is done with a special NC-command (#WAIT INDP) or with programming of the independent axis as conventional path axis. Must always be the first programmed keyword.

G90 / G91 Absolute / relative values

G00 / G01 Rapid traverse / linear interpolation

FEED<expr> Axis specific feed in path units/min

TIME<expr> Axis specific movement time in s

FEED_MAX_WEIGHT<expr> Weighting factor in % with reference to the maximum axis specific feed [2]-17. Only weighting factors less than 100% are allowed (according to G194, chapter 4.25)

POS<expr> Axis position

SLOPE_PROFIL<expr> Profile types of slope (0, 1, 2) (according to #SET SLOPE PROFIL, chapter ) If no slope type is programmed, as default the type of the channel parameters[1]-26 is used.

M<expr> Axis specific M-function

H<expr> Axis specific H-function

Axis specific M/H-functions can also be outputted to an independent axis without programming any movement. You must only add the identification INDP_SYN respectively INDP_ASYN.

<axis_name> [ INDP_SYN | INDP_ASYNM<expr> {M<expr>} H<expr> {H<expr>} ]

<axis_name> Axis designation of independent axis

INDP_SYN/INDP_ASYN Identification for a independent axis

M<expr> Axis specific M-function

H<expr> Axis specific H-function

Synchronization of special asynchronous axes movements (INDP_ASYN) can be enforced with the NC-command:

#WAIT INDP [ <axis_name> { ,<axis_name> } ]

<axis_name> Axis designation of independent axis

Independent axes 2:

If an asynchronous axis is programmed again before or without a corresponding #WAIT INDP [ ], synchronization is done in the interpolator implicitly.

Synchronization of all present active asynchronous axes movements (INDP_ASYN) can be enforced with the NC-command:

#WAIT INDP ALL 

Programming example

: 
N10 X10 Y11 Z[INDP_SYN POS50 G01 FEED100 G90] (N10 is finished, if X,)
(Y and the independent)
(synchr. Z-axis have)
(finished their movements)
N20 X20 Y22 (N20 is executed after all movements of N10 are)
(finished)
N30 X5 Y10 Z[INDP_ASYN POS500 G01 FEED200 G90] (N30 is finished, if X)
(and Y have finished)
(their movements; the)
(independent asynchr.)
(Z-axis goes on with)
(its movement)
N40 X20 Y30 (N40 is interpolated; the asynchronous independent)
(Z-axis is still moving)
N50 #WAIT INDP[Z] (Synchronization of Z-movement of N30)
N60 X30 Y40 Z60 (X, Y, Z are interpolated together in the path)
(compound, after Z-axis was synchronized in N50)
N70 Z[INDP_SYN M50 ] (Output of M50 for the independent Z-axis)
N80

Programming example

N10 X10 Y11 Z[INDP_ASYN POS500 G01 FEED200 G90] (N10 is interpolated,)
(the independent asyn-)
(chronous Z-axis still)
(moves)
N20 X20 Y22 (N20 is interpolated, the independent asynchronous)
(Z-axis still moves)
N30 Z550 (Implicit synchronization of Z-movement of N10, before)
(movement Z550 is started)
N40 X20 Y30 Z60 (N40 is interpolated)
N50 …
Independent axes 3:

If in the same block an independent axis is programmed together with an axis specific M-/H-function[1]-7/-8 for the same axis, then an error message is output.
Example:M10 is a X-axis specific M-function (m_default_outp_ax_name[10] X):
N10 M10X [INDP_SYNG01 G90 POS10 FEED1000 M7]
|_____|←Error!