P5: Oscillation
12.5 Examples
Program code
WHENEVER ($AC_MARKER[2] == 0) AND $AA_IW[Z]>$SA_OSCILL_REVERSE_POS1[Z])
DO $AC_MARKER[1]=0
; always, when
;
;
; then
;
;
WHENEVER $AA_IW[Z]<$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0 $AC_MARKER[0]=0
;
; always, when
;
; then
;
;
;
WHENEVER $AA_IW[Z]==$SA_OSCILL_REVERSE_POS1[Z] DO $AA_OVR[Z]=0 $AA_OVR[X]=100
;
; always, when
;
; then
;
WHENEVER $AA_DTEPW[X]==0 DO $AC_MARKER[0]=1 $AC_MARKER[1]=1
;
; always, when
; then
;
;
WHENEVER $AC_MARKER[0]==1 DO $AA_OVR[X]=0
;
; always, when
; then
;
;
;
;
;
WHENEVER $AC_MARKER[1]==1 DO $AA_OVR[X]=0 $AA_OVR[Z]=100
;
; When
;
; then
;
;
724
Comment
the current position of the oscillating axis
is less than the start of reversal range 2
set the axial override of the feed axis
to 0 and set the marker with index 0 to
0
the current position of the oscillating axis
is equal to the reversal position 1,
set the axial override of the oscillating axis
to 0 and set the axial override of the
infeed axis to 100% (so that the
previous synchronized action is cancelled!)
the distance-to-go of the partial infeed equals
0
Set the marker with index 0 to 1 and
set the marker with index 1 to 1 and
the marker with index 0 equals 1,
set the axial override of the feed axis
to 0 to prevent a new premature
infeed!
the marker with index 1 equals 1,
set the axial override of the feed axis
to 0 (to prevent a new premature
infeed!) and set the
axial override of the oscillation axis to 100%
(so that the previous
synchronized action is canceled!)
the current position of the oscillating axis
is equal to the reversal position 1,
reset the marker with index 2,
release the first synchronized action (no
infeed when reaching the start position
Function Manual, 10/2015, 6FC5397-1BP40-5BA3
Extended Functions