Limitations, special cases

Limitation of the look-ahead range

The described look-ahead range is limited due to resource limitation and the requirement for the NC program to run up as soon as possible after start.

The default limits the maximum number of blocks considered for pre-output to 10 blocks; this can be set in P-CHAN-00603 (or in P-STUP-00061). Depending on the block length, this results in a maximum joint width.

If an M/H function is brought forward beyond the look-ahead range, the M/H function is only brought forward automatically as far as the look-ahead range permits.

Programing Example

prg_example

Limitation of the look-ahead range

%microjoint4

N01 G00 G90 X0 Y0

N02 G01 F10000

N03 V.G.M_FCT[100].PRE_OUTP_PATH = 28.6; in mm

N20 G91 Y1

N21 Y1  ; -> planned MicroJoint at Y1.4 mm

N22 Y1

N23 Y1

N24 Y1

N25 Y1

N37 Y1

N38 Y1

N39 Y1   ; -> real MicroJoint caused by block number limitation

N40 Y1

N41 Y1

N42 Y1

N43 Y1

N44 Y1

N45 Y1

N46 Y1

N47 Y1

N48 Y1

N49 Y1

N50 M100 M26

N99 M30

Limitation of the pre-output path of the M function to 10 blocks
Limitation of the pre-output path of the M function to 10 blocks

Explicit cancellation of the look-ahead range, #FLUSH, Read synchronous V.E. variable

The look-ahead range of M functions is reset by flushing the channel (#FLUSH or #FLUSH WAIT). In other words, the pre-output of M functions cannot be reversed beyond the #FLUSH point.

An implicit #FLUSH WAIT, i.e. the channel is flushed, can also be executed when a synchronous V.E variable (see [EXTV]) is read. A pre-output via the read access of a synchronous V.E. variable is therefore not possible either.

If an M/H function is brought forward beyond the look-ahead range, the M/H function is only brought forward automatically as far as the look-ahead range permits.

Programing Example

prg_example

Explicit cancellation of the look-ahead range, #FLUSH, Read synchronous V.E. variable

%microjoint6

N01 G00 G90 X0 Y0

N02 G01 F10000

N10 V.G.M_FCT[100].PRE_OUTP_PATH = 28.6; in mm

N20 G91 Y1

N21 Y1 ; -> planned MicroJoint at Y1.4 mm

N22 Y1

N23 Y1

N38 Y1

N39 Y1

N40 Y1

N41 Y1

N42 Y1

N43 Y1

N44 Y1

N400#FLUSH   ; -> MicroJoint inserted at Y24

N45 Y1

N46 Y1

N47 Y1

N48 Y1

N49 Y1

N50 M100 M26

N99 M30

Explicit limitation of the lead distance of the M function
Explicit limitation of the lead distance of the M function

"Overlapping" path-related pre-output

After a path-related pre-output of the M function is detected, all previously stored motion blocks are output. This corresponds to explicit flushing of the channel (see #FLUSH), thus avoiding delayed processing of the motion blocks.

As a result, it is not possible to overlap the path range of several M functions.

If pre-outputs of M/H functions overlap, the individual M/H functions are only brought forward automatically up to the originally programmed position.

Programing Example

prg_example

"Overlapping" path-related pre-output

%microjoint5

(* M100 – Laser off, M26 – Laser on *)

N01 G00 G90 X0 Y0

N02 G01 F10000

N03 V.G.M_FCT[101].PRE_OUTP_PATH = 5   ;in mm

N04 V.G.M_FCT[102].PRE_OUTP_PATH = 23

N05 V.G.M_FCT[103].PRE_OUTP_PATH = 31

N20 X10

N30 M101 M26

N40 X30

N50 M102 M26

N60 X40

N70 M103 M26

N80 M30

Theoretical overlapping of MicroJoints in the part
Theoretical overlapping of MicroJoints in the part
Limitation of overlapping of MicroJoints in the part
Limitation of overlapping of MicroJoints in the part

Combination of MNS_SNS with and without pre-output path

Programing Example

prg_example

Combination of MNS_SNS with and without pre-output path

%microjoint9

N01 G01 G90 X0 Y0 F10000

N02 V.G.M_FCT[100].PRE_OUTP_PATH = 35.6; in mm

N04 V.G.M_FCT[100].SYNCH = 8 ;MNS_SNS

N04 V.G.M_FCT[200].SYNCH = 8 ;MNS_SNS

N20 X10

N40 X30 M100 M200

N60 X40

N99 M30

Pre-output between output and synchronisation points of an MVS_SNS

It is not possible to insert an M/H function of synchronisation type MVS_SNS between output and synchronisation points. The pre-output of the M/H function is then only brought forward up to synchronisation point of the MCS_SNS at the most.

Programing Example

prg_example

Pre-output of another M/H function of the MVS_SNS type

The example below shows an attemptyto move M100 between the output and synchronisation points of the M200 (an MVS_SNS with motion). In this case, M100 is not output as required at X9 but at the end of N10, i.e. at X10.

N01 G01 G90 X0 Y0 F1000

(Definitions of M functions)

N02 V.G.M_FCT[100].PRE_OUTP_PATH = 21.0

N03 V.G.M_FCT[100].SYNCH = 2  ; MVS_SVS

N04 V.G.M_FCT[200].SYNCH = 4  ; MVS_SNS

N10 X10 M200

N20 X30

N30 X40 M100

N40 X0 Y0

N50 M30

Attempted pre-output with another M/H function of the MVS_SNS type
Attempted pre-output with another M/H function of the MVS_SNS type