Program code Comment
WHENEVER $AA_IM[Z]>=$SA_OSCILL_REVERSE_POS2[Z]
DO $AA_OVR[Z]=0
; If the actual position of the os-
cillating axis Z in MCS is greater
than the reversal position 2, then
always set the axial override of the
oscillating axis Z to 0%.
WHENEVER $AA_DTEPW[X] == 0 DO $AC_MARKER[0]=1 ; If the remaining distance to go of
the partial infeed is 0, then always
set the bit memory with index 0 to
the value 1.
WHENEVER $AC_MARKER[0]==1 DO $AA_OVR[X]=0
$AA_OVR[Z]=100
; Whenever the bit memory with index
0 is equal to 1, then set the axial
override of the infeed axis X to 0%.
As a consequence, a premature infeed
is prevented (oscillating axis Z has
still not left reversal area 2, but
infeed axis X is ready for a new in-
feed). Set the axial override of os-
cillating axis Z from 0% (action of
the 2nd synchronized action) back to
100% to move.
-> must be programmed in a single block
3. Start oscillation
Program code Comment
OSCILL[Z]=(X) POSP[X]=(5,1,1) ; Start the axes
Oscillating axis Z is assigned ax-
is X as infeed axis.
Up to end position 5, axis X
should travel in steps of 1.
M30 ; End of program
Further information
1. Define oscillation parameters
The parameters for oscillation should be defined before the movement block containing the
assignment of infeed and oscillating axes and the infeed definition (see "Asynchronized
oscillation").
2. Define motion-synchronized actions
The following synchronization conditions can be defined:
Suppress infeed until the oscillating axis is located within a reversal area
(ii1, ii2) or at a reversal point (U1, U2).
Stop oscillation motion during infeed at reversal point.
Restart oscillation movement on completion of partial infeed. Define
start of next partial infeed.
3. Assign oscillating and infeed axes as well as partial and complete infeed.
Work preparation
3.18 Oscillation
NC programming
958 Programming Manual, 12/2019, 6FC5398-2EP40-0BA0