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 move-ment 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