Flushing NC channel

Notice

The commands for flushing the NC-channel can not be used during contour modifying functions like e.g. active tool radius compensation, polynomial contouring or HSC-mode.

#FLUSH  (non-modal)

By the command #FLUSH all NC-blocks, stored in the NC-channel now, are executed. This means the buffer effect of the NC-channel is removed. So the last programmed traverse block before the #FLUSH is executed at once.

Generally at the end of this traverse block the movement is stopped, even if the next traverse block is already present in the Look-ahead. However, the decoding of the part program is continued without any interruption.

Programming example

If the statement #FLUSH is not programmed, the Look-ahead waits with the interpretation of the linear movement till the next traverse block appears. However, because subsequently a jump is made to the WHILE-loop, the execution of the traverse movement can be delayed. Therefore, with #FLUSH the buffer effect of the Look-ahead is neutralized, so that before the jump in the WHILE-loop, the traverse block is executed.

N10 G01 X20 
N20 #FLUSH
N30 $WHILE 1
...
Nnn $ENDWHILE
M30
#FLUSH CONTINUE  (non-modal)

By the addition CONTINUE the stopping at block end of a traverse movement can be avoided. If in the Look-ahead the next traverse block is already present, the movement is executed without any interruption. If no following traverse block is present, the movement is also stopped.

Programming example

Between the traverse blocks N10 and N200 a lot of non-movement relevant NC-blocks are programmed (e.g. extensive parameter calculation, variable declaration and so on). Because of that the execution of the traverse movement can be delayed in Look-ahead and the movement can be stopped at the end of N10. This can be avoided by #FLUSH CONTINUE. If at the end of N10 the next traverse block (N200) is present, the movement is executed without any interruption.

N10 G01 X200 
N20 #FLUSH CONTINUE
N30 P1 = [P2 * P3] + V.E...
...
N200 X250
M30