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.
Introduction
Programming an incorrect boundary or assigning a duplicate program name to Siemens CYCLE952 can trigger a sudden turret indexing lock or drive a turret into a hard collision with the chuck during deep longitudinal passes. When the Sinumerik controller encounters a naming collision where the main part program name is identical to the stock removal subprogram or the blank contour update file, it triggers Alarm 61051 and halts execution immediately. Similarly, neglecting the exact geometry boundary definitions causes the lathe tool to engage the raw material unpredictably, causing severe stress on the turret, damaged chuck jaws, or a scrapped workpiece.
Technical Summary
| Technical Aspect | Details |
|---|---|
| Command Code | CYCLE952 |
| Modal Group | Contour Turning (Non-Modal Cycle) |
| Supported Brands | Siemens |
| Critical Parameters | _PRG (Subprogram Name), _VARI (Machining Strategy), _BL (Blank Type) |
| Main Constraint | Must be preceded by at least one CYCLE62 Contour Call |
Quick Read
- Program at least one mandatory
CYCLE62contour call directly precedingCYCLE952in G-code to define the part geometry. - Never assign the exact same name to the main part program and the auxiliary subprograms defined in
_PRGor_CONRto prevent Alarm 61051. - Enable machine data
MD52218 $MCS_FUNCTION_MASK_TURNBit 6 before attempting to use the Balance Cutting function to avoid Alarm 61059. - Use
_VARIunits digit to determine the machining process: 1 for roughing, 3 for base finishing, 4 for edge finishing, and 5 for chamfering. - Define the blank profile in
_BLusing 1 for cylinder with allowance, 2 for finished part allowance, or 3 for custom blank contour. - Configure setting data
SD55212 $SCS_FUNCTION_MASK_TECH_SETBit 3 to automatically manage controller memory by deleting generated subprograms upon execution completion.
Basic Concepts
The Siemens CYCLE952 contour turning cycle is a highly specialized routine for stock removal, residual material machining, and plunge turning. This cycle stands out because it decouples the contour geometry declaration from the machining path commands. By utilizing the auxiliary CYCLE62 command, a programmer can define the shape of both the blank workpiece and the final part before CYCLE952 calculates the optimal stock removal passes.
Siemens controllers allow the cycle to dynamically write updated contour data to external subroutines. These subroutines, declared via parameters like _PRG for the stock removal program and _CONR for the updated blank contour, keep track of the remaining material. This modular approach allows for complex, multi-tool roughing and finishing strategies where each tool automatically knows where the previous tool left off.
Command Structure
The cycle syntax of CYCLE952 contains a long list of parameters that govern geometry, feeds, finishing allowances, and machining modes. To execute a successful stock removal cycle, the control must ingest values for the subprograms, feedrates, and stock allowances. These values determine whether the cycle acts as a standard longitudinal roughing path or performs detailed plunge turning.
Operators configure the cycle by passing both string and numerical variables. The first three parameters determine the names of the associated subroutines for the stock removal, contour definition, and updated blank contour. The subsequent parameters specify cutting parameters such as feedrates, safety clearances, and machining depth limits.
CYCLE952(_PRG, _CON, _CONR, _VARI, _F, _FR, _RP, _D, _DX, _DZ, _UX, _UZ, _U, _U1, _BL, _XD, _ZD, _XA, _ZA, _XB, _ZB, _XDA, _XDB, _N, _DP, _DI, _SC, _DN, _GMODE, _DMODE, _AMODE, _PK, _DCH, _FS)
| Parameter | Data Type | Description |
|---|---|---|
_PRG | STRING | Name of the stock removal program or generated program for finishing. |
_CONR | STRING | Name of the program into which the updated contour for the blank will be dynamically written. |
_VARI | INT | Machining type and strategy. The units digit specifies the machining process: 1 for Roughing, 3 for Base finishing, 4 for Edge finishing, 5 for Chamfering. |
_F | REAL | Feedrate utilized for roughing and finishing passes. |
_BL | INT | Definition of the blank. Allowed values: 1 (cylinder with allowance), 2 (allowance at finished-part contour), or 3 (blank contour specified). |
Brand Applications
Siemens
The Siemens CYCLE952 contour turning cycle is designed for Siemens Sinumerik controllers (e.g. 840D sl and 828D). It executes stock removal using subprograms declared by parameters _PRG and _CONR.
The cycle works in conjunction with G-code programming blocks to establish modular workpiece contours.
| Category | Details |
|---|---|
| Parameters | _PRG, _CONR, _VARI, _F, _BL |
| Alarms | Alarm 61051 (naming collision), Alarm 61059 (balance cutting machine data bit 6 check failed) |
| Versions | In SW4.4 and higher, SD55212 Bit 3 controls the automatic deletion of generated programs. |
Assigning duplicate file names to the main program and cutting files will immediately lock execution and halt the lathe turret.
Brand Comparison
| Feature / Capability | Sinumerik ONE & 840D sl (SW 4.4+) | Sinumerik 828D (SW 4.4+) | Older Sinumerik Systems (Pre-SW 4.4) |
|---|---|---|---|
| Generated Program Memory Management | Supported via setting data SD55212 Bit 3. Can automatically delete auxiliary files when set to 1. | Supported via setting data SD55212 Bit 3. Can automatically delete auxiliary files when set to 1. | Not supported. Generated programs remain in controller memory and must be manually cleared. |
| Balance Cutting Integration | Supported; requires machine data MD52218 Bit 6 to release functionality. | Supported; requires machine data MD52218 Bit 6 to release functionality. | — (no source) |
| Naming Conflict Handling | Triggers Alarm 61051 if main program matches _PRG or _CONR. | Triggers Alarm 61051 if main program matches _PRG or _CONR. | Triggers Alarm 61051 if main program matches _PRG or _CONR. |
Technical Analysis
The Sinumerik environment establishes a unique architectural structure for contour turning by separating the contour geometry definition from the path execution. The contour call is executed through the CYCLE62 command, while the physical machining path, feeds, and stock allowances are handled by CYCLE952. This modular configuration allows the controller to perform dynamic residual material recognition, calculating only the material that remains after previous operations.
Another distinct technological aspect is how Siemens manages the memory overhead of these auxiliary program runs. In systems running software version SW4.4 and higher, programmers can configure setting data SD55212 Bit 3. When this bit is set to 1, the controller automatically deletes the generated stock removal program (_PRG) or updated contour program (_CONR) immediately after the cycle runs. This prevents the directory clutter typical of older systems where these subprograms were preserved in memory indefinitely.
Lastly, deploying advanced functions such as Balance Cutting requires explicit machine configuration. If the programmer attempts to activate balance cutting without enabling Bit 6 of machine data MD52218, the controller halts with a tool preselection failure (Alarm 61059). The system enforces this link between software functionality and machine configuration to prevent unreleased cutting modes from causing mechanical damage.
Program Examples
; Define the finished-part contour using CYCLE62 N100 CYCLE62("CONTOUR", 1, , ); Execute Stock Removal Roughing with CYCLE952 N110 CYCLE952("ROUGH", , "CONTOUR", 1101311, 0.3, 0.15, 0, 2.5, 0.1, 0.1, 0.2, 0.1, 0.1, 0, 1)
; Execute Finishing using the same contour definition N120 CYCLE952("FINISH", , "CONTOUR", 1101421, 0.15, 0, 0, 0.1, 0.05, 0.05, 0, 0, 0, 0, 1)
Dry Run Verification Procedure: Before executing the cycle on a raw workpiece, run a dry run program test. Verify that the contour subprogram CONTOUR is loaded in the control directory. Set the feedrate override to 0% and execute the program block-by-block. Watch the graphic simulation window to confirm that the toolpath coordinates do not exceed the machine travel limits and that the tool nose radius compensation is calculated correctly. Check that the blank definition parameters do not cause the tool to engage in rapid traverse (G00) within the stock zone.
Error Analysis
| Brand | Alarm Code | Trigger Condition | Symptom | Root Cause & Resolution |
|---|---|---|---|---|
| Siemens | 61059 | Tool preselection fails because the Balance Cutting function inside CYCLE952 was called but has not been released. | The turret stops indexing during the tool preselection phase, halting the machine. | Machine data MD52218 $MCS_FUNCTION_MASK_TURN Bit 6 is not enabled. Enable Bit 6, clear the alarm with the RESET key, and restart the part program. |
| Siemens | 61051 | The main part program name is identical to the cutting file name (_PRG) or updated contour name (_CONR). | NC start is blocked, interpreter stops, and an alarm message appears on the screen. | Naming conflict in the control's file management system. Ensure the main program has a unique name distinct from subprograms, clear the alarm with RESET, and restart. |
| Siemens | 61052 | Maximum spindle speed for the main spindle has not been entered. | The cycle halts before beginning stock removal passes. | The maximum spindle speed limit parameter is missing. Enter the value, clear the alarm with the RESET key, and restart. |
Application Note
A hard collision with the chuck or vise jaws during deep longitudinal passes will occur if the blank contour boundaries are incorrectly defined in CYCLE952. Operators must ensure that the blank geometry is fully mapped using the preceding CYCLE62 call before running the turning cycles. When programming heavy stock removal, failing to set the blank limits causes the tool to engage in rapid traverse modes inside raw metal, causing severe mechanical force on the turret and spindle. Always verify that machine data MD52218 Bit 6 is activated before attempting balance cutting, as an unconfigured control will refuse to index the turret, leaving the tool trapped in the workspace.
Related Command Network
- CYCLE62 (Contour Call) — Declares the geometry of the finished part and blank contours that CYCLE952 uses for path generation. Similar to how siemens-cycle84-cycle99-threading-cycles define threading routines, CYCLE952 manages profile turning.
- CYCLE63 (Contour Milling Cycle) — Employs a similar subprogram generation logic to execute high-speed pocket and contour milling. While CYCLE952 processes external profiles, cycles like pocket3-pocket4-pocket-milling are deployed to mill internal rectangular and circular cavities.
- CYCLE64 (Contour Pocket Cycle) — Dynamically generates internal programs to rough and finish irregular pocket profiles. Similarly, slot1-slot2-slot-milling-cycles can be programmed for slotting operations on multi-tasking mill-turn centers.
Conclusion
Successful deployment of CYCLE952 depends on modular geometry separation, unique subprogram naming conventions, and correct machine data flags. Ensuring that CYCLE62 is programmed first, and verifying that the main program name remains distinct from subprograms, prevents unexpected cycle errors and mechanical damage on the shop floor.
FAQ
How do I resolve Alarm 61051 during CYCLE952 execution?
This alarm indicates a naming collision because your main program name matches the subprogram defined in _PRG or _CONR. Open your directory, rename your main part program or change the cycle's subroutine parameters, and reload the file to clear the error.
Why does the turret lock up with Alarm 61059 when using balance cutting?
The Siemens controller stops tool preselection because balance cutting is not activated in the parameters. Navigate to your controller's machine data screen, set Bit 6 of machine data MD52218 $MCS_FUNCTION_MASK_TURN to 1, press RESET, and restart the cycle.
How can I automatically delete auxiliary programs generated by CYCLE952?
The controller can automatically clear generated subprograms to free up memory instead of leaving them to clutter your directory. Set Bit 3 of setting data SD55212 $SCS_FUNCTION_MASK_TECH_SET to 1 to automatically delete these files upon cycle execution.
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 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.
Sinumerik POCKET3 and POCKET4 Milling Cycles: Siemens Guide
Master Siemens POCKET3 and POCKET4 pocket milling cycles. Learn parameters, avoid Alarm 61000 & Alarm 61105, and optimize toolpath insertion strategies.