Setting the Work Offset on Siemens SINUMERIK: G54, Zero Offsets and Measuring Cycles (840D sl / 828D)

3 August 2026

Mentor CNC Editör Ekibi

Why do you set a work offset at all?

When you switch the machine on and reference the axes, positions are counted in the machine coordinate system. That is the only thing the machine knows: its own zero. But you do not write the program from the machine’s zero — you write it from a point on the part: a corner, a hole centre, a face.

Setting the work offset tells the control “the part’s zero point sits here in machine coordinates”. The control stores that difference as a zero offset and adds it to every coordinate while the program runs.

Get this wrong and a perfectly good program scraps the part — or drives the tool into a clamp. It is the most critical step of setup.

What this page covers.How zero offsets are structured on SINUMERIK (G54…G57 and G505…G599), the difference between coarse and fine offsets, classic touch-off setting, measuring a corner and an edge with a probe in JOG mode, when to use which method, and the mistakes that cost the most.

Three terms, kept apart

Machine zero (M)

The machine’s own fixed zero. You cannot change it. After referencing, all axis positions are counted from it.

Reference point (R)

The point at which the control learns where the axes actually are. Until the axes are referenced after power-on, position data is not trustworthy.

Work zero (W)

The point you write the program from. You choose it — a corner of the part, the centre of a bore, the top face. The setting procedure answers exactly one question: where does the work zero sit relative to machine zero?

A zero offset is more than a shift.On SINUMERIK a zero offset is a frame; besides translation it also carries rotation, scaling and mirroring components. That is why, if you could not clamp the part perfectly parallel to the table, the control can write the angular deviation into the offset as well — no hours of dialling the part in. More on that below.

Zero offsets on SINUMERIK: G54…G57 and G505…G599

Coming from Fanuc you are used to G54–G59. On SINUMERIK the first four are the same, but there are far more of them and the numbering runs differently.

CommandData storage frameMeaning
G500$P_UIFR[0]Deactivates all settable zero offsets
G54$P_UIFR[1]1st zero offset
G55$P_UIFR[2]2nd zero offset
G56$P_UIFR[3]3rd zero offset
G57$P_UIFR[4]4th zero offset
G505$P_UIFR[5]5th zero offset
G506…G599$P_UIFR[6]…[99]6th…99th zero offsets

So SINUMERIK allows up to 99 settable zero offsets. How many are actually enabled is set by machine data; not all of them will exist on your machine.

The offset currently active is held in $P_IFRAME. On screen you can see which one is in force from the active G code.

Where are G58 and G59?Fanuc habits send people looking for them, but on SINUMERIK those codes are not settable zero offsets — they write axial components of the programmable offset. The settable series continues from G57 with G505.

Coarse and fine offsets

On most machines the zero offset table shows two columns per axis: coarse and fine.

OffsetCommandBehaviour
Coarse offsetCTRANSAn absolute offset. The value you find when setting goes here.
Fine offsetCFINEAn additive offset. It is added on top of the coarse value.
Total offset = coarse offset + fine offset

In practice: you set the offset, machine the first part, measure it and find 0.03 mm out in Z. Rather than touching the coarse value you type -0.03 into the fine column. Your original setting value stays intact, your correction sits separately, and undoing it means clearing one cell.

The fine offset is not enabled on every machine.Whether those columns appear depends on machine data: MD18600 $MN_MM_FRAME_FINE_TRANS = 1. If your machine has no fine column, that is why — and machine data requires the right access level, so it is not something to change on a whim.

Method 1 — touching off (no probe)

Most shops do not have a probe. The classic method is still valid and, done properly, accurate enough.

Finding the edge in X and Y

  1. Go to the Machine operating area and select JOG.
  2. Know the diameter of the tool or edge finder in the spindle. You will need its radius in the calculation.
  3. Bring the tool up to the X edge of the part. Make the last approach on the handwheel at the smallest increment.
  4. Catch the moment of contact with the paper method or by the edge finder kicking out.
  5. Read the machine coordinate at that moment. If the work zero is on the edge: reading − tool radius (the sign follows your approach direction).
  6. Enter that value into the X cell of the offset you are using (say G54) under Parameter → Zero offsets.
  7. Repeat for Y.

For Z

In Z you touch off with the tool tip itself, and it has to be considered together with the tool length offset. If your tool lengths are measured and entered, touch the top face and enter the value as the Z zero. If they are not entered, your Z zero will be wrong too — which is why the correct order is tool measuring first, work offset second.

The most common mistake: forgetting the radius.Touch a Ø10 end mill against the edge and enter the reading directly, and your work zero is 5 mm out. With an edge finder use its diameter, with a tool use the tool’s — either way it has to go into the sum.

Method 2 — measuring in JOG mode with a probe

If the machine has a probe and the measuring cycle option, the job gets faster and, more importantly, the need to align the part parallel to the table disappears — the control works out the angular deviation and writes it into the offset.

Prerequisites

  • The measuring cycle options must be configured on the machine.
  • The part must be clamped to the table.
  • The probe tip must be calibrated, mounted in the spindle and active, with its tool offset enabled.

Measuring options available in JOG

  • Measure edge — to find zero in a single axis
  • Measure corner — to find X and Y zero together with the angular deviation
  • Measure pocket / hole — when the centre is your zero
  • Measure spigot / boss
  • Align plane
  • Calibrate probe tip
Measure only, or correct?When the cycle runs you decide what happens to the result: should the values be written into the zero offset as a correction, or should it be a “measure only” run that just displays them? If you are checking a corner’s dimensions, pick the second — it leaves the offset alone.

Measuring a corner — step by step

The example in the source document measures a corner of the part in the machining plane on a machine without a rotary table.

  1. Call “Measure corner”. In the window that opens, the vertical softkeys offer “Right-angled corner” and “Any corner”.
  2. If the corner is not 90°, choose “Any corner”. That option needs four measuring points: P1, P2, P3, P4.
  3. Using the help graphic, bring the probe tip by hand close to the first measuring point P1.
  4. Fill in the input screen: which zero offset to write to (G54, G55, G56, G57…), whether the corner is internal or external, and the target value of the reference corner in both axes.
  5. Press NC START. From the position you set it at, the probe approaches the measuring point automatically, touches, and returns to its starting position.
  6. If the measurement succeeded the “P1 Stored” softkey becomes active — P1’s coordinates are saved.
  7. Move by hand to P2 and press NC Start again. Repeat for P3 and P4.
  8. Once every “Px Stored” softkey is active, a “Calculating” softkey appears. Press it and the corner coordinate (P0) and the offset are calculated.

What do you get?

Measuring a corner in the G17 plane, the control determines:

  • the X and Y zero offset from the intersection of the two straight lines,
  • the angular deviation of the workpiece coordinate system about the Z axis,
  • and writes the values into the zero offset table you selected (e.g. G54).

If the offset you selected is already the active one (G54 showing, for instance), the values take effect immediately.

This measurement does not give you Z.Measuring a corner gives you the offset in the XY plane and the angle about Z. The zero offset in the Z direction has to be taken separately with “Measure edge”. Skip that step and you end up with a setup that is right in XY and wrong in Z.

When to measure in JOG, when in AUTO

SituationMethodWhy
One-off part (die and mould work)Measuring in JOGEvery part is clamped differently; writing a program for it is not worth it. Semi-automatic, under the operator’s control.
Several similar parts in the same fixtureMeasuring cycles in AUTOThe measurement is written into the program and runs itself on every part. An approximate zero point must be set beforehand.
Tolerance monitoring during productionMeasuring in AUTOThe result can correct either the zero offset or the tool offset.

With measuring cycles in automatic mode you can choose between three outcomes: measure the part dimension only, correct the workpiece zero offset, or correct the tool offset. Which one applies is a parameter of the cycle.

Calling and changing the offset from the program

Calling an offset in the program is simple:

N10 G54 G17 G90 ; 1st zero offset, XY plane, absolute N20 G0 X0 Y0 Z100 ; go above the work zero … N90 G500 ; deactivate the settable offset

Writing the offset value from the program is possible too. The coarse offset is written with CTRANS, the fine offset with CFINE, and the target is the $P_UIFR[<n>] array. But there is one behaviour you have to know:

What you write is not active straight away.A value written to $P_UIFR[<n>] goes into the data storage; it does not become effective in the channel immediately. To make it effective it has to be recalled with G500 or one of G54…G57 / G505…G599 (or by a channel reset). Not knowing this produces the classic “I changed the value but the machine is still using the old one” — and if the tool is in the material at that moment, the result is expensive.

For that reason, changing zero offsets from inside a program is advanced work. If you are starting out, enter offsets from the panel and leave programmatic writing until after you have learned subprograms and pallet applications.

Common mistakes

Starting to set the offset before referencing

Until the axes are referenced the machine coordinate is not trustworthy. The offset you take will not hold.

Ignoring the tool radius

The most expensive mistake in touching off. You end up half a diameter out.

Taking a Z zero before tool lengths are entered

The Z offset works together with the tool length. The order is tool measuring first, work offset second.

Measuring into one offset and running from another

Write to G55 in the cycle and call G54 in the program and the machine runs on the old value. Compare the offset number on the measuring screen with the one in the program.

Forgetting Z after measuring a corner

Corner measurement gives XY and the angle; Z needs a separate edge measurement.

Measuring with an uncalibrated probe

If the probe tip is not calibrated, every measurement is systematically out. Recalibrate whenever the probe is changed or takes a knock.

Putting the real value into the fine offset

The fine column is for corrections. Put your actual setting value there and the confusion starts with the first correction.

Machining without verifying the offset

After setting, send the tool over the work zero and confirm with your own eyes that the workpiece coordinate reads X0 Y0.

Frequently asked questions

How many zero offsets can I use on SINUMERIK?

As commands, G54–G57 and G505–G599 — so up to 99 settable offsets in theory. How many are configured on your machine depends on machine data; the list on screen tells you.

What is the difference between G54 and G505?

Functionally none; both are settable zero offsets. Only the numbering differs: G54→1, G55→2, G56→3, G57→4, G505→5, G506→6 and so on.

I could not clamp the part square to the table. What now?

If you have a probe, use the corner measurement cycle: the control calculates the angular deviation about Z and writes it into the offset, so you do not have to align the part physically. Without a probe you have to dial it in.

I set the offset but the part came out 5 mm off. Why?

Almost always the tool radius. Touch off with a Ø10 tool without subtracting the radius and you are out by exactly 5 mm.

How do I cancel a zero offset?

G500 deactivates all settable zero offsets. Use it at the end of a program or when going to a safe position.

Can I manage without measuring cycles?

Yes — touching off is still common and valid. Measuring cycles buy you speed, repeatability and the angular deviation calculation; without them you can still take a correct zero, it just takes longer and depends more on the operator.

Mentor CNC note: Setting a work offset involves real machine motion, and a wrong value drives the tool into the part, the vice or the table. Make the first move after setting at a low feedrate and in single block; before the program starts, verify on screen where the tool sits relative to the work zero. Softkey names and menu paths vary with the control version, the options that are active and the machine builder’s configuration. This page is for training and does not replace the machine builder’s manual.

Sources

  • Siemens AG — SINUMERIK 840D sl / 828D Job Planning, Programming Manual, 01/2015, document no. 6FC5398-2BP40-5BA2: Section 6.2 Value assignments to frames (the G500 / G54…G57 / G505…G599 to $P_UIFR mapping table, pp.271–272), Section 6.3 Coarse and fine offsets — CTRANS, CFINE and MD18600 (p.278)
  • Siemens AG — SINUMERIK Advanced CNC Operation and Programming, 05/2010: Section 2.1 Setting up and measuring workpieces and tools, 2.2 Setting up and measuring the workpiece in JOG (prerequisites, list of measuring cycles), 2.3 Setting up a part on a machine without a rotary table (corner measurement steps, P1–P4, transferring results to the G54 table), 2.5 Measuring tools in JOG