Skip to main content
CNC.wiki

G34 Thread Cutting with Increasing Lead on Siemens SINUMERIK

Master G34 progressive thread cutting on Siemens SINUMERIK. Learn syntax, parameters like SD 42010, and how to prevent Alarm 22280 acceleration overloads.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

Introduction

When executing a progressive thread cutting operation, programming the thread end coordinate too close to a rotating spindle chuck, chuck jaws, a tailstock clamp, or a table-mounted vise jaw introduces a severe collision risk. Because the feed hold button and feedrate overrides are deactivated during threading blocks, a programming typo or coordinate shift will prevent the operator from stopping the slide in time. This lack of immediate feed interruption can result in a catastrophic hard collision where the toolholder or turret slams directly into the rotating chuck or workpiece clamps, shattering the threading insert, bending the spindle, triggering Alarm 22280, and turning the raw stock into a ruined scrap part.

Technical Summary

Technical FeatureSpecification
Command CodeG34
Modal GroupGroup 01, Modal
BrandsSiemens
Critical ParametersF (progressive change in thread lead / pitch change rate in mm/rev2 or inch/rev2), SF= (starting angle offset)
Main ConstraintAt least one target axis coordinate (X, Y, Z) must be programmed. Programmed lead change rate must not result in a negative feedrate at the thread endpoint. Spindle feedrate overrides are disabled (locked at 100%).

Quick Read

  • Turn off constant surface speed control (G96) and program constant spindle speed control (G97) to prevent calculation lag and preserve pitch accuracy.
  • Deactivate tool nose radius compensation using G40 before calling G34 to avoid Alarm 61815.
  • Program sufficient run-in path (DITS) and run-out path (DITE) to prevent axis acceleration overload and Alarm 22280 on short workpieces.
  • Ensure a non-zero feedrate is programmed before G34, otherwise the control will halt with Alarm 14800.
  • Keep spindle speed constant and program M03 or M04 before cycle execution to avoid Alarm 61102.
  • Do not use G34 if the retraction axis is the major thread-cutting axis during rapid retract, as the retract will not execute and will trigger Alarm 14800 on the next block.

Basic Concepts

Implementing the G34 progressive thread cutting function on Siemens controls creates a mechanically rigid, real-time synchronization between the workpiece spindle's rotation and the linear axis servo motors. The position encoder on the spindle reads the actual rotational speed of the spindle in real-time, directing the CNC kernel to adjust the axial feedrate dynamically. This lockstep synchronization allows progressive pitch changes per revolution, which is ideal for machining variable-pitch extruder screws or specialized worm gears.

Because of this rigid synchronization, manual feedrate overrides are completely disabled and fixed at 100% during threading blocks to preserve pitch integrity. Similarly, the feed hold button is inactive during G34 blocks; if pressed, the axis will not stop immediately but will continue to the end coordinate of the next non-threading block.

Command Structure

Before programming progressive threads, it is often helpful to understand constant lead threading commands such as G33 constant lead threading for Siemens or G32 constant lead thread turning. Additionally, for complex rotary profiles, controls may utilize G07 cylindrical interpolation to map flat profiles onto a cylinder.

The dual-interpreter design of Siemens controls allows G34 to be executed using two distinct programming modes: native Siemens mode and ISO Dialect mode. When native Siemens mode is active (programmed via G290), progressive thread lead change is specified by the F-parameter, which represents the acceleration rate of the pitch in mm/rev2 or inch/rev2.

Alternatively, when the control is switched to ISO Dialect mode (using G291), G34 is programmed using parameters resembling standard ISO systems. Here, the nominal starting lead is specified by F, and the lead change value per spindle revolution is defined by the K-parameter. Regardless of the active mode, at least one axis coordinate with a target dimension (X, Y, or Z) must be programmed in the G34 block to establish a valid interpolation path.

Syntax

Native Siemens Mode Syntax:

G34 X... Y... Z... I... J... K... F... SF=... ;

ISO Dialect Mode Syntax:

G34 X(U)... Z(W)... F... K... ;

Parameters

ParameterProgramming ModeDescriptionValue Range
X, Y, ZSiemens ModeCartesian coordinates of the thread physical endpoint, programmed as absolute (G90) or incremental (G91) values.Coordinate range
I, J, KSiemens ModeNominal starting thread pitch (lead) specified parallel to the X, Y, and Z axes respectively.Dimension in mm or inches
FSiemens ModeProgressive thread lead change rate in mm/rev2 or inch/rev2.Numeric value
SF=Siemens ModeStart point offset angle for machining multiple-start threads, specified in degrees. Defaults to setting data SD 42000 if omitted.0.0000 to 359.999 degrees
X(U), Z(W)ISO Dialect ModeAbsolute (X, Z) or incremental (U, W) end point coordinates of the thread.Coordinate range
FISO Dialect ModeNominal starting thread lead.Dimension in mm or inches
KISO Dialect ModeThread lead change value per spindle revolution.Numeric value

Brand Applications

Siemens

Siemens utilizes a unique, dual-syntax bilingual model to handle variable threads. In native Siemens mode, progressive variable threading is commanded via G34, with the pitch change rate programmed under the address F. Degressive threads use G35. When switched to ISO Dialect mode (G291), G34 is used for both progressive and degressive threads, with the lead change per revolution programmed under address K.

Siemens supports advanced continuous-path linking (G64) across threading transitions. By programming consecutive G33 and G34 blocks under continuous-path mode G64, the motion kernel uses its pre-read buffer and look-ahead velocity control to link the blocks. This adjusts transition velocities to eliminate sudden velocity jumps or deceleration pauses.

Siemens enables direct programmatic control of run-in and run-out paths within the part program using DITS and DITE. These commands write directly to setting data SD 42010 ($SD_THREAD_RAMP_DISP) so programmers can customize acceleration and deceleration ramp lengths. This dynamic control prevents axis acceleration overload alarms on short workpieces.

Brand Comparison

Feature / OptionSINUMERIK 840D sl (High-End)SINUMERIK 802D sl (Compact)Lower-End / Other Compact Controls
Multi-Edge Turning (G51.2 / G50.2)Supported (Group 20 multi-edge turning)Omitted (Not supported)— (no source)
Collision AvoidanceSupported (Dedicated high-level software option)Omitted (Not available)Omitted (Not available)
G34 Thread Interpolation with Variable LeadSupported (Group 01 modal command)Supported (Group 01 modal command)Supported (Group 01 modal command)

Technical Analysis

The dual-syntax bilingual capability of SINUMERIK controls enables operators to switch between Siemens mode and ISO mode. When running in ISO mode, the control enforces a specific endpoint feedrate constraint to guarantee that the feedrate does not fall to zero or become negative at the physical endpoint. The programmed lead change rate K in ISO Mode must satisfy: (F + K / 2)2 + 2 × K × W > 0, where F is the starting lead, K is the lead change, and W is the incremental travel. If this condition is violated, the motion kernel cannot calculate a valid deceleration path, causing the axis to stall.

Under native Siemens mode, progressive pitch changes are calculated using the acceleration formula where the rate F depends on the final pitch Ke and starting pitch Ka over the thread length lG: F = |Ke2 − Ka2| / (2 × lG). Setting data SD 42010 ($SD_THREAD_RAMP_DISP) stores the run-in and run-out paths programmed via DITS and DITE. This direct setting data adjustment allows the control to ramp up the servo speed to synchronize with the spindle rotation without overloading the feed drive, which is particularly critical on short thread lengths.

Program Examples

G290 ; Switch parser to native Siemens mode
G34 Z-120.0 K4.0 F0.5 ; Progressive thread, start pitch K=4mm, pitch increases by 0.5mm/rev2
G291 ; Switch parser to ISO Dialect mode
G34 Z-100.0 F5.0 K0.25 ; Progressive thread, start lead 5mm, lead increases by 0.25mm/rev

During a dry run, the control executes the code block but ignores actual thread lead requirements as it relates to cutting material. However, because G34 enforces rigid spindle-axis synchronization, manual feedrate override controls remain disabled at 100% and feed hold cannot stop the axis mid-path. Operators must verify tool clearance and execute the program in space (without a workpiece) to verify that the axis smoothly accelerates without triggering Alarm 22280 or Alarm 14800.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator Fix
SiemensAlarm 22280Programmed run-in path (DITS) is too short to allow the thread axis to accelerate to synchronous speed, causing an axis acceleration overload.Increase the DITS value or modify MD 11411 to change the alarm mask configuration.
SiemensAlarm 61001Thread lead or pitch parameters in a cycle call contain conflicting or incorrect values.Verify and correct the thread pitch and lead parameters inside the cycle call.
SiemensAlarm 61102Spindle rotation direction M03 or M04 is missing during cycle execution.Program M03 or M04 before calling the threading cycle.
SiemensAlarm 14800G34 is called while the path feedrate evaluates to zero (e.g., F0 is active) and the "Fixed feedrates" option is not active.Ensure a non-zero feedrate is active or program a valid feedrate before G34.
SiemensAlarm 61815Tool radius compensation is active (G41 or G42) when entering the threading cycle.Deactivate tool radius compensation by programming G40 before calling the threading cycle.

Application Note

Shredded insert tips and bent spindles are the direct result of programming G34 threading blocks too close to a rotating spindle chuck or tailstock clamp. Since Siemens controls override the feed hold button and lock the feedrate override at 100% to protect the pitch geometry, the operator cannot manually interrupt the axis slide once the threading block begins. Any programming typo or coordinate shift will drive the turret or toolholder directly into the rotating chuck jaws or clamp. Programmers must enforce safety by deactivating cutter compensation via G40, establishing a constant RPM with G97, and verifying that the run-in path programmed via DITS is long enough to prevent feed motor acceleration overload.

Related Command Network

  • G33: Programmed to cut threads with a constant lead, establishing the baseline behavior before lead variations are introduced.
  • G35: Programmed to execute a linear degressive pitch change (decreasing pitch) on Siemens controls.
  • DITS / DITE: Used to program the run-in and run-out paths directly in the part program, updating setting data SD 42010.
  • G290 / G291: Used to toggle the parser interpreter between native Siemens mode and external ISO Dialect mode.
  • G64: Continuous-path mode programmed to link multiple thread blocks smoothly without velocity jumps at transitions.

Conclusion

Successful variable lead thread cutting on Siemens controls relies on maintaining absolute spindle synchronization and configuring correct acceleration parameters. Machining extruder screws or worm gears requires disabling G96 constant surface speed in favor of G97, and programming adequate run-in and run-out values to prevent drive overloads. Establishing a clear safety clearance from chuck jaws and clamp fixtures is the most effective way to prevent catastrophic turret collisions during non-interruptible threading passes.

FAQ

Why does my SINUMERIK control trigger Alarm 22280 on short threads?

Alarm 22280 occurs when the run-in path programmed via DITS is too short for the axis to accelerate to synchronous speed before contact. To resolve this, increase the DITS value in your program to expand the ramp-up distance, allowing the servo motor to reach synchronization without exceeding its torque limits.

Can I use feed hold to stop a G34 thread cutting pass if a crash is imminent?

No, the feed hold button is disabled during G34 blocks to prevent tool breakage and workpiece scrapping from sudden deceleration. In an emergency, the only way to stop the slide immediately is to press the Emergency Stop button; otherwise, the slide will continue moving until the end of the next non-threading block.

How do I switch between native Siemens and ISO Dialect modes for variable threading?

Use G290 to switch the interpreter to native Siemens mode, which parses G34 with the F-parameter as pitch change rate. Use G291 to switch to ISO Dialect mode, which parses G34 with the K-parameter as lead change per revolution. Ensure parameter MD 18800 is set to 1 to enable this translation.

Still not resolved?

Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

Ask AI Assistant
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2008)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

With over 25 years of experience working in all areas of the CNC machine industry, I continue my activities as a co-founder of CNC CARE, where we offer brand-independent consulting, engineering, and original spare parts services.

Related Articles

Other articles on this topic