Resolving SINUMERIK C-Axis Positioning Errors After Drilling Cycles
Problem Overview
Operators running DMG MORI multi-axis turning-milling machines with Siemens SINUMERIK 840D sl controllers frequently encounter alarm conditions when attempting to position the C-axis immediately after a drilling cycle completes. The typical symptom is the NC refusing to index the spindle to a new angular position, returning an alarm that indicates no valid transformation or positioning block can be executed at this point in the program.
This is a documented behavior of the SINUMERIK kinematics model. Standard drilling cycles do not implicitly activate a frame or transformation, and they do not force a defined spindle position state at cycle exit. When the C-axis is commanded to rotate to a new angular coordinate while the controller still has a milling-mode transformation active (commonly TRANSMIT, TRACYL, or TRAORI), the NC raises an alarm because C-axis indexing requires a consistent kinematic state with the spindle in pure axis mode.
The standard drilling cycles are passive with respect to transformations. Any active transformation that existed before the cycle call remains active after the cycle returns.
Root Cause: Transformation State Conflict
The SINUMERIK distinguishes between three operating modes for the main spindle on a turning-milling machine:
-
Spindle mode — rotational speed control, controlled through
M3,M4,M5, andS. -
Axis mode — DC-coupled, position-controlled, addressed through the C-axis name or through
SPOS/M70. -
Interpolated mode — combined with linear axes through an active transformation (
TRANSMIT,TRACYL,TRAORI).
Standard drilling cycles (CYCLE81, CYCLE82, CYCLE83, CYCLE84, CYCLE85, CYCLE86, CYCLE87, CYCLE88, CYCLE89) operate inside the active coordinate system. If a TRANSMIT or TRAORI transformation is active at the time the cycle starts, the cycle executes inside that transformed space and the C-axis remains implicitly coupled. After the cycle ends the transformation is not automatically deactivated. A subsequent C-axis indexing command issued without first deactivating the transformation triggers alarm 14092 or 14093 depending on the installed firmware revision.
The header bar of the SINUMERIK HMI displays the currently active transformation, plane, and frames at all times. On DMG MORI machines running CELOS the same status information is available through the SINUMERIK diagnostics view inside the CELOS Documents pane. This is the first location to verify the kinematic state before issuing a positioning command.
Diagnostic Procedure
Follow this sequence to identify the active kinematic state before commissioning the C-axis move:
- Switch the controller to JOG mode.
- Press the HELP key on the HMI. The system lists every PDF manual installed on the controller.
- Navigate to the active G-code program. The header line above the program window shows the active transformations, frames, and plane selection.
- On DMG MORI machines with CELOS, open the Documents application. The Siemens programming and operating manuals for the installed SINUMERIK version are available there as PDFs.
- Confirm whether
TRANSMIT,TRACYL, orTRAORIappears as active. - If a transformation is active, note whether the current spindle position is being driven as a coupled C-axis or as a free spindle.
Solution: Deactivate the Transformation with TRAFOF
The standard remedy is to deactivate the active transformation explicitly using the TRAFOF command before issuing any C-axis positioning move that must take place in the machine coordinate system rather than the transformed system.
; --- Step 1: drilling cycle with active TRANSMIT ---
TRANSMIT
G0 X50 Z2
CYCLE83(50, 0, 2, -15, , 3, 0.5, 0, 0, 0, 90, 0)
; --- Step 2: explicitly deactivate the transformation ---
TRAFOF
; --- Step 3: index the C-axis in plain spindle mode ---
SPOS = 90
; --- Step 4: continue with subsequent operations ---
G0 X100
If the machining sequence contains a turning operation between the drilling cycle and the C-axis positioning move, the controller deactivates the milling-side transformation automatically because the active cutting mode switches from milling to turning. This is why an intermediate turning pass can serve as an implicit TRAFOF. The behaviour is real but fragile and depends on the cycle configuration. The explicit TRAFOF approach is preferred for production code.
C-Axis Operation Fundamentals
The C-axis on a turning-milling machine is implemented by closing the position loop on the spindle motor encoder. Two implementation variants exist, documented in the Siemens C-Axis Function Manual:
| Variant | Loop Location | Command Interface |
|---|---|---|
| Integrated C-axis | In the spindle drive (SINAMICS S120) |
SPOS, M70, C-axis name |
| NC-side C-axis | In the NC |
SPOS, M70, C-axis name |
In both cases the spindle transitions between speed control and position control through the M70 command or the equivalent SPOS command with a target position. The functional difference matters for the achievable dynamics and for the firmware-level commissioning parameters, not for the G-code interface.
When the C-axis is positioned through SPOS the spindle comes to rest at the commanded angle. SPOSA performs the same function but defers the position stop to the next NC block boundary, which is the mechanism used for drilling on-the-fly with coordinated axis motion.
; Position C-axis to 90 degrees with explicit block transition
SPOS = 90
; Position C-axis with deferred stop (drill while moving)
SPOSA = 180
Drilling Cycles and Transformation Interaction
The SINUMERIK ShopMill and ShopTurn cycle masks expose the C-axis through the "Positioning" input field. Internally the cycle generates an SPOS block when needed. The cycle does not generate a TRAFOF or TRAORI command. The transformation must already be in the correct state when the cycle is called.
| Cycle | Internal C-Axis Handling | Required Pre-State |
|---|---|---|
CYCLE81 (drilling, centring) |
None | Any |
CYCLE82 (drilling with dwell) |
None | Any |
CYCLE83 (deep hole drilling) |
None | Any |
CYCLE84 (tapping, rigid) |
SPOS for spindle stop |
Spindle in axis mode |
CYCLE85 (boring) |
SPOS for retract |
Spindle in axis mode |
CYCLE86 (boring with stop) |
SPOS for spindle stop |
Spindle in axis mode |
CYCLE87 (boring with manual retract) |
None | Any |
For cycles that require spindle positioning (CYCLE84, CYCLE85, CYCLE86) the operator must confirm that the spindle is in axis mode (M70 issued, or SPOS programmed at least once) before the cycle starts. The cycle mask exposes this through the "Spindle stop" toggle in the parameter screen.
Verification
After inserting the TRAFOF command, verify the fix through the following checks:
- Run the modified program in Single Block (SBL) mode.
- Confirm the G-code listing header shows no active transformation after the
TRAFOFblock executes. - The C-axis should move to the commanded angle without alarm and with the spindle in axis mode.
- Check the active kinematic state through the Axis diagnostics screen on the HMI. The spindle section should show Axis mode active.
- Run the program in AUTO mode with reduced rapid override (25%) before production release.
Accessing Siemens Documentation on the Machine
DMG MORI machines running SINUMERIK controllers provide the official Siemens documentation through two paths:
- HELP key in JOG mode: Press the HELP key while the controller is in JOG mode. The system displays the manuals installed on the controller. Search for the cycle name (e.g. "CYCLE83") or the function keyword (e.g. "TRANSMIT") to access the relevant programming manual section.
- CELOS Documents pane: On DMG MORI machines with the CELOS HMI, the Documents application contains the Siemens programming and operating manuals as PDFs, indexed by part number and software version.
External download is available from the Siemens Industry Online Support portal. Search for the controller part number (e.g. 6FC5370-AA00-0AA0 for SINUMERIK 840D sl) to locate the matching programming manual.
Common Pitfalls
-
Implicit transformation in cycle call: Some ShopMill and ShopTurn cycles wrap the user code in a
TRANSMITblock. InsertingTRAFOFinside the cycle call has no effect because the wrapper re-activates the transformation on cycle exit. -
Frame persistence: Active frames (
ROT,AROT,TRANS,MIRROR,SCALE) surviveTRAFOF. They must be cleared separately withROT,AROT, orTRANSissued without parameters. -
Plane change:
G17/G18/G19affects the drilling cycle plane interpretation. It does not affect C-axis positioning but can cause intermittent alarms if the plane is inconsistent with the active transformation. -
Block search: Use
SERUPROmode for block search with transformation changes. A standard block search can leave the controller in an inconsistent kinematic state because the search skips over theTRAFOFblock. -
Modal C-axis switch: Issuing
SETMS(n)to switch the master spindle does not deactivate the active transformation. Verify the state after any spindle swap.
Production-Ready Programming Template
; ============================================
; Multi-axis drill-and-index sequence
; Tested on DMG MORI CTX beta 1250
; with SINUMERIK 840D sl SW 4.7 SP3
; ============================================
G18 G54 ; Select turning plane, set work offset
TRANS Z2.5 ; Shift zero by Z2.5 mm
; --- Drill first hole at C=0 ---
TRANSMIT
G0 X50 Z2
CYCLE81(10, 0, 2, -8)
; --- Index to next angle ---
TRAFOF ; Deactivate transformation
SPOS = 60 ; Rotate C-axis to 60 degrees
M70 ; Ensure axis mode (redundant with SPOS)
TRAFOF ; Idempotent safety call
; --- Drill at C=60 ---
TRANSMIT
G0 X50 Z2
CYCLE81(10, 0, 2, -8)
; --- Repeat pattern as needed ---
TRAFOF
SPOS = 120
TRAFOF
TRANSMIT
G0 X50 Z2
CYCLE81(10, 0, 2, -8)
; --- Final cleanup: deactivate, return to spindle mode ---
TRAFOF
SETMS(1)
M30
The second TRAFOF call after each SPOS is intentional. TRAFOF is idempotent and protects against a transformation being reactivated by a cycle mask configuration the operator has forgotten.
Related Siemens Commands Reference
| Command | Purpose | Typical Use |
|---|---|---|
TRAFOF |
Deactivate all active transformations | Before C-axis indexing |
TRAORI(n) |
Activate n-axis orientation transformation | 5-axis milling |
TRANSMIT |
Activate polar (turning + milling) transformation | C-axis milling on Y axis |
TRACYL(d) |
Activate cylinder surface transformation | Peripheral milling on rotary part |
SPOS[axis]=a |
Position spindle/axis to angle a | C-axis indexing |
SPOSA[axis]=a |
Position with block-boundary stop | Drill on the fly |
M70 |
Force spindle to axis mode | Legacy interface |
ROT / AROT
|
Frame rotation | Optional, separate from TRAFOF |
SETMS(n) |
Set master spindle | Multi-spindle machines |
Safety Notes
Always run modified programs first in Single Block with Dry Run enabled. C-axis indexing moves the rotating tooling and the workpiece; an incorrect transformation state can cause collisions with the chuck, tailstock, or tool turret. Verify clearance in JOG before each test run.
For drilling operations that combine C-axis rotation with linear interpolation (helical drilling, circle milling around a bore), keep the spindle in transformed mode and use SPOSA rather than SPOS to coordinate the position stop with the linear motion. Switching to plain spindle mode mid-helix will desynchronise the interpolator.
Troubleshooting Matrix
| Alarm | Likely Cause | Remedy |
|---|---|---|
| 14092 — channel %1 axis %2 incorrect transformation type | Active transformation conflicts with SPOS command |
Insert TRAFOF before SPOS
|
| 14093 — channel %1 axis %2 transformation selection error | Transformation changed mid-block | Split transformation change and SPOS into separate NC blocks |
| 16730 — channel %1 axis %2 transformation not active |
SPOS issued before any transformation set up, while CYCLE expected TRANSMIT
|
Issue TRANSMIT before drilling cycle that needs polar mode |
2130 — NC block missing TRAFOF
|
Reference axis changed with transformation active | Issue TRAFOF before reference axis change |
How do I find the active transformation on a SINUMERIK controller?
Open the G-code program window. The header bar above the program block display shows the active transformation (TRANSMIT, TRACYL, TRAORI) and the active frames (TRANS, ROT, MIRROR). On DMG MORI machines with CELOS HMI the same information is available through the SINUMERIK axis diagnostics view under Menu > Diagnostics > Axis.
Why does inserting a turning operation between drilling and C-axis positioning resolve the alarm?
The controller switches the active kinematic chain when the cutting mode changes from milling to turning. The milling-side transformation (TRANSMIT or TRAORI) is deactivated implicitly by the turning operation, so the subsequent SPOS command sees a clean machine coordinate system. This is an implicit workaround; an explicit TRAFOF is the documented solution.
Does TRAFOF also clear frames like TRANS or ROT?
No. TRAFOF only deactivates kinematic transformations. Frames persist and must be cleared separately with ROT (or AROT) and TRANS issued without parameters, or with the corresponding reset commands documented in the SINUMERIK programming manual.
Which Siemens manual documents drilling cycle behaviour with transformations?
The SINUMERIK 840D sl Programming Manual (function-related, basics) section on standard cycles covers this interaction. The document is available on the controller through the HELP key in JOG mode and on the Siemens Industry Online Support portal under the controller part number.
Can I program SPOS without an active transformation?
Yes. SPOS positions the spindle in pure spindle mode without requiring any transformation. The transformation is only required when you need to interpolate the C-axis with linear axes for milling or helical motion. For indexed drilling at fixed C-angles, TRAFOF followed by SPOS is the correct sequence.