# Block number limiting via NC command

## Activating via NC command

Global variables are provided to define and select decoder block ahead limiting in the NC program.

2 (exclusive) block number limiting options are possible via variables:

V.G.MAX_NC_BLOCKS_AHEAD = <value>

This variable defines the maximum number of channel-related NC blocks (rows) by which the decoder may be ahead of the interpolator. Channel-related NC blocks are program rows that lead to further actions in the next NC channel (motion blocks, technology functions, switching commands).

Pure parameter calculations, empty rows and comment rows without block numbers are only processed at interpolator level and are ignored when the block ahead value is defined.

V.G.MAX_MOTION_BLOCKS_AHEAD = <value>

This variable defines the maximum number of NC motion blocks (G00, G01, G02/03) by which the decoder may be ahead of the interpolator. All other NC program rows are ignored when the block ahead value is defined.

Activate block ahead limiting by setting the V.G. variables to a value unequal to 0. Before you start block ahead limiting, set the decoder and interpolator to the same processing state in relation to the NC program, i.e. they should be synchronous. This can be achieved by:

- selecting block ahead limiting immediately at the start of the NC program or
- executing a #FLUSH WAIT immediately before selecting block ahead limiting

Block ahead limiting then remains active until main program end M30.

## Attention

Only one block ahead limiting option may be active at any one time. The error message P-ERR-21575 is output if variables are used at the same time.

## Block number limiting via NC command

If the value of these V.G variables is set to 0, limiting is deactivated again.

## Programing Example

Block number limiting via NC command

Block ahead limiting by definition in the NC program

%MAIN

N005 V.G.MAX_NC_BLOCKS_AHEAD = 10 ;Select block ahead limiting 10 NC blocks

N190 #HSC[ MODE 1 CONTERROR 0.01]

N270 G54 G90

…

N320 #HSC ON

N47200: G1 F4000 Y597.771 Z-5.596

N47210 Y597.343 Z-5.205

N47220 Y596.911 Z-4.861

N47230 Y596.475 Z-4.561

N47240 Y596.067 Z-4.321

N47250 Y595.643 Z-4.112

N47260 Y595.278 Z-3.965

N47270 Y594.905 Z-3.841

N47280 Y594.524 Z-3.747

N47290 Y594.136 Z-3.683

…

N47350 V.G.MAX_NC_BLOCKS_AHEAD = 0 ;Deselect block ahead limiting

…

N47449 #FLUSH WAIT ;Synchronise decoder and interpolator

N47450 V.G.MAX_MOTION_BLOCKS_AHEAD = 20 ;Select block ahead limiting 20 motion blocks

N47440 Y589.152 Z-5.735

N47450 Y588.76 Z-6.156

N47460 Y588.235 Z-6.767

N47470 Y587.299 Z-7.889

N47480 Y587.034 Z-8.198

N47490 Y586.768 Z-8.463

N47500 Y586.492 Z-8.686

N47510 Y586.235 Z-8.853

N47520 Y585.994 Z-8.971

N47530 Y585.791 Z-9.039

N475403 V.G.MAX_MOTION_BLOCKS_AHEAD = 0 ;Deselect block ahead limiting

…

N999999 M30