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.
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 Feature | Specification |
|---|---|
| Command Code | G34 |
| Modal Group | Group 01, Modal |
| Brands | Siemens |
| Critical Parameters | F (progressive change in thread lead / pitch change rate in mm/rev2 or inch/rev2), SF= (starting angle offset) |
| Main Constraint | At 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
| Parameter | Programming Mode | Description | Value Range |
|---|---|---|---|
X, Y, Z | Siemens Mode | Cartesian coordinates of the thread physical endpoint, programmed as absolute (G90) or incremental (G91) values. | Coordinate range |
I, J, K | Siemens Mode | Nominal starting thread pitch (lead) specified parallel to the X, Y, and Z axes respectively. | Dimension in mm or inches |
F | Siemens Mode | Progressive thread lead change rate in mm/rev2 or inch/rev2. | Numeric value |
SF= | Siemens Mode | Start 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 Mode | Absolute (X, Z) or incremental (U, W) end point coordinates of the thread. | Coordinate range |
F | ISO Dialect Mode | Nominal starting thread lead. | Dimension in mm or inches |
K | ISO Dialect Mode | Thread 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 / Option | SINUMERIK 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 Avoidance | Supported (Dedicated high-level software option) | Omitted (Not available) | Omitted (Not available) |
| G34 Thread Interpolation with Variable Lead | Supported (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
| Brand | Alarm Code | Trigger Condition | Operator Fix |
|---|---|---|---|
| Siemens | Alarm 22280 | Programmed 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. |
| Siemens | Alarm 61001 | Thread 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. |
| Siemens | Alarm 61102 | Spindle rotation direction M03 or M04 is missing during cycle execution. | Program M03 or M04 before calling the threading cycle. |
| Siemens | Alarm 14800 | G34 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. |
| Siemens | Alarm 61815 | Tool 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.

- 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
G71 Metric Dimensioning Guide for Siemens SINUMERIK Controls
Learn how to program G71 and G710 metric dimensioning on Siemens SINUMERIK controls, including parameter MD 10240, alarm codes, and G-code syntax errors.
G69 Balance Cut Cancel: Coordinate Recovery & Crash Prevention
Learn how to program the G69 balance cut cancel command for Fanuc, Siemens, and Mitsubishi turning centers. Cancel dual slide synchronization and prevent crashes.
G70 CNC Finishing Cycle Guide for Fanuc, Siemens, and Mitsubishi
Learn the G70 finishing cycle for CNC turning. Master syntax, parameters, and alarm codes for Fanuc, Siemens CYCLE95, and Mitsubishi controls to avoid crashes.
G69 Coordinate System Rotation Cancel: Modals, Alarms, and Setup
Learn to cancel G68 facing turret mirrors and coordinate rotations using G69 on Fanuc, Siemens, and Mitsubishi CNCs to prevent turret crashes.