Siemens CYCLE84 and CYCLE99 Threading Cycles Programming Guide
Program the Siemens CYCLE84 rigid tapping cycle and CYCLE99 thread turning cycle on SINUMERIK. Avoid spindle alarms, collisions, and tool breakage.
Understanding CYCLE84 and CYCLE99: Production Risks and Failure Scenarios
A high-speed tap plunging into a pre-drilled block suddenly experiences axis desynchronization, binding with long threads, and snaps with a loud crack, lodging a broken tap into the workpiece. If the safety clearance (SDIS) or retraction plane is set too low, the rapid traverse movements between hole locations risk causing a hard collision between the tool holder and a clamping fixture or the vise jaw on the machine table. Operators must be acutely aware that during the physical execution of CYCLE84, both the feedrate override switch and the cycle stop (maintaining feed) switch are completely locked out and inactive to prevent damaging the thread profile. Similarly, when deploying the CYCLE99 thread turning cycle, neglecting to verify the thread run-out path (ROP) incrementally can cause the tool to fail to retract in time, colliding with a workpiece shoulder or the chuck, generating a scrap part and halting the entire production line.
Technical Summary: Siemens CYCLE84 and CYCLE99 Specifications
| Specification Field | Technical Value / Constraint |
|---|---|
| Command Code | CYCLE84 (Rigid Tapping) and CYCLE99 (Thread Turning) |
| Modal Group | Tapping Cycle (CYCLE84), Thread Turning Cycle (CYCLE99) |
| Supported Brands | Siemens |
| Critical Parameters | RTP, RFP, SDIS, SST, SST1 (CYCLE84) | _APP, _ROP, _TDEP, _VARI (CYCLE99) |
| Main Constraint | Feedrate override and cycle stop switches are locked out during CYCLE84 execution; CYCLE99 ignores global settings DITS/DITE and SD 42010. |
Quick Read: High-Impact Takeaways
- Program active spindle direction commands (M03 or M04) immediately before calling
CYCLE84to prevent Alarm 61102. - Utilize the independent retraction spindle speed parameter
SST1to retract the tap at a higher RPM than plunge speedSST, optimizing cycle times. - Ensure safety clearance
SDISis set higher than any clamping fixtures or vise jaws to prevent rapid traverse collisions. - Verify that
CYCLE99thread run-in_APPand run-out_ROPpaths are defined incrementally without a sign, as they bypass global ramping settings. - Deactivate modal cycle states explicitly using
G80or implicitly through a Group 01 motion command on SINUMERIK controls. - Configure the modal tapping spindle mask
SD55484 $SCS_DRILL_TAPPING_SET_MCto determine if the spindle remains in position control between holes. - Set valid machining type parameters in
VARIto avoid halting the interpreter with Alarm 61002 during cycle setup.
Basic Concepts of Siemens Tapping and Thread Turning
The practical programming effect of the CYCLE84 rigid tapping cycle is the precise mechanical synchronization of the Z-axis feed and the spindle rotation to cut threads without requiring a floating tap holder. During execution, the machine feeds the tap down to the target depth, stops the spindle, dwells to clear the chip root, reverses spindle direction, and retracts to the clearance plane. Programmers must carefully manage their starting positions and clearance parameters (SDIS). Tapping is a high-risk operation compared to standard holemaking operations, which is why deactivating tool radius compensation and verifying coordinate parameters before running is essential to avoid structural damage. Tapping operations can be compared to centering in a siemens-cycle81-centering-drilling-cycle or peck drilling in a cycle83-deep-hole-drilling, yet rigid tapping is uniquely demanding due to the absolute synchronization required between the rotating spindle and the linear feed axis.
When deploying the CYCLE99 thread turning cycle, programmers automate complex threading passes along a cylindrical or tapered profile, utilizing parameters like APP and ROP to manage the tool's approach and departure from the material. Because the cycle mathematically calculates the thread passes internally, operators must ensure the run-in and run-out paths are verified for clearance. A common failure cause in thread turning is neglecting the fact that CYCLE99 handles thread run-in and run-out through a purely geometric concatenation of separate thread blocks, completely ignoring the dynamic DITS and DITE machine parameters. Thread turning operations, which are detailed in low-level G-code comparisons like the g33-and-g32-threading-commands guide, are simplified by CYCLE99 through conversational parameter arrays.
Siemens distinguishes its control logic from other brands through three highly unique backend behaviors in these cycles. First, Siemens controllers utilize a hidden "shell cycle" mapping architecture. When an ISO-dialect G84 tapping block is read by the controller, it does not execute a hardcoded ISO macro; instead, it captures the addresses into system variables and internally routes them through CYCLE384M or CYCLE384T, automatically translating the inputs into the native conversational CYCLE84 standard cycle.
Command Structure and Address Syntax
Native Siemens programming uses highly structured parameterized cycle calls. Unlike traditional G-codes, Siemens controllers accept complex mathematical arguments directly inside parentheses. The rigid tapping cycle CYCLE84 uses parameters that define the absolute retraction plane, reference plane, and incremental depth.
For thread turning, CYCLE99 provides an expansive block structure that requires precise definitions of the start and end coordinates, infeed paths, and finish allowances. The parameters must be carefully mapped in order because any omission or misplaced comma will cause the parser to shift argument indexes, leading to incorrect cycle execution.
Siemens Conversational Tapping Syntax
CYCLE84(RTP, RFP, SDIS, DP, DPR, DTB, SDAC, MPIT, PIT, POSS, SST, SST1, _AXN, _PITA, _TECHNO, _VARI, _DAM, _VRT, _PITM, _PTAB, _PTABA, _GMODE, _DMODE, _AMODE)
Siemens Conversational Thread Turning Syntax
CYCLE99(_SPL, _SPD, _FPL, _FPD, _APP, _ROP, _TDEP, _FAL, _IANG, _NSP, _NRC, _NID, _PIT, _VARI, _NUMTH, _SDIS, _MID, _GDEP, _PIT1, _FDEP, _GST, _GUD, _IFLANK, _PITA, _PITM, _PTAB, _PTABA, _DMODE, _AMODE, _S_XRS)
Parameter Guide for CYCLE84 and CYCLE99
| Parameter | Description | Value Range |
|---|---|---|
RTP | Retraction plane (absolute). The coordinate the tool retracts to after reaching final depth. | REAL coordinate |
RFP | Reference plane (absolute). The coordinate value defining the top of the workpiece. | REAL coordinate |
SDIS | Safety clearance. Distance added to RFP where feed rate starts. Entered without a sign. | REAL (positive) |
DP | Final drilling depth (absolute). | REAL coordinate |
DPR | Final drilling depth relative to reference plane (incremental). | REAL (positive) |
DTB | Dwell time at final depth for chip breaking. | REAL (seconds) |
SDAC | Direction of rotation after end of cycle. | 3 (M03), 4 (M04), or 5 (M05) |
PIT | Thread pitch. Value range: 0.001 to 2000.000 mm. | REAL (signed) |
SST | Spindle speed for tapping. | REAL (RPM) |
SST1 | Spindle speed for retraction. If set to 0, retraction speed mirrors SST. | REAL (RPM) |
_APP | Thread run-in path (incremental, without sign). | REAL (positive) |
_ROP | Thread run-out path (incremental, without sign). | REAL (positive) |
_TDEP | Thread depth (incremental, without sign). | REAL (positive) |
_IANG | Infeed angle. Value determines rear flank, front flank, or right angle feed. | REAL (>0: rear, <0: front, =0: right angle) |
_VARI / VARI | Machining type definition (e.g. 0 for rigid tapping, 300101 for thread turning). | INT |
Siemens Brand Applications and Controller Logic
Siemens
The Siemens controller clearly distinguishes itself from other control brands through its backend cycle processing. First, Siemens relies on a proprietary "shell cycle" mapping architecture: when an ISO G84 block is commanded, the control does not run a rigid ISO macro but instead captures the parameters and routes them through hidden translators (CYCLE384M for milling or CYCLE384T for turning) to execute the highly robust native Siemens CYCLE84. Second, Siemens offers independent spindle speed control natively inside the rigid tapping cycle via the SST (plunge) and SST1 (retraction) parameters, granting programmers the ability to pull the tap out of the hole at a significantly faster RPM than it entered, optimizing cycle times without editing post-processors. Finally, Siemens handles thread run-in and run-out in CYCLE99 via pure geometric block concatenation rather than dynamic acceleration ramps, making the toolpath completely independent of global CNC ramping variables like SD 42010 $SC_THREAD_RAMP_DISP, which are ignored and left unchanged during cycle execution.
Siemens Version and Series Comparison
| Comparison Aspect | SINUMERIK 840D sl (Advanced) | SINUMERIK 828D (Standard) | SINUMERIK 808D (Compact) |
|---|---|---|---|
| Spindle control for MCALL (SD55484) | Fully customizable via SD55484 $SCS_DRILL_TAPPING_SET_MC. Value 1 forces position-control mode between holes to minimize cycle time. | Supports standard spindle configuration; SD55484 can be configured to reactivate normal spindle operation (0) or maintain position control. | Spindle control defaults to standard reactivation (SD55484 = 0); advanced custom modal overrides are generally locked to factory defaults. |
| Thread Ramping settings (SD 42010) | Ignored inside CYCLE99 thread turning; relies purely on programmed geometric block concatenation for run-in/run-out. | Ignored inside CYCLE99; toolpath remains strictly bound to geometric parameters, protecting the setup from global setting modifications. | Ignored inside CYCLE99; basic execution relies entirely on conversational parameters without using system ramping settings. |
| Function Mask Turn Set (SD55218) | Full access to configure SD55218 $SCS_FUNCTION_MASK_TURN_SET[5] to explicitly activate or deactivate the DITRB command. | Standard parameter access; allows toggling DITRB via the function mask based on workpiece geometries and cutting requirements. | Function mask is pre-configured at factory settings; direct operator modification of SD55218 is not supported. |
Technical Analysis: Spindle Sync and Ramping Dynamics
The mechanical core of CYCLE84 lies in the rigid synchronization of the spindle's rotational angle and the feedrate of the Z-axis. When executing this cycle, the SINUMERIK controller locks the two axes into an electronic gear relationship. Programmers can utilize the setting data SD55484 $SCS_DRILL_TAPPING_SET_MC to configure how the spindle behaves when using a modal call (MCALL) across multiple holes. If this parameter is set to 1, the spindle remains in position-controlled mode as the tool moves from hole to hole, preventing the spindle from ramping down to speed-controlled stop and ramping back up at each location. Setting this to 0 reactivates normal spindle operation between holes, which is gentler on the motor but extends total machining time.
For thread turning, CYCLE99 handles path generation in a highly deterministic manner. Rather than relying on global system ramping settings like DITS (Thread run-in) and DITE (Thread run-out), which dynamically adjust acceleration based on current feedrates, CYCLE99 performs a pure geometric concatenation of separate thread blocks. The setting data SD 42010 $SC_THREAD_RAMP_DISP is completely ignored and left unchanged. This ensures that the run-in and run-out paths are exactly equal to the programmed incremental values _APP and _ROP under all cutting conditions. This level of geometric control is vital when threading close to shoulders, where dynamic acceleration variations could otherwise cause a catastrophic crash. The usage of the DITRB command inside the cycle can be explicitly toggled by the programmer using the system variable SD55218 $SCS_FUNCTION_MASK_TURN_SET[5] to adapt the cutting path to specific material constraints.
Program Examples and Dry Run Walkthroughs
Siemens CYCLE84 Rigid Tapping Example
; Siemens: N470 CYCLE84(5.00000, 0.00000, 2.00000, -18.00000, 0.00000, 0.50000, 3, 12.00000, 0.00000, 200.00000, 200.00000, 3,0,0,0,,0.00000)
Dry Run Walkthrough for CYCLE84
Line-by-line block execution details:
- The tool rapid-traverses to the safe coordinate position above the hole, matching the retraction plane
RTPcoordinate of 5.0 mm. - Upon reading the
CYCLE84block, the controller verifies that the spindle is rotating in the clockwise direction matching theSDACparameter value of 3 (corresponding to M03). If M03 or M04 is missing, the controller halts and issues Alarm 61102. - The tool approaches the workpiece reference plane
RFPof 0.0 mm, transitioning from rapid traverse to cutting feedrate at a distance defined by the safety clearanceSDISof 2.0 mm. - The Z-axis plunges down at a feedrate precisely synchronized with the spindle rotation speed
SSTof 200.0 RPM, targeting the absolute depthDPof -18.0 mm (relative depthDPRis set to 0.0 mm and ignored). The pitch is defined by the parameterPITas 12.0 mm (equivalent to an M12 thread pitch). - Upon reaching the final depth of -18.0 mm, the spindle stops and dwells for 0.5 seconds (defined by parameter
DTB) to allow chip clearance at the root. - The spindle reverses direction automatically and retracts the Z-axis up to the retraction plane
RTPof 5.0 mm at the retraction spindle speedSST1of 200.0 RPM.
Siemens CYCLE99 Thread Turning Example
; Siemens: N50 CYCLE99(0, 42, 35, 42, 5, 7, 2.76, 0, 0, 0, 5, 2, 4.5, 300101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,,,,0)
Dry Run Walkthrough for CYCLE99
Line-by-line block execution details:
- The threading tool rapid-traverses to the starting point of the longitudinal axis
_SPLat 0.0 mm and thread starting diameter_SPDof 42.0 mm. - The tool executes a series of 5 roughing cuts (defined by
_NRC) and 2 finishing passes (defined by_NID), feeding down to the absolute end point_FPLat 35.0 mm and end diameter_FPDof 42.0 mm. - For each cutting pass, the tool approaches the part along the incremental run-in path
_APPof 5.0 mm to allow the spindle to synchronize with the axis feed. - The tool cuts the thread with a pitch
_PITof 4.5 mm, feeding at an infeed angle_IANGof 0 degrees (perpendicular to the cutting axis) to a total depth_TDEPof 2.76 mm. The machining type_VARIis set to 300101, which represents standard outer threading. - At the end of each pass, the tool retracts along the incremental run-out path
_ROPof 7.0 mm, bypassing all global ramping settings to ensure instant retraction before hitting any workpiece shoulders. - After completing all passes and the finishing allowance
_FALof 0.0 mm, the tool returns to the safe starting position, ready for the next command sequence.
Error Analysis and Diagnostic Alarm Guide
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Siemens | 61101 | Reference plane defined incorrectly. Programmed geometry contradicts final depth. | Interpreter halts, block execution stops, and an alarm is displayed on the screen. | Verify and program valid absolute retraction plane RTP, reference plane RFP, and depth DP coordinates so they are logically aligned. |
| Siemens | 61102 | No spindle direction programmed. Spindle direction M03 or M04 is missing before the cycle call. | Spindle fails to start and cycle execution is aborted immediately before the tool plunges. | Program M03 or M04 in the block preceding CYCLE84 to define the spindle rotation direction. |
| Siemens | 61002 | Machining type incorrectly programmed. Invalid or unsupported value assigned to the VARI parameter. | The controller refuses to execute the cycle and halts the program in a fault state. | Ensure a valid, supported value (such as 0 for rigid tapping or 300101 for thread turning) is assigned to the VARI / _VARI parameter. |
Application Note: Safe Execution and Clearance Limits
A hard collision between the rapid-traversing tool and a clamping fixture or vise jaw is the direct mechanical consequence of setting safety clearances or retraction planes too low during modal hole transfers. In native Siemens CYCLE84, the feedrate override and cycle stop switches are completely locked out and disabled by the controller during execution. If an operator sees an impending crash or a chip binding, they cannot feed-hold or slow down the axis; they must hit the physical emergency stop button, which instantly halts all motion but frequently shears the tap off inside the hole. When deploying CYCLE99 for thread turning, neglecting to verify the run-in _APP and run-out _ROP parameters will lead to a catastrophic crash against the workpiece shoulder or chuck. Because CYCLE99 ignores global dynamic settings like DITS/DITE and SD 42010, assuming the control will dynamically ramp out the thread based on global settings will result in the tool failing to retract in time, converting the expensive workpiece into scrap.
Related Command Network
- CYCLE840 (Tapping with compensating chuck): Used when the spindle and Z-axis are not mechanically synchronized, relying on a floating tool holder to absorb lead errors.
- G84 (ISO Dialect Tapping): The legacy ISO tapping standard that Siemens controllers capture and internally translate to native
CYCLE84via hidden shell cycles. - MCALL (Modal Subroutine Call): Applies a canned cycle modal state like
CYCLE84to multiple coordinates, executing it automatically at every coordinate point until canceled. - CYCLE97 (Standard Thread Cutting): The baseline conversational thread cutting cycle on SINUMERIK, compared to the more advanced tapered and multi-start options in
CYCLE99. - g33-and-g32-threading-commands: The fundamental ISO G-codes used for constant lead thread cutting, providing low-level block-by-block control of the thread path.
- siemens-cycle81-centering-drilling-cycle: A standard drilling cycle that operates without the pecking or retraction logic found in rigid tapping cycles.
- cycle83-deep-hole-drilling: The deep hole peck drilling cycle which, like rigid tapping, utilizes advanced retraction modes to manage continuous chips.
Conclusion
Maximizing the safety and efficiency of threading on Siemens SINUMERIK controllers requires strict attention to preceding command codes and explicit parameter clearance values. Always program M03 or M04 immediately before calling CYCLE84 to avoid Alarm 61102, and set a safety clearance that comfortably clears all workholding fixtures to eliminate rapid-traverse crashes. By configuring the independent retraction speed parameter SST1 and explicitly defining geometric run-out paths in CYCLE99, programmers can optimize cycle times and protect cutting tools from shoulder collisions, ensuring smooth, unattended production runs.
Frequently Asked Questions
Why does the Siemens controller trigger Alarm 61102 during rigid tapping even if the spindle is active?
Alarm 61102 is triggered because the CYCLE84 rigid tapping cycle strictly requires a modal spindle direction (M03 or M04) to be programmed immediately prior to the cycle call or within the same coordinate block. Even if the spindle was turned on earlier in the program, the cycle's internal synchronization logic will halt the machine if it cannot explicitly verify the starting direction. The practical action is to insert an M03 or M04 command in the G-code block immediately preceding the CYCLE84 call, ensuring the controller registers the active spindle rotation direction before executing the tap.
Can I speed up retraction times in Siemens CYCLE84 without altering my plunge speed?
Yes, Siemens controllers provide unique independent speed controls natively inside CYCLE84 via the SST (plunge speed) and SST1 (retraction speed) parameters. Unlike standard canned cycles where retraction mirrors plunge feed, you can retract the tap at a significantly faster RPM to minimize unproductive cycle time. The practical action is to assign your desired high-speed RPM value directly to the SST1 parameter in the cycle call (for instance, setting SST = 200 and SST1 = 400). Leaving SST1 at 0 will default the retraction speed to match the plunge speed.
Why did my thread turning tool crash into the shoulder using CYCLE99 even though global thread ramping is active?
This crash occurs because the CYCLE99 thread turning cycle completely ignores global dynamic machine settings like DITS/DITE and the setting data SD 42010 $SC_THREAD_RAMP_DISP. Instead, it utilizes pure geometric block concatenation for the run-in and run-out paths. If you rely on global acceleration settings to dynamically decelerate or round off the thread exit, the tool will fail to retract in time and strike the shoulder. The practical action is to explicitly program a safe, incremental run-out path _ROP in the CYCLE99 parameter list that accounts for tool geometry and retract clearance before the tool reaches the shoulder.
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 - 2005)
- Ö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
Siemens CYCLE800 G-Code: Swivel Planes & Tool Alignment
Master Siemens CYCLE800 for 3+2 axis machining. Learn plane swiveling, tool alignment, parameter setup, and how to troubleshoot Alarm 61190 and 61153.
Siemens CYCLE72 Contour Milling: Guide to Sinumerik Path Milling
Master Siemens CYCLE72 for contour milling on Sinumerik CNC controls. Learn parameter setup, avoid simulation alarm 61123, and prevent machine collisions.
Siemens CYCLE952 Contour Turning Cycle Programming Guide
Master Siemens CYCLE952 contour turning on Sinumerik CNC controls. Learn parameter lists, resolve Alarm 61051, and configure balance cutting.
Siemens SLOT1 and SLOT2 Slot Milling Cycles Programming Guide
Master slot milling on Siemens Sinumerik controls using SLOT1 and SLOT2 cycles. Learn parameter configurations, alarm 61000 prevention, and optimal tool paths.