Fixture offsets are used on machining centers to assign program zero. Most controls come with a limited number of fixture offsets (Fanuc provides six fixture offsets as a standard number). If you"re running one workpiece per cycle, you"ll likely need one fixture offset. But the more workpieces you run per cycle, the more likely it is that the standard number of fixture offsets will be insufficient.
Consider for example a horizontal machining center that has a two-table pallet changing system. If you will be machining on four sides of the two pallets, and if you want to assign a different program zero point for each side, you"ll need eight fixture offsets. Note that most control manufacturers offer additional fixture offsets (Fanuc"s first option is 48 fixture offsets), but of course you"ll have to pay an additional price.
As long as your control has a way to enter offset values by programmed command (Fanuc uses G10 for this purpose), you"ll be able to assign as many program zero points as you wish (limited only by the number of programs your control can hold). And believe it or not, you"ll only need one fixture offset!
One way to accomplish this is to have a special subprogram for each program zero point you wish to assign. Instead of entering program zero assignment values into the fixture offsets as normal, the setup person will enter the program zero assignment values in these programs. Since it could get a little confusing, it"s wise to include a documenting message in parentheses at the beginning of each of these special programs to tell the operator which program zero point is being assigned.
Note that the X, Y and Z values of each G10 command contain the program zero assignment values. The L word specifies the fact that the G10 is setting fixture offsets (as opposed to tool offsets or parameters). Note that since the value of the L word changes even among Fanuc control models, you"ll have to confirm the L word number for your controls. The P word specifies which fixture offset is being set (number one in all cases). After the G10 command, note the G54 that invokes the fixture offset for which values have just been entered. In essence, one fixture offset is being used over and over again—you can repeat this technique for as many program zero points as you wish to assign.
In the main program, you"ll include a subprogram call to the appropriate subprogram whenever you wish to change the program zero point. The command: M98 P1003
For example, the programmer would enter the fixture offset values for the 180-degree side of pallet A and then invoke it. From this point, all programmed coordinates in the absolute mode will use program zero point for the point of origin.
While this technique is not as convenient as having the additional fixture offset option (program zero assignment is not separated from programs), it does effectively allow you to easily assign as many program zero points as you wish.
This example can be used with a two-pallet horizontal machining center when machining eight sides.
O1001 (Set 0-degree side of pallet A); G90 G10 P1 L2 X-12.2837 Y-10.2384
Z-10.1282; G54; M99.
O1002 (Set 90-degree side of pallet A); G90 G10 P1 L2 X-14.2487 Y-11.3455
Z-9.3334; G54; M99
O1003 (Set 180-degree side of pallet A); G90 G10 P1 L2 X-16.3433 Y-9.3478
Z-12.2478; G54; M99
O1004 (Set 270-degree side of pallet A); G90 G10 P1 L2 X-15.3358 Y-9.7765
Z-12.3489; G54; M99
O1005 (Set 0-degree side of pallet B); G90 G10 PI L2 X-11.2689 Y-9.3433
Z-8.4322; G54; M99
O1006 (Set 90-degree side of pallet B); G90 G10 P1 L2 X-9.4556 Y-12.4566
Z-9.3566; G54; M99
O1007 (Set 180-degree side of pallet B); G90 G10 PI L2 X-10.2344 Y-13.2343
Z-12.1245; G54; M99
O1008 (Set 270-degree side of pallet B); G90 G10 PI L2 X-12.2345 Y-9.0494
Z-11.3443; G54; M99