Sinumerik 828D: Resolving Feedrate Cap on X-C1 Interpolation

David Krause16 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

Sinumerik 828D: Resolving Feedrate Cap on X-C1 Multi-Axis Interpolation

A Sinumerik 828D controlling a 3-axis camshaft grinder (X, Z linear; C1 rotary) reports a hard path feedrate ceiling of roughly 6000 mm/min when X and C1 interpolate together, even though the program issues F150000 and individual single-axis moves honor it. Per-axis MD32000 values are 30000 mm/min on X and 30000 RPM on C1, and raising an apparent path-clamp MD from 10000 to 20000 mm/min did not change the cap. This article walks the field diagnosis from the geometry of the path through the channel-level clamps to the PLC-issued overrides, then prescribes a corrective sequence that an OEM-trained service engineer can apply safely.

Field note. A 6000 mm/min cap that disappears in single-axis motion and is unaffected by per-axis MD changes is almost always a path-level or override-level clamp, not a per-axis ceiling. Treat the symptom as a vector cap, not an axis cap.

1. Symptom Summary

Item Value
Controller Sinumerik 828D
Application Camshaft grinding
Axes X (linear), Z (linear), C1 (rotary/round)
Interp. pair investigated X + C1 (FGROUP(C1,X))
Programmed F 150000 (mm/min in G94)
Observed path feedrate (2-axis) ~6000 mm/min, hard ceiling
Observed path feedrate (1-axis) F150000 honored
MD32000 X 30000 mm/min
MD32000 C1 30000 RPM
MD55201 (path clamp) 10000 → 20000 mm/min (no effect)

Program excerpt:

FGROUP(C1,X)
C1=1.8350  X28.0875 F150000
C1=2.7624  X28.0720
C1=3.6845  X28.0505
C1=4.6058  X28.0228
C1=5.5346  X27.9887
C1=6.4542  X27.9488
C1=7.3835  X27.9023
C1=8.2982  X27.8499
C1=9.2338  X27.7912
C1=10.1550 X27.7268
C1=11.0755 X27.6564
C1=12.0047 X27.5792
C1=12.9277 X27.4966
C1=13.8569 X27.4073
C1=14.7771 X27.3129
C1=15.7057 X27.2117
C1=16.6330 X27.1047

2. Why Simultaneous Motion Feels Slower: Path Feedrate Geometry

The F word on a Sinumerik controller is path feedrate, not per-axis feedrate. When FGROUP(C1,X) is active, the controller builds a 3-D path from the linear X axis plus the tangential length contribution of the rotary C1 axis. The path length per block becomes:

Lpath = sqrt( ΔX² + ( r · ΔθC1 · π/180 )² )

where:

  • ΔX = linear X displacement in the block [mm]
  • ΔθC1 = programmed C1 angle change in [deg]
  • r = effective tangential radius at the contact point (workpiece OD/2 for camshaft OD grinding) [mm]

The required per-axis velocities to honor F are:

vX = F · ( ΔX / Lpath )
vC1,RPM = ( F / ( 2πr ) ) · ( ΔθC1 / Lpath ) · 60

If either derived axis velocity exceeds its per-axis limit, the controller clamps the path feedrate F to whatever keeps both axes inside their envelopes. This is the mechanism that produces a fixed ceiling typical of the lowest per-axis path limit, and it explains why the cap does not move when only one axis is interpolated.

2.1 Worked numeric example

Block 1 in the program: ΔX = 28.0875 − (previous X), ΔθC1 = 2.7624 − 1.8350 = 0.9274°, F = 150000 mm/min, r = 25 mm (assumed OD/2).

  • Linear contribution: 0.9274° × π/180 × 25 mm = 0.4047 mm
  • Lpath ≈ sqrt( ΔX² + 0.4047² ) ≈ ΔX (linear-dominant block)
  • vC1,RPM = 150000 / ( 2 π · 25 ) × ( 0.4047 / ΔX ) × 60

For very small C1 increments per block, the rotary axis is not the bottleneck; the linear axis is. The 6000 mm/min cap therefore points to a path/PLC/override clamp rather than a per-axis C1 limit, since C1 is barely moving in the first block.

3. The 6000 mm/min Cap — Why MD32000 Cannot Explain It

MD32000 $MA_MAX_AX_VELO is a per-axis ceiling. With X at 30000 mm/min and C1 at 30000 RPM, an interpolated path at 150000 mm/min over a linear-dominant block requires only ~150000 mm/min of X velocity, which already exceeds the per-axis ceiling by 5×. The controller will clamp the path to 30000 mm/min in that scenario, not 6000 mm/min. So MD32000 is one clamp, but the additional 5× reduction to 6000 mm/min must come from a different source.

Sinumerik applies a tiered set of clamps at the path/channel level for the interpolated vector:

  1. Channel-level path clamp (MD55201 / OEM-specific path-axis ceiling).
  2. PLC-issued velocity reduction (MD36200 plus DB31..DBX3.6, DBX3.7).
  3. Override switch on the MCP (feedrate override, rapid-traverse override).
  4. Dry-run / single-block / M0/M1 behavioural clamps.
  5. FGROUP collapse when the path-controlling axis set is empty or wrong.
  6. Drive-side limit (SINAMICS S120 p1082, p2000, current limit r1407.5).
  7. Jerk-limited path (MD32400, MD32410, MD32420).

The combination of (1) and (3) is the most common field cause of a 6000 mm/min cap, particularly when MD55201 is set conservatively and the operator panel override sits at 20%.

4. Machine Data Audit Checklist

Use HMI > Setup > Machine Data to read and document every MD in this section before any change. Capture an NC MD archive and a card image before writing. Reference: SINUMERIK 828D List Manual.

4.1 Axis-level ceilings

MD Symbolic name Typical 828D value What it limits
MD32000 $MA_MAX_AX_VELO 30000 mm/min (X), 30000 RPM (C1) Per-axis max velocity
MD32010 $MA_JOG_VELO_RAPID OEM-set Rapid in JOG
MD32020 $MA_JOG_VELO OEM-set JOG velocity
MD32200 $MA_POSCTRL_GAIN 1.0 1/s Servo gain (affects following error, not F)
MD32300 $MA_MAX_AX_ACCEL OEM-set Axis acceleration
MD32400 $MA_AX_JERK_LIMIT OEM-set Axis jerk (smoothing, indirect F cap)
MD32410 $MA_AX_JERK_TIME 0.02 s Jerk smoothing time
MD32420 $MA_AX_JERK_FACTOR 1.0 Jerk reduction factor
MD36200 $MA_AX_VELO_LIMIT 0 (no PLC reduction) PLC-issued velocity limit (set via FC18 / DB31..DBX3.6)
MD36610 $MA_AX_EMERGENCY_STOP_TIME 0.5 s Decel reference for E-stop

4.2 Channel / path-level ceilings

MD Symbolic name What it limits
MD20100 $MC_DIAMETER_AX_DEF X as diameter axis (scales X by 2 for F)
MD20110 $MC_RESET_MODE_MASK Bit mask for reset behaviour (FGROUP persistence, G94/G95 persistence)
MD20112 $MC_START_MODE_MASK Start-up behaviour for G-code groups
MD20150 $MC_GCODE_DEFAULT_SETTINGS_P Default G-code profile including FGROUP
MD20170 $MC_COMPRESS_BLOCK_PATH_LIMIT Block compression path; hidden blocks compressed; F reissued only at the resulting block
MD20172 $MC_COMPRESS_VELO_TOL Compressor velocity tolerance
MD20180 $MC_BLOCK_SEARCH_DEFAULT_F F applied during block search (not the programmed F until search run completes)
MD55201 (OEM-reserved / build-specific) Path-axis ceiling for FGROUP axes
MD55201 is OEM/build-specific. On standard Sinumerik 828D builds the MD55xxx range is OEM-reserved. A write to an inactive MD is accepted by the controller but has no effect on the path feedrate. The symptom in the source (write accepted, no behavioural change) is consistent with an inactive MD on this build. Verify the MD is active in every channel before relying on it.

4.3 Round-axis (C1) specific

MD Symbolic name Typical value (C1 round axis)
MD30300 $MA_IS_ROT_AX 1 (rotary)
MD30310 $MA_ROT_IS_MODULO 1 (modulo 360°)
MD30320 $MA_DISPLAY_IS_MODULO 1 (modulo display)
MD30330 $MA_MODULO_RANGE_START
MD30340 $MA_MODULO_RANGE_END 360°
MD31050 $MA_DRIVE_AX_RATIO_DENOM OEM (gear ratio)
MD31060 $MA_DRIVE_AX_RATIO_NUMERA OEM (gear ratio)

5. Program-Level Override and FGROUP Inspection

Path-level clamps in MDs cannot be interpreted without the program-side state. Verify all of the following from the HMI service display (HMI > Diagnostics > NC/PLC > Service Display) and the program view:

5.1 Active FGROUP

FGROUP(axis1, axis2, ...) defines the path-controlling axes. If FGROUP is empty or points only to non-moving axes, the controller falls back to the channel default path feedrate — frequently 6000 mm/min on 828D commissioning builds. The diagnostic display "Path feedrate of axes" shows which axes are currently contributing. Required reading:

  • Active FGROUP set (e.g., (X, C1))
  • Effective path feedrate displayed
  • Per-axis velocity contribution displayed

5.2 Active G94 / G95

G95 (feed per revolution) ties F to the spindle speed. If G95 is active and the spindle reset, halted, or in C-axis mode without S, the path feedrate collapses to zero or to a fraction of the programmed value. Lock the unit with G94 in the same block as F150000 when the spindle is not a feed driver.

5.3 Override switch state

Read DB21..DBB4 (feedrate override), DB21..DBB5 (rapid-traverse override), and the MCP hardware switch position. Common MCP encodings:

MCP switch Override % F150000 effective
Position 1 0% 0 (NC may alarm)
Position 2 10% 15000 mm/min
Position 3 20% 30000 mm/min
Position 4 50% 75000 mm/min
Position 5 100% 150000 mm/min

A 20% override on a 30000 mm/min channel ceiling yields the exact 6000 mm/min cap reported. This is the single most common field cause and matches the source symptom almost exactly. Reference: SINUMERIK 840D sl / 828D Basic Functions — ID 64932982 describes the feedrate-override-via-MCP mechanism that produces this cap.

5.4 G0 vs G1

Any G0 in the path forces rapid-traverse logic, not path feedrate. If a stray G0 is in the program (e.g., from a previous tool change), the interpolated motion falls under the G0 ceiling ($MN_RAPID_EXTERN_ORI_IPO family of MDs) rather than the G1 ceiling.

5.5 Block search / dry run

Block search inserts its own F value (default 0 or MD20180). The programmed F150000 is not applied until the search run completes. Dry-run feed (DB21..DBX0.6) is an additional override path that can clamp the F value.

6. Most Probable Root Cause Order

Given the source symptom (cap ≈ 6000 mm/min, disappears in single-axis, FGROUP explicitly set, MD55201 modification ineffective), investigate in this order:

  1. Feedrate override on the MCP at 20% — 30000 mm/min × 20% = 6000 mm/min. The most common field cause of this exact number.
  2. FGROUP effectively empty — controller falls back to default 6000 mm/min.
  3. MD55201 inactive or build-specific — the source already shows that writing to it produced no change, indicating the MD is not active on this build.
  4. MD36200 reduced by PLC — check DB31..DBX3.6 and DBX3.7 and any user-defined SAFE_RED block.
  5. G95 active with missing spindle speed — if C1 is in spindle mode and S is undefined, F95 collapses.
  6. Drive-side clamp in SINAMICS S120 (p1082, r1407.5).
  7. Jerk limit at the channel level forcing the path to be smoothed down.

7. Diagnostic Procedure

  1. Override sanity check. Set the feedrate override to 100% on the MCP. Set the rapid-traverse override to 100%. Issue F150000 in MDI with FGROUP(C1,X) and the same block geometry. Run it. If the cap lifts, the override was the cause; document and resume.

  2. FGROUP sanity check. In the active program, add a comment line ;FGROUP TEST and verify in HMI > Diagnostics > NC/PLC > Service Display that the path-controlling axes are C1 and X. Run FGROUP(C1,X) standalone in MDI, then issue the F150000 block. If the cap disappears, the production program was not running FGROUP in its current scope (resets, M30, M0, etc.).

  3. MD inspection (axis-level). Open HMI > Setup > Machine Data > Axis MD and confirm MD32000 = 30000 (or higher) for both X and C1. Read MD36200 on X and C1 — a non-zero reduced value indicates PLC-issued limiting. Read MD32400, MD32410, MD32420 (jerk limits) and MD32300 (accel). Tight jerk limits lower the effective F through path smoothing.

  4. MD inspection (channel-level). Open Channel MD and read MD55201 in every channel. If the value writes successfully but the path does not respond, the MD is inactive on this build. Read MD20150, MD20110, and MD20112 to understand reset/startup behaviour of FGROUP and the G94/G95 group.

  5. Drive-side clamp. Open Starter / Startdrive and connect to the SINAMICS S120 for X and C1. Read p1082 (max motor speed) and p2000 (reference speed). On the path, F150000 mm/min is divided by the gear/screw ratio; ensure the resulting motor rpm is inside p1082 and inside r1407.5 (current limit). If the drive-side limit is active, the NC path feedrate is automatically capped by the controller to keep the drive inside its envelope.

  6. Spindle/axis mode for C1. If C1 is a round axis, confirm it is configured as a rotary axis (MD30300 = 1, MD30310 = 1, MD30320 = 1, MD30330 = 0°, MD30340 = 360°). If C1 is configured as a spindle, the velocity is governed by spindle MDs (MD35100, MD35130, MD35200) instead of axis MDs.

  7. FGROUP persistence. Verify that FGROUP is not being reset by a G-code group reset, M30, M0, or M1. If it is, place the FGROUP call in a startup block (e.g., _N_INITIAL_INI) or in the program PROC block.

  8. Service display capture. With the cap active, capture screenshots of the service display, the MCP override position, and the active program block. This is the field evidence the OEM will need if the cap is OEM-set.

8. Step-by-Step Correction

8.1 If override is the cause

  • Document the production override (often 20% for safety during commissioning).
  • Restore to 100% for performance runs.
  • If the OEM intentionally set 20% for protection, leave it and update the program comment.
  • Add a PLC block that latches the override to 100% in AUTO mode (DB21..DBB4 writes are only allowed in JOG for the operator).

8.2 If FGROUP is the cause

  • Add FGROUP(C1,X) in the program PROC or in a startup NC block.
  • Confirm the active channel recognizes it via the service display.
  • Add FGROUP() to clear the group at program end if a subsequent G0 is to use rapid logic.

8.3 If MD55201 is the cause (and active)

  • Increase the value in 20% increments.
  • Re-test under no-load conditions.
  • Confirm with the OEM that the new value respects the mechanical envelope (axes geometry, drive rating).

8.4 If MD36200 is the cause

  • Trace the PLC program (typically LBP_Chan1 or an OEM-supplied SAFE_RED block).
  • Identify which logic issues the reduction.
  • Coordinate with the OEM to remove or adjust the reduction.

8.5 If drive-side clamp is the cause

  • Raise p1082 if the motor allows.
  • Raise MD32000 to match.
  • Verify axis mechanics (ballscrew lead, gear ratio) and re-test.

8.6 If jerk limit is the cause

  • Raise MD32400, MD32410, or MD32420 in OEM-approved steps.
  • Re-test with the same F150000 block; capture the smoothing display.

9. Verification

After each change, verify with the following sequence:

  1. Single-axis dry-run: X-only with F150000 should display ~2500 mm/s (=150000 mm/min ÷ 60). If the unit reads in mm/s on the operator panel, this is normal — verify the conversion.
  2. C1-only with F150000: rotation should be smooth; rpm should match the F/R/2π conversion.
  3. Combined X+C1 with F150000: path feedrate should match the F word within ±2% (rounding to NC IPO).
  4. Display on the operator panel: HMI > Diagnostics > Axis > "Active position" and "Actual velocity". Confirm no axis hits its MD32000 ceiling.
  5. Override sweep: 100%, 50%, 20% with the same block. The actual feedrate should scale linearly. If it does not, the override path is not honoured and the channel-level clamp is still active.
  6. No-load service display: capture the service display, MCP override position, and the active block. Save as a screenshot for the maintenance log.

10. Preventive Configuration

  • Set MD20150 $MC_GCODE_DEFAULT_SETTINGS_P to include FGROUP(C1,X) as the default for the camshaft program.
  • Add a startup block in the _N_CMA_DIR/_N_INITIAL_INI directory issuing FGROUP(C1,X) automatically. This survives reset/M30/M0 in the program body.
  • Lock the feedrate override to 100% in the production cycle using PLC logic on DB21..DBB4.
  • Add a daily-check NC block in the maintenance program that exercises both axes simultaneously with F150000 and verifies the displayed velocity. The block can also be an automated diagnostic (e.g., trigger an alarm if displayed F < 100000 for F150000 programmed).
  • Document the FGROUP scope and the override conventions in the machine's programming manual.
  • Use SINUMERIK 840D sl / 828D Programming Manual as the canonical reference for FGROUP semantics in your team's training material.

11. Behaviour on Sinumerik 840D sl and Other Builds

Sinumerik 840D sl shares the FGROUP mechanism and the path-clamp tiering with 828D, but the channel-MD range is larger (MD5xxxx is the standard path-clamp area on 840D sl, while on 828D the same range is OEM-reserved). If the same symptom appears on an 840D sl, the standard path-clamp MDs become:

MD Symbolic name Effect
MD55200 $NC_PARAD_AX_VELO_MAX Max velocity for parallel axes (path axis)
MD55201 $NC_PARAD_AX_VELO_MIN Min velocity for parallel axes (path axis)
MD55210 $NC_PATH_VELO_FACTOR Path velocity scaling factor
MD55212 $NC_PATH_VELO_MAX Max path velocity for FGROUP

On 828D these MDs are OEM-reserved unless the OEM activates them. The field engineer should always verify which MD is active on the build by writing a test value and observing the response — exactly the pattern the source engineer reported.

12. Safety, OEM Coordination, and Disclaimer

  • Always back up the NC MD archive before any change. Use HMI > Setup > Commissioning > Series commissioning and export to a USB card image as well.
  • Coordinate all MD changes with the machine OEM. The OEM has set MD32000, MD55201, MD36200, and the jerk/accel limits based on the actual mechanical envelope of the machine. Raising these values above the OEM recommendation can result in mechanical damage, axis collisions, or warranty loss.
  • Do not raise the drive-side p1082 or p2000 without consulting the SINAMICS S120 commissioning manual. Reference: SINAMICS S120 List Manual.
  • This article is a diagnostic aid for trained service engineers. The root cause and the corrective MD value are machine-specific and must be validated against the machine builder's documentation.
  • Wear appropriate PPE and follow lockout/tagout procedures before opening the cabinet. Verify axis enable state, drive enable state, and the safety circuit before any manual movement.
  • Run the corrected program in single-block, dry-run, and 20% override first. Step the override up to 100% in 20% increments and observe the smoothing display on the service page.

13. Diagnostic Flowchart

Path feedrate capped at ~6000 mm/min on X+C1? Step 1: Set MCP feedrate override to 100% Step 2: Verify FGROUP(C1,X) is active in service display Step 3: Verify G94 active, no G0 in path, no dry-run, no M0/M1 Step 4: Read MD32000 (axis), MD36200 (PLC), MD55201 (path) Step 5: Check SINAMICS p1082, p2000, r1407.5 on X and C1 If still capped: cap is OEM-set; coordinate with OEM

14. Related Siemens References

Why does F150000 read as 2500 mm/s on the operator panel?

The HMI may display in mm/s. 150000 mm/min ÷ 60 = 2500 mm/s. Verify by reading the F value in mm/min from the program display and matching it to the actual axis velocity in mm/min on the axis service display.

Can I raise MD32000 above 30000 mm/min on X?

Only if the mechanical envelope (ballscrew pitch, drive rating, jerk/accel limits) and the OEM-issued MD36200 PLC limit support the new value. Coordinate with the machine OEM before writing.

Is MD55201 a standard Siemens machine datum?

On Sinumerik 828D, MD55201 sits in the OEM-reserved area. It may be inactive on a standard build. Verify by writing a test value and observing whether the path feedrate responds, and confirm the MD is present in all channels.

Why does FGROUP not seem to apply on program start?

FGROUP is a modal NC command but it is reset by reset, M30, M0, and certain G-code groups. Place it in a startup block or in the PROC/INI to make it persistent across resets.

Does G95 (feed per revolution) affect this symptom?

Yes. If the active block is in G95 and the spindle is not running, the path feedrate collapses to zero or to a very low value. Issue G94 in the same block as F150000 to lock the unit to mm/min.

What is the most common field cause of a 6000 mm/min cap on Sinumerik 828D?

A feedrate override of 20% combined with a 30000 mm/min channel ceiling. Confirm the MCP override position first, then verify FGROUP, then walk the MD tier.

Can a jerk limit (MD32400) alone cap the path feedrate at 6000 mm/min?

Yes, if the jerk limit forces the axis to slow down at every block transition. Inspect the smoothing display; if the velocity is shaped down at each block end, raise MD32400 or MD32420 in OEM-approved steps.

Back to blog