Introduction

The possibility to move forward or backward on path is made available by saving the prepared commands (channel blocks) and just passing the channel blocks in the requested order to be executed by the interpolator.

Following modes are possible, which can be selected through the PLC-interface:

Following interfaces are present:

Introduction 1:
Figure 1-1: Interfaces of “forward/backward on path”

Internal sequence

Subsequent picture illustrates the internal implementation of moving forward/backward on path. All decoded NC-blocks are saved in a buffer and passed to the interpolator. If moved backward the already prepared commands are inverted and executed in opposite order.

Introduction 2:

The NC-program itself is not decoded in reverse direction!

After decoding of program all branches, conditions and loops are broken down to an linear sequence.

Within the backward storage this linear program can be moved in forward or backward direction. Therefore, any external influence during decoding, e.g. the actual value of an external variable for break of loop condition within the NC-program, is not considered a second time while moving backwards.

Real time influences like feed hold, override and single block operate as normal, because their effect is considered by the interpolator at each time.

Introduction 3:
Figure 1-2:Saving backward commands and passing to interpolator on demand

Example: Backward storage size

The size of the supplied backward storage can be given by P-STUP-00033 (fb_storage_size) in the startup parameter list [STUP]. The NC checks during startup if the minimum necessary size is given. If this is not the case, a warning is issued and the memory size is set to the required minimum value. If the size is set to 0, the forward/ backward functionality is totally turned off.

The maximum size is just limit by the resources of the automation device (e.g. IPC) itself.

For the configuration of the CNC the minimum size for the backward storage is about 210 KByte. Necessary setting of the storage size in the startup list:

fb_storage_size[0] 0x200000

Introduction 4:

Introduction 5:

For the backward moving a storage size > 1 MByte should be configurated. As a general rule calculate: 1 NC-block≈1KByte

Synchronization of M-functions

By default, all M-functions are executed without synchronization in backward/ forward on path mode. If synchronization is wanted, during parametrization of the synchronization type of the M-function an additional bit can be set. If this bit is set, in backward direction M-function will be synchronized always by MVS_SVS [CHAN]. In forward direction their original synchronization mode like in normal execution will be kept.

Following synchronization types for the M-functions during forward/ backward on path are necessary.

BWD_SYNCH 0x400000
FWD_SYNCH 0x800000

They must be set in addition to the other available synchronization types for M-functions in the channel parameter list (P-CHAN-00041).

Example

M2, M101 and M102 are synchronized in backward direction:

m_synch[2]         0x00400002
m_synch[101]       0x00400002
m_synch[102]       0x00400004

M103 and M104 are synchronized in simulated forward direction:

m_synch[103]       0x00800002
m_synch[104]       0x00800004

M105 is synchronized in simulated forward and backward direction:

m_synch[105]       0x00C00002