Independent axes (INDP_SYN, INDP_ASYN) (#WAIT INDP, #WAIT INDP ALL)

Two different operation modes are provided to program independent axes:

Motion diagram of path axis compound/independent axes
Motion diagram of path axis compound/independent axes

Notice

notice

No offsets are considered for independent axes.

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

Programming syntax for independent axes:

<axis_name> [ INDP_SYN | INDP_ASYN G90 | G91 G00 | [G01 | G100 FEED=.. |

                        TIME=.. | FEED_MAX_WEIGHT=..] POS=.. [SLOPE_TYPE=<ident>]

                        {M..} {H..} [DRY_RUN] [ACC_WEIGHT=..] [RAPID_ACC_WEIGHT=..] { \ } ]

<axis_name>

Name of independent axis

INDP_SYN

Identifier for synchronous (blockwise) independent axis motion. The transition to the next block is only executed if all axes have reached their target point. Must always be programmed as the first keyword.

INDP_ASYN

Identifier for asynchronous (cross-block) independent axis motion. There is no synchronisation at target points. Command value based synchronisation is executed by a special NC command (#WAIT INDP) or by programming the independent axis as a conventional path axis. Must always be programmed as the first keyword.

G90 / G91

Absolute/relative dimension

G00 / G01

Rapid traverse/linear interpolation

FEED=..

Axis-specific feedrate in [mm/min, m/min, inch/min]

TIME=..

Axis-specific motion time in [s]

FEED_MAX_WEIGHT=..

Weighting factor in [%] referred to axis-specific maximum feed P-AXIS-00212. Only weighting factors less than 100% are permitted. (according to G194, Section Machining time/feedrate (G93/G94/G95/G194))

POS=..

Axis position in [mm, inch]

SLOPE_TYPE=<ident>

Slope profile types according to #SLOPE [TYPE=...], Section Independent axes). If no slope type is programmed, the slope type taken from the channel parameter list P-CHAN-00071 is set by default.

Old syntax:

SLOPE_PROFIL=..

Slope profile types (0, 1, 2, 3). If no slope type is programmed, the slope type taken from the channel parameter list P-CHAN-00071 is sued by default.

G100

[as of Build V2.11.2801.05]

If measurement types 1, 2 or 7 (Section Measuring functions) are used, a measurement run can be executed with independent axes. The measuring point is latched for each axis involved. An independent measurement run is also possible in parallel to a path motion of a G100 measurement run. For more information see [FCT-C4//Measurement].

DRY_RUN

Dry run of axis motion. The motion is only executed in the NC channel but the axis is not really moved. This offsets the axis coordinate within the channel relative to the physical axis. This offset is automatically cancelled at every program start or by an explicitly programmed #CHANNEL INIT [CMDPOS] (see Programming example 3).

M..

Axis-specific M functions (*)

H..

Axis-specific M/H-functions (*)

ACC_WEIGHT=..

[as of V3.1.3079.06]

Axis-specific weighting factor in [%] referred to acceleration with G01, G02, G03 (see section Acceleration weighting (G130/G131/G231/G333/G334))

RAPID_ACC_WEIGHT=..

[as of V3.1.3079.06]

Axis-specific weighting factor in [%] referred to acceleration with G00 (see section Acceleration weighting (G130/G131/G231/G333/G334))

\

Separator ("backslash") for clear programming of the command over multiple lines.

(*) only possible with synchronisation modes MOS, MVS_SVS, MVS_SNS, MNS_SNS.

Axis-specific M/H functions can also be output to an independent axis without programming a motion. This only requires the identifier INDP_SYN or INDP_ASYN.

Syntax:

<axis_name> [ INDP_SYN | INDP_ASYN M.. { M..} H.. {H..} { \ } ]

<axis_name>

Name of independent axis

INDP_SYN/INDP_ASYN

Identifier for an independent axis

M..

Axis-specific M function

H..

Axis-specific H functions

\

Separator ("backslash") for clear programming of the command over multiple lines.

Command value based synchronisation of specific asynchronous axis motions (INDP_ASYN) can be forced by the NC command:

Syntax:

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

<axis_name>

Name of asynchronous axis

Notice

notice

If an asynchronous axis is again programmed with a motion before or without a corresponding #WAIT INDP [  ], command value based synchronisation is implicitly executed in the interpolator.

Command value based synchronisation of all currently active asynchronous axis motions (INDP_ASYN) is forced by the NC command:

Syntax:

#WAIT INDP ALL

Notice

notice

If the axis of a pre-assigned axis-specific M/H function (P-CHAN-00039, P-CHAN-00025) is programmed in the same NC block as an independent axis, an error message is output.

Example: M10 is pre-assigned for a specific X axis (m_default_outp_ax_name[10] x):

N10   M10    X [INDP_SYN G01 G90 POS10 FEED1000 M7]

          |_____| <- Error!

Programing Example

prg_example

Independent axes

Example 1:

;N10 ends when X,Y and the indep. sync. Z axis

;end their motions

N10 X10 Y11 Z[INDP_SYN POS50 G01 FEED100 G90]

;N20 is executed after all motions in N10 end

N20 X20

;N30 ends when X and Y end their motions;

;independent asynchronous axis continues its motion

N30 X5 Y10 Z[INDP_ASYN POS500 G01 FEED200 G90]

;N40 is interpolated, asynchronous independent Z axis continues its motion

N40 X20 Y30

;Forced synchronisation of the Z axis: wait until target position

;Z500 is reached from N30

N50 #WAIT INDP[Z]

;Interpolation in N60 with X, Y, Z in coordinated motion

;starts after synchronisation takes place in N50

N60 X30 Y40 Z60

N70 Z[INDP_SYN M50]   ;Output of M50 via independent Z axis

N80 …

Example 2:

;N10 is interpolated, the independent asynchronous Z axis

;continues its motion

N10 X10 Y11 Z[INDP_ASYN POS500 G01 FEED200 G90]

;N20 is interpolated, the independent asynchronous Z axis

;continues its motion

N20 X20 Y22

;Implicit synchronisation of Z motion of N10 before motion

;Z550 starts

N30 Z550

N40 X20 Y30 Z60  ;N40 is interpolated

N50 …

Example 3:

%dry_run

N100 X1 Y2 Z3                             ;IPO=3, LR=3, offset=0

N200 G01 X10 F100 Z[INDP_SYN POS=4 G01 G90 \

                    FEED=120 DRY_RUN]     ;IPO=4, LR=3, offset=1

N300 Y20 F1000

N350 Z[INDP_SYN POS=7 G00 G90]            ;IPO=7, LR=6, offset=1

N360 Z[INDP_SYN POS=4 G01 G91 \

       FEED=100 DRY_RUN]                  ;IPO=11, LR=6, offset=5

;Remove DRY_RUN offset

N001 #TIME 2

N111 #CHANNEL INIT[CMDPOS]                ;IPO=6, LR=6, offset=0

N222 #TIME 2

N400 Y10 Z5

M30