Description

Motivation and function

After an NC program is started, the individual NC blocks are continuously read

  1. by an interpreter module, called the decoder,
  2. converted into an internal representation and
  3. output to the NC channel for further processing.

In the NC channel, the data is then read in by further modules (tool radius compensation, path preparation, etc.), edited and passed through up to the interpolator.

Current processing of commands in the interpolator corresponds to the actual state of the machine, whereas the decoded commands correspond to the future state of the machine.

During program decoding, parameters (e.g. external variables) are read and depending on this, they run through different program sequences.

Decoder block ahead is not limited. As a result, the time may be very long between program influencing during decoding and program execution. For the user a parameter change that influences program decoding is only noticeable after a considerable delay in execution.

To keep this program influencing as close as possible in time to program execution, the decoder block ahead must be kept as short as possible, i.e. the user notices program influences within a relatively short period of time.

Decoder block ahead and NC channel memory effect
Decoder block ahead and NC channel memory effect

Limiting block ahead decoding

Therefore, due to the cascaded processing of NC blocks, program decoding is always ahead of actual execution/interpolation.

The number of NC blocks by which the decoder leads is not constant and is only limited indirectly by the number of available memory locations. As a result, the decoder block ahead is dependent on:

In the case of certain program sequences, the user would like to specify the maximum number of blocks that decoding may be ahead of the interpolator level, for example.

To achieve this, the decoder block ahead can be defined by:

Data to determine decoder block ahead
Data to determine decoder block ahead