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.
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:
- Channel-level path clamp (MD55201 / OEM-specific path-axis ceiling).
- PLC-issued velocity reduction (MD36200 plus DB31..DBX3.6, DBX3.7).
- Override switch on the MCP (feedrate override, rapid-traverse override).
- Dry-run / single-block / M0/M1 behavioural clamps.
- FGROUP collapse when the path-controlling axis set is empty or wrong.
- Drive-side limit (SINAMICS S120 p1082, p2000, current limit r1407.5).
- 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 |
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 | 0° | |
| 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:
- Feedrate override on the MCP at 20% — 30000 mm/min × 20% = 6000 mm/min. The most common field cause of this exact number.
- FGROUP effectively empty — controller falls back to default 6000 mm/min.
- 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.
-
MD36200 reduced by PLC — check
DB31..DBX3.6andDBX3.7and any user-defined SAFE_RED block. - G95 active with missing spindle speed — if C1 is in spindle mode and S is undefined, F95 collapses.
- Drive-side clamp in SINAMICS S120 (p1082, r1407.5).
- Jerk limit at the channel level forcing the path to be smoothed down.
7. Diagnostic Procedure
-
Override sanity check. Set the feedrate override to 100% on the MCP. Set the rapid-traverse override to 100%. Issue
F150000in MDI withFGROUP(C1,X)and the same block geometry. Run it. If the cap lifts, the override was the cause; document and resume. -
FGROUP sanity check. In the active program, add a comment line
;FGROUP TESTand verify inHMI > Diagnostics > NC/PLC > Service Displaythat the path-controlling axes are C1 and X. RunFGROUP(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.). -
MD inspection (axis-level). Open
HMI > Setup > Machine Data > Axis MDand confirmMD32000 = 30000(or higher) for both X and C1. ReadMD36200on X and C1 — a non-zero reduced value indicates PLC-issued limiting. ReadMD32400,MD32410,MD32420(jerk limits) andMD32300(accel). Tight jerk limits lower the effective F through path smoothing. -
MD inspection (channel-level). Open Channel MD and read
MD55201in every channel. If the value writes successfully but the path does not respond, the MD is inactive on this build. ReadMD20150,MD20110, andMD20112to understand reset/startup behaviour of FGROUP and the G94/G95 group. -
Drive-side clamp. Open Starter / Startdrive and connect to the SINAMICS S120 for X and C1. Read
p1082(max motor speed) andp2000(reference speed). On the path, F150000 mm/min is divided by the gear/screw ratio; ensure the resulting motor rpm is insidep1082and insider1407.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. -
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. -
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. -
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
AUTOmode (DB21..DBB4writes are only allowed inJOGfor the operator).
8.2 If FGROUP is the cause
- Add
FGROUP(C1,X)in the programPROCor 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_Chan1or an OEM-suppliedSAFE_REDblock). - 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
p1082if the motor allows. - Raise
MD32000to match. - Verify axis mechanics (ballscrew lead, gear ratio) and re-test.
8.6 If jerk limit is the cause
- Raise
MD32400,MD32410, orMD32420in OEM-approved steps. - Re-test with the same F150000 block; capture the smoothing display.
9. Verification
After each change, verify with the following sequence:
- 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.
- C1-only with F150000: rotation should be smooth; rpm should match the F/R/2π conversion.
- Combined X+C1 with F150000: path feedrate should match the F word within ±2% (rounding to NC IPO).
-
Display on the operator panel:
HMI > Diagnostics > Axis > "Active position"and"Actual velocity". Confirm no axis hits its MD32000 ceiling. - 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.
- 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_Pto includeFGROUP(C1,X)as the default for the camshaft program. - Add a startup block in the
_N_CMA_DIR/_N_INITIAL_INIdirectory issuingFGROUP(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 commissioningand 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
p1082orp2000without 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
14. Related Siemens References
- SINUMERIK 840D sl / 828D Basic Functions - ID 64932982
- SINUMERIK 828D List Manual
- SINUMERIK 840D sl / 828D Programming Manual
- SINAMICS S120 List Manual
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.