Reference Point of CNC Machines

3X M6x0,75 








During every part setup, two major locations, called reference points, have to be carefully managed. Those are points that establish the relationship between the known reference point of the machine (machine zero) and the unknown reference point of the part (part zero). 

Although many CNC machines equipped with such really old control may still be used in many shops, their numbers are dwindling rapidly. All Fanuc controls still support the G92 and G50 commands, but only for compatibility with older controls. This support may last for a while, but is certainly not assured in the future. As many programmers will attest, the main difficulty using the Position Register command was a requirement that the current tool position is written in the program itself, generally as a separate program block, for example: 




Note: Holes are identified for reference only 

G92 X250.0 Y200.0 

Machine Zero 

Reference point of any CNC machine has been selected at a specific fixed point during the initial machine design, by the machine design engineers. It is a fixed point, located within machine travel limits, and its actual position does not normally change. This point (position) is typically called the machine reference point, machine zero, or simply - the home position. 

From the example above, the part zero is at the lower corner of the part in X and Y axes, and at the top face for the Z-axis. In this case, part zero matches the dimensioning method. What would be more natural than include the following instruction in the program to rapid to the first hole at lower left? 


How do work offsets actually work? Let's look at the same three hole example, also used for later topics. 

In the introduction to this chapter, G92 was identified as the current tool position always measured from pro gram zero for each axis. Since this position was not normally known at the time of program development, the G92 method presented many difficulties. The purpose of work offsets is to establish the relationship between the two origins - machine zero and part zero - in a much more practical way. While the G92 settings were measured from program zero to the current tool position, work offsets are based on a totally different principle: 

The above example 'tells' the control system that the current position of active tool (its command point) is distant 250 mm from part zero along the X-axis and, at the same time, 200 mm distant from part zero in the Y-axis. Sounds simple? Probably, but the simplicity can be misleading. The main problem a CNC programmer faces when using G92/G50 command is plain reality. The problem is that the current position of the active tool is not always known when the program is being developed. For many years now, modern control systems use a different system of relationship between various origins. It is called work coordinate system - or, in common conversation - work offset. 

Part Zero 

The second reference point that has to be managed during setup is selected by the CNC programmer, during program development for a particular part. This part related reference point is selected at a suitable location of the part and is called the program zero or - more accurately - part zero. 

G90 GOO x10.0 78.0 

Work offset is always measured FROM machine zero TO part zero, along each axis 

Part zero is the origin of all point locations 

as specified in the CNC program 

The question should be - where is the X10.0 and Y8.0 measured from? Yes, from the part zero in absolute mode (G90) - but there is a very major problem - the control system has its own zero - it is called the machine reference point or machine zero - it does not have any information about the part zero location at all. The result of this program statement will be over-travel. The control system will use the only zero it 'knows' and uses it as the basis for the motion. Since both X and Y values are positive, the motion will try to go into the area outside of the machine limits. 

Both origins in the following illustration - Program zero and machine zero - are shown. Note that they are both identified as XOYO and also note that there is no known connection between the two origins, so the cutting tool will try to travel to X10.0 Y8.0 from the known machine zero, rather than from the unknown program zero. The result will be an over-travel condition. 

To solve the problem, program must use a work offset. 

For any CNC machining, during part setup, a connection between these two points has to be established. 

This simple statement identifies the major difference from the old method - while making the position register work was equally split between the CNC programmer and CNC machine operator, handling work offsets is primarily in the hands of the CNC operator. Programmer still has some responsibility - the program must contain a special preparatory command that selects the work off set required for the part setup. 

The programmer has at his or her disposal several standard work offsets, as well as many additional ones, that can can be added as an option to the control system, 

Selection of any work offset is done by programming an appropriate preparatory command. 

Machine Zero to Part Zero Connection 

In the early days of numerical control, G92 preparatory programming command (G50 on lathes) - called Position Register command - had been the primary method of setting actual tool position. 

The command definition was quite simple: 


Before getting deeper into the subject of work offsets, it is important that you know why the work offsets are required at all. Consider the very simple part presented on the next page. It contains three holes that have to be spot drilled, drilled and tapped - all very common operations. 

When the CNC programmer receives a part drawing and material specifications, all program data will be based on that drawing - there is no other source. 

Keep in mind that the programmer selects part zero based on the dimensions provided by the design engineer. The objective of the program is to maintain specified drawing dimensions at all times. In some cases, the part zero will correspond to the origin of all - or most - dimensions. In other cases, the programmer selects part zero based on other criteria, such as convenience of the setup at the machine. 

The main purpose of work offsets is to provide connection between the two origins (zeros) 

G92 (650) program command registers the current position of any active tool, as measured 

from part zero (part origin) 

| 73 

CNC Control Setup for Milling and Turning 


gram itself. This is rather a bad practice in programming, and one advice is equally applicable to both - programming and operation: 

Never count on default settings! 

As a rule, always make sure the required work offset command is specified in the program. 

Preparatory Commands G54-G59 

Modern controls provide six standard work offsets, using the preparatory commands G54 to G59: G54 ... Work offset 01 G55 ... Work offset 02 G56 ... Work offset 03 G57 ... Work offset 04 G58 ... Work offset 05 G59 ... Work offset 06 

Each work offset can be set for up to six different parts located within the machine work area. As most jobs on a vertical machining center require only one work offset, the following explanations will relate to the first offset in the group - G54 work offset - although the general logic applies equally to all work offsets. 

Establishing the Connection 

Just like two excellent solo musicians have to match their individual strengths in a duo performance, two zero locations have to be reconciled for desired results. There is only one simple requirement - making the tool motion to travel to the actual position represented by the program. To achieve this objective, a connection between the machine zero and the part zero must be established. The control system provides at least six work offsets for exactly that purpose and the CNC programmer selects the one or more required for the job. 

How Does G54 Work? 

Although G54 is used for the most common applications, any other work offset uses the same principle. If you understand how G54 works, you should have no problem to understand any other work offset. 

G54 in X-axis — 



Is G54 Work Offset the Default ? 

If you were following this chapter from its beginning, you may have actually tried the programmed motion at your CNC machine: 

G90 G00 x10.0 48.0 

What did happen? Did the motion over-travel? Did it work just right? These questions reflect the variety of several possibilities. 

G54 work offset has to be set first, by measuring X and Y distances first, then entering the measured data into an offset register. Once the CNC operator sets the work off set as the distance between machine zero and part zero, the tool motion should end at the position that matches the drawing dimension. If the motion is activated before the work offset has been set, the tool motion will result in over-travel. 

Another question is also important when the operator interprets the program. It is not unusual to find that a particular program does not contain any work offset at all. So, what happens if the work offset command is missing in the program? 

Some CNC programmers often rely only on the control system's default settings: 

454 in Y-axis




Default is a condition that 'assumes' certain settings, unless they are specifically included in the program 

The illustration above shows one important change from the previous illustration - it shows very specific and defined connection between the machine zero and the part zero. As stated previously, 

Providing the G54 work offset is correctly set and the control uses default=G54, the tool will still move to the correct part location, even if G54 is omitted in the pro 

Work offsets are always measured from MACHINE ZERO to PART ZERO