Troubleshooting SINUMERIK 840D PowerLine G41/G42 TRC Failures

David Krause15 min read
Motion ControlSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview: G41/G42 Compensation Failure on SINUMERIK 840D PowerLine

A Danobat turning lathe equipped with a SINUMERIK 840D PowerLine controller running software version SW V9 reports that the cutter path produced by the G41 (compensation left of contour) and G42 (compensation right of contour) commands is geometrically wrong. The control accepts the modal G41/G42 request, does not raise an immediate alarm, but the resulting diameter, surface finish, and corner geometry deviate from the intended part profile. In some cases the program aborts with a TRC alarm on the second or third compensation block.

The behavior reported in the field is characteristic of a configuration mismatch rather than a controller defect: the PowerLine hardware and SW V9 firmware fully support 2D and 3D tool radius compensation on lathes. The compensation direction is therefore a function of (1) the active working plane (G17/G18/G19), (2) the cutting edge position number entered in the tool list, (3) the compensation type (CUT2D / CUT2DF / CUT3D / CUT3DFS) selected in the program or in machine data, (4) the geometric tool radius loaded into the active D offset, and (5) the structural integrity of the approach block.

Engineering note: On Siemens SINUMERIK 840D PowerLine controllers, the SW V9 baseline predates the 840D sl Solution Line. Several tool-compensation machine data and the default compensation type differ from later 840D sl defaults. Verify against the controller-specific programming manual before assuming any "default" value applies.

SINUMERIK 840D PowerLine TRC Fundamentals

Tool radius compensation (TRC, German: Fräserkorrektur, in turning also called Schneidenradiuskompensation SRK) on SINUMERIK controllers is structured around four functional blocks:

  1. Working plane selection (G17 = XY, G18 = XZ, G19 = YZ). For two-axis lathe turning, G18 is the active plane.
  2. Compensation activation (G41 / G42) and deactivation (G40) in conjunction with a linear motion block (G0 or G1).
  3. Cutting edge position for turning tools, a value from 1 to 9 stored in the tool list ($TC_DP7 or the HMI Tool List column "Edge position").
  4. Compensation type CUT2D / CUT2DF / CUT3D / CUT3DFS / CUT3DCC declared in the part program with CUT2D(...) etc., or defaulted via machine data $SC_CUTTING_EDGE_DEFAULT.

The compensation direction is computed from the relationship between the programmed contour direction and the stored cutting edge position number. If the active plane is wrong, the geometric interpretation flips. If the edge position number is wrong, the offset vector is mirrored across the wrong axis. The end result looks like "G42 going the wrong way," which is exactly the symptom reported.

Lathe Cutting Edge Position Numbers (Siemens Convention)

For turning tools, Siemens uses the same edge-position number convention as DIN/ISO 69873. The position is a single integer 1-9 that orients the tool nose relative to the coordinate system, viewed from behind the tool (i.e., looking from the spindle toward the turret):

Edge Position Nose Location Typical Application
1 Lower right Front turning, OD above center, rear of toolholder
2 Upper right OD turning, neutral toolholder orientation
3 Upper left OD turning, conventional right-hand holder (most common)
4 Lower left Front face turning, facing operations
5-8 Diagonal variants Special holders and inverted geometries
9 Same as 3 Reserved for cam-driven entries

For a typical OD turning pass with a right-hand tool holder, edge position 3 is the standard value. If the operator changed the edge position in the tool list and the compensation direction still appears wrong, the underlying problem is most likely the active plane or compensation type, not the edge position itself. Both edge position 1 and edge position 3 are commonly selected; the program must be reviewed against the physical holder orientation.

Field reference: A programmed G42 with edge position 3 in plane G18 offsets the tool to the +X side of the programmed contour (away from the spindle centerline). The same G42 with edge position 1 offsets to the -X side. A wrong-direction symptom on the displayed path is therefore a strong indicator that the edge-position number does not match the actual physical holder.

Plane Selection Requirements for Turning (G17/G18/G19)

SINUMERIK 840D PowerLine defaults to G18 (ZX plane) on turning channels, but the default can be overridden by a previous M30, by RESET, by a manual MDA block, or by a deliberate G17 or G19 left in the calling program. The plane that is active when G41/G42 is requested determines the compensation vector direction:

  • G18 (ZX): Tool offsets normal to the contour in Y. This is the correct plane for two-axis lathe turning (X = diameter, Z = length).
  • G17 (XY): Offsets normal to the contour in Z. Wrong for two-axis turning; produces a Z-direction shift that looks like "the tool is climbing in Z while it should be moving in X."
  • G19 (YZ): Offsets normal to the contour in X. Wrong for two-axis turning; the tool moves in the wrong diameter direction.

The sample program supplied with the fault report starts at N766 with no explicit plane selection. If the part program was previously run with G17 active and G40 was never re-issued at reset, the subsequent G42 activates against the wrong plane. Insert G18 at the top of the turning program (before any motion block) to lock the plane.

Compensation Type Configuration: CUT2D, CUT2DF, CUT3D, CUT3DFS

The compensation type controls how the tool-radius offset vector is computed relative to the programmed contour. On the 840D PowerLine with SW V9, the available types are:

Type Behavior Typical Use
CUT2D 2D compensation in the active working plane; tool radius always applied normal to the contour. Standard for turning. Lathe OD/ID/profile turning
CUT2DF 2D compensation with the tool radius held constant relative to the holder reference frame. Used when the holder orientation rotates but the programmed contour stays in the same plane. Multi-spindle lathes with rotating tools
CUT3D 3D compensation, normal to the surface in 3D space; for 5-axis milling. Mill-turn B-axis machining
CUT3DFS 3D face milling; tool radius applied perpendicular to the tool axis even when the tool is tilted. 5-axis face milling
CUT3DCC 3D circumferentially constant; for tangential cutting tools. Profile milling on cylindrical parts

If CUT3D or CUT3DFS has been activated in machine data $MC_CUTTING_EDGE_DEFAULT or in a prior program and is not reset, the 840D PowerLine will compute the offset vector in 3D and project it onto the active plane. On a two-axis turning channel with no third-axis motion, the projected vector is mathematically undefined or produces a zero-length offset, which manifests as "G41/G42 not working" — the tool follows the programmed contour without any radius offset.

Reset the compensation type explicitly with CUT2D at the beginning of the part program:

N760 CUT2D

Tool Data Requirements for TRC

For G41/G42 to produce a visible offset on a Siemens controller, three tool data elements must be correctly loaded in the active D offset:

Data System Variable Typical Value (Rough OD) Notes
Tool type $TC_DP1 500 (turning tool) 500 = turning, plane can be selected automatically
Cutting edge position $TC_DP7 3 Must match physical holder
Tool nose radius (geometry) $TC_DP6 0.4 - 1.6 mm Used for the offset vector
Wear radius (optional) $TC_DP8 0.0 mm initially Adds to geometry radius

If $TC_DP6 (geometry nose radius) is zero, the controller computes a zero-length offset vector and the G41/G42 call has no geometric effect. The tool still moves along the contour as if G40 were active. Verify with the HMI under Tools > Tool List > Geometry or by reading the system variable in the MDA window:

R10 = $TC_DP6[2,1]    ; reads nose radius of T2 D1
R11 = $TC_DP7[2,1]    ; reads edge position of T2 D1
R12 = $TC_DP1[2,1]    ; reads tool type of T2 D1

If R10 returns 0.0, the radius is not loaded and TRC is mathematically inert.

Programmatic Best Practices for G41/G42 Activation

The activation sequence on a Siemens controller is strict. The compensation call must be on a linear motion block (G0 or G1) that has a defined endpoint; it cannot be on a block with only G2/G3, on a dwell, or on a block with no motion. The approach block must contain a tool-length-compensation-compatible geometry.

Rewriting the sample program to a known-good structure:

N760 CUT2D
N762 G18                       ; lock working plane for turning
N764 T2 D1                     ; select tool and offset (radius loaded here)
N766 M6                        ; tool change (if applicable)
N768 G54                       ; work offset
N770 G96 S290 M4               ; constant surface speed, spindle on
N772 LIMS=500                  ; spindle speed clamp
N774 G0 Z5                     ; safe Z retract
N776 G0 X145 Z3                ; pre-position
N778 G42 G0 X145.5             ; activate G42 on linear approach block
N780 G1 X148.771 Z1.5 F0.4 M8 M11
N782 G1 X150.7 Z-4.836 F0.17
...

The activation of G42 is moved onto a separate G0 block with a small step in the offset direction (X145.5 in this example). This guarantees the controller has a valid linear approach vector to compute the offset against. Activating G42 on the same block as a complex Z-X interpolation (as in the original sample's N778-N780 pair) can produce an undefined approach direction on some SW V9 builds, which yields an offset applied in the wrong axis.

Critical: Never end a part program with G41/G42 still active. Always close with a G40 cancellation on a G0 or G1 motion block of sufficient length to allow the controller to fully retract from the offset vector. The PowerLine controller retains the modal state across M30 if the program is canceled, which can contaminate the next run.

Siemens 840D PowerLine TRC Alarm Reference

The following Siemens alarms are commonly raised when TRC configuration or activation is wrong. Each alarm number should be verified against the specific build of the 840D PowerLine programming manual in use, as alarm text and numbering can shift across SW releases:

Alarm Meaning (typical) Recovery
10750 TRC activated without prior G41/G42 call structure; or wrong plane. Verify G17/G18/G19 matches operation; insert CUT2D.
10751 Radius compensation requires G0/G1 in the activation block. Move G41/G42 onto its own linear motion block.
10752 Tool radius compensation - contour violation / wrong offset direction. Check edge position vs. physical holder; check active plane.
10753 Tool radius compensation - tool nose not considered. Verify tool type ($TC_DP1) and edge position ($TC_DP7) loaded.
10754 Tool radius compensation - tool radius = 0 in D offset. Enter geometry radius ($TC_DP6) in the active D offset.
10755 Tool radius compensation - tool type inconsistent with operation. Set tool type to 500 for turning; recompile tool list.
10760 TRC - contour calculation overflow. Reduce block length; avoid sub-micron motion blocks in compensation.

Alarms 10750-10755 are the most likely candidates when the symptom is "controller accepts G42 but path is geometrically wrong."

Root Cause Matrix and Symptom Mapping

Symptom Most Likely Root Cause Diagnostic Step
G42 produces path in -X instead of +X Wrong edge position (1 instead of 3 or vice versa) Read $TC_DP7, compare to physical holder
G42 has no effect at all; tool follows contour Geometry radius ($TC_DP6) = 0, or CUT3D active in 2D turning Read $TC_DP6 and $MC_CUTTING_EDGE_DEFAULT
Tool climbs in Z while G42 active Wrong plane (G17 instead of G18) Force G18 at program top; check reset state
Alarm 10751 immediately on G42 block G42 on non-linear or non-motion block Restructure activation block as G0/G1 with explicit endpoint
Alarm 10752 partway through the profile Contour too tight for tool radius Reduce depth of cut or use larger tool
Wrong path on first G42 block only, then correct Edge position right but approach direction wrong Add dedicated G42 activation block with small X step
Wrong path on every run, same geometry Tool list entry corrupted (e.g., wrong D-offset) Recreate D-offset from tool list; re-load from backup

Step-by-Step Diagnostic Procedure

  1. Confirm the SW V9 firmware build. From the HMI main screen, navigate to Diagnosis > Version > NCK and read the build identifier. Cross-reference against the Siemens 840D PowerLine programming manual for the controller's series to confirm which compensation features are supported.
  2. Force the working plane. Insert G18 at the top of the part program before any motion. If the path is corrected, the previous program left G17 or G19 modal and was never reset.
  3. Force the compensation type. Insert CUT2D immediately after G18. CUT2D is the correct type for two-axis turning and forces the controller to ignore any inherited CUT3D or CUT3DFS state.
  4. Deactivate before reactivating. Add G40 on its own G0 motion block before each G41/G42 activation. This ensures the controller cleanly exits the compensation state and re-enters with the correct vector.
  5. Restructure the activation block. Move the G42 call onto its own G0 block with a small step in the intended offset direction (for OD turning above the centerline, step in +X by the tool nose radius). The subsequent G1 block carries the programmed contour, not the activation.
  6. Verify the tool data. In the HMI Tool List, open the active D offset for T2 D1. Confirm tool type 500, edge position 3, and a non-zero nose radius. If the tool data has been imported from a CAM system, manually re-enter the values to overwrite any import artifacts.
  7. Check machine data. Inspect $MC_CUTTING_EDGE_DEFAULT, $MC_SUMCORR_DEFAULT, and $MN_MM_TOOL_MANAGEMENT_MASK. These determine the system-wide default compensation behavior; a change here affects every program that does not declare CUT2D explicitly.
  8. Test with a known-good profile. Replace the production program with a single OD turning pass (G0 X100 Z3, G42 G0 X100.4, G1 X102 Z-50 F0.2, G40 G0 X150). If this passes, the issue is in the program structure, not the controller.
  9. Recompile the tool list. If the tool data is correct but G42 still appears wrong, delete and recreate the D offset for T2 from scratch in the HMI. Backup the tool list first via Tools > Backup > Tool List.

Fusion CAM Compatibility and Smoothing

If the part program was post-processed from Autodesk Fusion, an additional source of G41/G42 path deviation is the post-processor's Smoothing setting. Fusion's Smoothing option inserts short intermediate blocks (typically splines converted to line/arc approximations) between the original contour segments. On controllers with strict block-look-ahead limits — and the 840D PowerLine SW V9 has a smaller look-ahead buffer than the 840D sl — the smoothing blocks can be too short for the controller's TRC look-ahead, producing false alarms or an offset applied to the wrong segment.

To eliminate this variable, disable Smoothing in the Fusion toolpath setup, regenerate the G-code, and re-test. Detailed guidance is available in the Autodesk support article G41/G42 interference error when run on the machine an NC code created in Fusion.

Practical caveat: The Autodesk article describes a CAM-side cause; the 840D PowerLine causes are independent. Disable Smoothing only after the controller-side checks above have been completed, otherwise a CAM-induced artifact may mask a real configuration fault.

Verification Procedure

After applying the corrections above, validate the fix with a structured test:

  1. Dry-run single block. Run the corrected program in Single Block mode from MDA. Confirm each block executes without alarm, and the displayed tool path trace on the HMI matches the programmed contour plus the radius offset.
  2. Air-cut test. Run the full program with the tool lifted 5 mm above the part (G0 Z+5 before G42). Confirm the displayed trace matches the expected offset path with no alarm.
  3. First-cut test on aluminum or soft steel. Measure the first diameter with calipers or a micrometer before proceeding to the next operation. A correctly compensated tool will hit the nominal diameter ±0.02 mm; an incorrect compensation will deviate by the full nose radius (typically 0.4 - 1.6 mm).
  4. Verify modal state at M30. At program end, the active modal display should show G40, not G41/G42. If G41/G42 persists across M30, the controller is in a stuck modal state; insert an explicit G40 cancellation block at program end.
  5. Lock the configuration. Once correct, back up the tool list, the machine data ($MC_*), and the compensated program. Future SW V9 reloads will not regress the working setup.

Long-Term Reliability Notes

On SINUMERIK 840D PowerLine controllers, three recurring causes of "G41/G42 going wrong" appear across multiple sites: (a) tool list values overwritten by a CAM import, (b) program fragments copied from milling operations that left G17 active, and (c) a CUT3D or CUT3DFS default that was set by a prior commissioning engineer for mill-turn and never reverted. All three are configuration issues, not firmware faults. The PowerLine SW V9 firmware does not have a known G41/G42 defect that causes compensation direction reversal on correctly configured channels.

For commissioning new turning programs on the same controller, adopt a standard header:

;*** STANDARD TURNING HEADER ***
G18 G54 G90 G95
CUT2D
G0 Z100
;*** END HEADER ***

This header locks the plane (G18), sets the work offset (G54), forces absolute mode (G90), sets feed-per-revolution (G95), and forces 2D compensation (CUT2D) regardless of any prior modal state. The header should be the first non-comment block of every turning program on this controller.

For official documentation references and field advisories, the primary resource is the Siemens Industry Online Support portal at support.industry.siemens.com, where controller-specific programming manuals, alarm help texts, and machine data references for the 840D PowerLine series are maintained.

Why does G42 produce a path in the wrong X direction on my 840D PowerLine lathe?

The most common cause is the cutting edge position number ($TC_DP7) not matching the physical tool holder orientation. For OD turning with a right-hand holder, edge position 3 is standard. Verify the value in the HMI Tool List against the actual holder and reread the value with R10 = $TC_DP7[2,1] in MDA.

Can the active plane cause G41/G42 to appear "not working" without an alarm?

Yes. If G17 (XY) or G19 (YZ) is active instead of G18 (ZX) on a two-axis turning channel, the controller computes the offset vector in the wrong plane. The compensation is mathematically valid but geometrically misaligned. Insert G18 at the top of the program to lock the plane.

What Siemens alarm indicates that G41/G42 was activated on a non-linear block?

Alarm 10751 ("Radius compensation activated without G0/G1" or similar wording) is raised when G41 or G42 is called on a block that does not contain a linear motion with a defined endpoint. Move the G41/G42 call onto its own G0 or G1 block with an explicit endpoint.

Does SINUMERIK 840D PowerLine SW V9 have a known G41/G42 firmware bug?

No firmware defect in SW V9 reverses compensation direction on a correctly configured channel. All reported "G41/G42 wrong direction" cases on this platform trace back to configuration: active plane, cutting edge position, compensation type, or zero tool radius in the active D offset. Check these four items before suspecting the firmware.

How do I reset the compensation type from CUT3D back to CUT2D?

Insert CUT2D in the part program at the start of the turning operation. The declaration is modal and persists until overridden. To force a permanent default, change machine data $MC_CUTTING_EDGE_DEFAULT to 0 (CUT2D) and save with the controller in commissioning mode.

Back to blog