What's new
What's new

Setting Work Offsets on an Older Fanuc 0T

WakelessFoil

Aluminum
Joined
Aug 18, 2020
I am trying to learn how to use work offsets to free me from having to program everything in absolute. These older Fanuc controls do not use G54 work offsets. When I was using our CNC mill with a 3M control, I got around this by using legacy code G92, which in layman's terms sets the current tool position to whatever value you wish it to be.

EX:
G0 X-22.0 Y-10.0 Z-1.0 (RAPID TO OFFSET);
G92 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

I can not use this same code with the 0T control on the lathe as G92 is used for a type of thread cycle. Is there any simple way to write a similar function for the 0T? I know there is a comprehensive work offset function built into each control (seemingly all different) but I am having trouble understanding that too.
 

DouglasJRizzo

Titanium
Joined
Jun 7, 2011
Location
Ramsey, NJ.
Most Fanuc "T" series controls have at least one work coordinate.
If none are present, "G50" is used - or - you can use the tool offsets for "No G50" programming.
Poke around in the control and there's probably one work coordinate there.
 

wmpy

Hot Rolled
Joined
Dec 16, 2011
It might be helpful to know what machine you're working on. For a simple lathe, you should only need to set a work offset for the Z axis. On the machines I have with 0T controls, you can do this with the "Work Shift". Keep pressing the Offset key until you get to the work shift page. I like to touch the front of the turret to the finished face of the part. Then type MZ0 Input to set that as Z0. Then touch off all your tools to set the tool geometry offsets. The number in your Z geometry offset should be, for example, + 1.500" if your tool sticks out 1.5" from the turret. If the tool is behind the turret, the value will be negative.

If I need to have multiple work offsets for a job, I change the value of the work shift in the program by using G10. It doesn't sound like that is what you are asking about, though.
 

WakelessFoil

Aluminum
Joined
Aug 18, 2020
Most Fanuc "T" series controls have at least one work coordinate.
If none are present, "G50" is used - or - you can use the tool offsets for "No G50" programming.
Poke around in the control and there's probably one work coordinate there.
I will look into G50, it would really help to see a basic example of this code being used in text.
Why does this not work? Other offsets in control of the first move?
This does not work because the 0T control uses G92 for a different function. Over the years Fanuc kept updating their G code standard to allow new features and operations. So like said above I must look into G50.
 

DouglasJRizzo

Titanium
Joined
Jun 7, 2011
Location
Ramsey, NJ.
I will look into G50, it would really help to see a basic example of this code being used in text.

This does not work because the 0T control uses G92 for a different function. Over the years Fanuc kept updating their G code standard to allow new features and operations. So like said above I must look into G50.
I've had 0-T controls use G50 with G92 for threading depending on which "G Code system" the control is set to.
 

angelw

Diamond
Joined
Sep 10, 2010
Location
Victoria Australia
I will look into G50, it would really help to see a basic example of this code being used in text.

This does not work because the 0T control uses G92 for a different function. Over the years Fanuc kept updating their G code standard to allow new features and operations. So like said above I must look into G50.
G50 is not a case of Fanuc updating their G codes over time, G50 is part of the conventional G Code list since day dot.

G50, in relation to a Lathe Control, has the same function as that you're use to, as G92 has for a Mill Control; both are used to set the Work Coordinate System. In addition, G50 with the Lathe Control, is used to clamp the Maximum RPM when Constant Surface Speed Control (G96) is used. This is useful when machining a part that is out of balance, an asymmetrical casting for example. When facing such a part, where the tool is starting from a large diameter and machining into X0.0, when Constant Surface Speed is in mode, the Control will continually vary the RPM of the spindle to maintain the CSS that has been programmed. For example, if a Surface Speed of 200 Metres per Minute were to be programmed, at a start diameter of 150mm, the Spindle Speed would be 424 RPM. When the tool gets to a diameter of 1mm during the facing operation, the RPM would be, in theory, 63,662. Of course, when the machine is not capable of the calculated RPM, it will rev out to the maximum capable for the machine. The lower, maximum RPM of the machine may still be way too high for an out of balance workpiece and it could put the machine and operator in danger of damage and injury respectively. Accordingly, G50, used in conjunction with an "S" code, will clamp the Maximum RPM of the spindle to the "S" Code value specified. For example, G50 S1000 will limit the maximum Spindle RPM to 1000 in CSS Mode.

There are some Control makes that used the same basic G Code System for both Lathe and Mill Controls; Cincinnati is one that springs to mind. Fanuc supply their controls to a myriad of Machine Tool Builders and one of three "G" code systems can be used by parameter setting; these "G" Code Systems are designated System A, B and C. System "A" is the most common default and uses G50 in place of G92, for setting the Work Coordinate System, G Code Systems B and C use G codes that are a closer match to those you're familiar with when using the 3M control.

In the example code you listed in your first Post; copied following:

G0 X-22.0 Y-10.0 Z-1.0 (RAPID TO OFFSET);
G92 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

I assume that the G0 X-22.0 Y-10.0 Z-1.0 block would have been executed in Incremental Mode (G91) to a point X-22.0 Y-10.0 Z-1.0 away from the Reference Return position for each axis. With Lathe Control that uses G50 to set the Work Coordinate System (G Code System A), G90 and G91 are not available to set Absolute and Incremental Mode respectively. Instead, U and W are used to specify an Incremental move in the X and Z axis respectively. Therefore, to translate your above Code for use with G Code System "A" and G50 to set the Work Coodinate System, it will be as follows:

G28 U0.0 W0.0 (PROGRAMMATICALLY REFERENCE RETURN THE X AND Z Axis)
G0 U-22.0 W-1.0 (RAPID TO OFFSET);
G50 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

When using G50 (or G92 when G Code System B or C is set via parameter) care needs to be taken that the G50 X_ _ Z_ _ is specified at the same location each time. The above code, using the G28 Block to Reference Return the Axes will ensure that is the case.

The very early 0T controls didn't have a Work Shift option and G50 had to be used to set the Work Coordinate System and those that did, because G10 is an Option, that feature for changing the Work Shift was frequently unavailable.

On the early OT controls, by setting parameter bit 10.7 to "1", the Work Coordinate System is set when a Manual Reference Return is performed (normally when the Control is first turned on). When this bit is set to "1", values set in parameter 708 and 709 are used to set the Work Coordinate System for X and Z respectively. Obviously, care needs to be taken that the Z parameter (709) is changed to correspond to the change of the Z Zero position of a new job.

If, for example, the values of 250.25 and 300.6 were to be registered in parameters 708 and 709 respectively and parameter bit 10.7 set to "1", executing a Manual Reference Return, would be the same as executing the following in either MDI or in a program:

G28 U0.0 W0.0
G50 X250.25 Z300.6

Regards,

Bill
 
Last edited:

WakelessFoil

Aluminum
Joined
Aug 18, 2020
G50 is not a case of Fanuc updating their G codes over time, G50 is part of the conventional G Code list since day dot.

G50, in relation to a Lathe Control, has the same function as that you're use to, as G92 has for a Mill Control; both are used to set the Work Coordinate System. In addition, G50 with the Lathe Control, is used to clamp the Maximum RPM when Constant Surface Speed Control (G96) is used. This is useful when machining a part that is out of balance, an asymmetrical casting for example. When facing such a part, where the tool is starting from a large diameter and machining into X0.0, when Constant Surface Speed is in mode, the Control will continually vary the RPM of the spindle to maintain the CSS that has been programmed. For example, if a Surface Speed of 200 Metres per Minute were to be programmed, at a start diameter of 150mm, the Spindle Speed would be 424 RPM. When the tool gets to a diameter of 1mm during the facing operation, the RPM would be, in theory, 63,662. Of course, when the machine is not capable of the calculated RPM, it will rev out to the maximum capable for the machine. The lower, maximum RPM of the machine may still be way too high for an out of balance workpiece and it could put the machine and operator in danger of damage and injury respectively. Accordingly, G50, used in conjunction with an "S" code, will clamp the Maximum RPM of the spindle to the "S" Code value specified. For example, G50 S1000 will limit the maximum Spindle RPM to 1000 in CSS Mode.

There are some Control makes that used the same basic G Code System for both Lathe and Mill Controls; Cincinnati is one that springs to mind. Fanuc supply their controls to a myriad of Machine Tool Builders and one of three "G" code systems can be used by parameter setting; these "G" Code Systems are designated System A, B and C. System "A" is the most common default and uses G50 in place of G92, for setting the Work Coordinate System, G Code Systems B and C use G codes that are a closer match to those you're familiar with when using the 3M control.

In the example code you listed in your first Post; copied following:

G0 X-22.0 Y-10.0 Z-1.0 (RAPID TO OFFSET);
G92 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

I assume that the G0 X-22.0 Y-10.0 Z-1.0 block would have been executed in Incremental Mode (G91) to a point X-22.0 Y-10.0 Z-1.0 away from the Reference Return position for each axis. With Lathe Control that uses G50 to set the Work Coordinate System (G Code System A), G90 and G91 are not available to set Absolute and Incremental Mode respectively. Instead, U and W are used to specify an Incremental move in the X and Z axis respectively. Therefore, to translate your above Code for use with G Code System "A" and G50 to set the Work Coodinate System, it will be as follows:

G28 U0.0 W0.0 (PROGRAMMATICALLY REFERENCE RETURN THE X AND Z Axis)
G0 U-22.0 W-1.0 (RAPID TO OFFSET);
G50 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

When using G50 (or G92 when G Code System B or C is set via parameter) care needs to be taken that the G50 X_ _ Z_ _ is specified at the same location each time. The above code, using the G28 Block to Reference Return the Axes will ensure that is the case.

The very early 0T controls didn't have a Work Shift option and G50 had to be used to set the Work Coordinate System and those that did, because G10 is an Option, that feature for changing the Work Shift was frequently unavailable.

On the early OT controls, by setting parameter bit 10.7 to "1", the Work Coordinate System is set when a Manual Reference Return is performed (normally when the Control is first turned on). When this bit is set to "1", values set in parameter 708 and 709 are used to set the Work Coordinate System for X and Z respectively. Obviously, care needs to be taken that the Z parameter (709) is changed to correspond to the change of the Z Zero position of a new job.

If, for example, the values of 250.25 and 300.6 were to be registered in parameters 708 and 709 respectively and parameter bit 10.7 set to "1", executing a Manual Reference Return, would be the same as executing the following in either MDI or in a program:

G28 U0.0 W0.0
G50 X250.25 Z300.6

Regards,

Bill
Thanks Bill, this is not the first time you have given us a valuable lesson on these old Fanuc machines. I did not know there are three different G code standards, or that they are switchable via parameter settings.

When I use G92 for the 3M mill, I will design my part in software and then sandwich the CAM generated code between an "offset set" and an "offset return". This ensures that when the cycle (or a new program) is run again the tool is right back where it was before I ever set the offset.

EX:
G0 X-22.0 Y-10.0 Z-1.0 (RAPID TO OFFSET);
G92 X0 Y0 Z0 (SET CURRENT POINT AS ORIGIN);

(CAM PRODUCED GCODE);

G0 X0 Y0 Z0 (RAPID BACK TO ORIGIN);
G92 X-22.0 Y-10.0 Z-1.0 (RESET TO DISTANCE FROM HOME);


I know this is not the conventional way of using work offsets but it was the way that made the most sense to me and was easiest to implement. I want to learn how to use offsets the conventional way (along with the tool offsets and all) using G50. I have been watching videos on this subject and it has my head spinning slightly.

The U and W functions confuse me a bit too. Every time you make a movement in terms of U and W, the origin for U and W is reset to where the tool started, it is truly incremental. Like saying "X move this amount in this direction" each time.
 

WakelessFoil

Aluminum
Joined
Aug 18, 2020
I don't know jack about setting offsets on a mill. I do know that a call to Fanuc can be very helpful.
Similar to lathe but you have 3 axis. Bring tool in and touch off on three sides of one corner of the workpiece. I usually set origin to be a corner so the tool is at the origin when its centered on that corner and level with the face of the part.
 

Fadriver

Aluminum
Joined
Apr 24, 2011
Location
los angels ca.
I am trying to learn how to use work offsets to free me from having to program everything in absolute. These older Fanuc controls do not use G54 work offsets. When I was using our CNC mill with a 3M control, I got around this by using legacy code G92, which in layman's terms sets the current tool position to whatever value you wish it to be.

EX:
G0 X-22.0 Y-10.0 Z-1.0 (RAPID TO OFFSET);
G92 X0 Y0 Z0 (SET CURRENT POINT AS NEW ORIGIN);
(REST OF PROGRAM)

I can not use this same code with the 0T control on the lathe as G92 is used for a type of thread cycle. Is there any simple way to write a similar function for the 0T? I know there is a comprehensive work offset function built into each control (seemingly all different) but I am having trouble understanding that too.
As far mills go, those older fanuc have already built in the g54,g55, etc, find the parameter #
and change it, for lathe i have 2 old fanuc lathes , but i use absolute, simple thing, in ot, you
can expand memory 900 parameters , several years back somebody put parameters on internet
i never copied because on my machines were open by tool dealer, my equipment came from big factory auction.
 

706jim

Stainless
Joined
Jun 14, 2006
Location
Thunder Bay Canada
FWIW your lathe works from spindle centerline for X distances. Once the work coordinate system has been set to this absolute X value it should never change. Meaning you only have to consider the Z offset either absolute or use G50 if you prefer that.

OTA user
 

Fadriver

Aluminum
Joined
Apr 24, 2011
Location
los angels ca.
FWIW your lathe works from spindle centerline for X distances. Once the work coordinate system has been set to this absolute X value it should never change. Meaning you only have to consider the Z offset either absolute or use G50 if you prefer that.

OTA user
But somehow i had to turn a parameter to a zero value, since then all tools set, only changes Z
offset value, unless you remove tool, need to measure and set, no need to go home, after a trail cut, jog turret back a few inches, reset control and re-start at specified tool, ot controls so simple and productive compared to 10t, no expierence on 18t, have a friend uses ot and 18t, and they measure tools and store values inside program, at g50, that thing is prone to errors input values by hand,to me is weird system, i tell them should set as mx, mz, they are stored in offset and home free, they are old fashion they think you should not mess parameter settings. in his 6m mills same thing measure set
offset and record paper and pen then imput
 








 
Top