Disclaimer: CNC Concepts, Inc. accepts no responsibility for the use
or misuse of techniques shown in this web page. We simply publish information
we feel will be of interest to CNC users. In all cases, the reader is totally
responsible for considering the implications, good and bad, of implementing one
or more of the techniques we show.
Safe Index Position For CNC Machining Centers
by Steve Wood, Laconia, N.H.
I recently encountered your web site and have been reading the material
therein. Eventually I encountered the comments about the amount of time lost to
wasted rapid moves. Absolutely correct! To that end I would like to describe a
technique that has worked well for me. The question: On a horizontal milling
center, how far away from the work piece must the Z axis be positioned to allow
a ³safe² pallet index?
The safest Z axis position prior to a pallet index is Z home. This can
result in tool being a long way from the work after the pallet index. To save
time the least amount of retract must be determined.
The following code allows the machine to calculate the safe index position
based on predetermined values stored in the #500 variables and the tool length
variable. This runs on a Fanuc 16MB driving a Mori SH-50 Horizontal. It should
work on most Macro B systems where access to system variables are allowed. The
following system conditions and variables must be known.
1) The distance from the spindle gage line to the center of
pallet rotation when the Z axis is at the home position. This generally found
in the machine specifications or in most sales brochures.
2) The maximum work piece swing diameter when the pallet
indexes. This is also a machine spec and also found in the sales brochures.
This method also assumes that all tool offset values are positive lengths.
Store the spindle gage line distance in one of the #500 permanent common
variables. I use #529 . I use this value for other applications. Store the
RADIUS value of the max swing diameter plus 1 inch in variable #530. Both #529
and #530 are positive values. The CNC code is:
G0 G90 G53 Z-[#529-#530-#5083]
Place this line in the program after the work is completed on a particular
pallet side, but before any tool length cancel codes are called. The #5083
system variable contains the currently active tool length value. G53 is a one
shot G code positioning the Z axis along machine coordinates. Obviously this
line of code must never be a start up line. The #5083 register is set to zero
on a reset or tool length cancel. The net effect is to place any tool tip 1
inch outside the max swing radius of the pallet. After the pallet indexes,
position the tool as is necessary and go back to work. The 1 inch value that I
use could be more or less depending on your comfort level.
To lessen the chance of an accident I recently wrote this macro. I replace
the line G0 G90 G53 Z-[#539-#530-#5083] with G153 R15. To use
G153, set the G code creating parameter for program O9011 to 153.
O9011 (TOOL RETRACT)
#1=#4001 (STORE CURRENT STATE OF G0/G1)
#3=#4003 (STORE CURRENT STATE OF G90/G91)
IF[#5083 EQ 0] GOTO 99 (IF TOOL LENGTH VALUE IS ZERO.DON'T DO ANYTHING)
IF[#18 EQ#0] GOTO 1 (CHECK FOR R VALUE)
IF[#18 LT 10.] THEN #3000=99(*YIKES* R VALUE IS TO SMALL )
(NEVER ALLOW TOOL TIP ANY CLOSER THAN 10 INCHES TO THE PALLET CENTER)
G0 G90 G53 Z-[#529-#18-#5083] (RETRACT TOOL TO R RADIUS POSITION)
N1G0 G90 G53 Z-[#529-#530-#5083] (RETRACT TO FIXED RADIUS POINT)
N2 G#1 G#3 (RESTORE GRP 1 AND 3 STATES)
The R parameter is used to override the fixed retract radius position. If R
is not declared then then the retract position is fixed by the #530 variable.