Skip to main content
CNC.wikiCNC.wiki

G96 and G97: Constant Surface Speed vs. Constant Spindle RPM Guide

Master G96 constant surface speed and G97 constant RPM on Fanuc, Siemens, and Mitsubishi CNC controls. Learn spindle clamp safety commands and parameter limits.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

Introduction: Spindle Speeds and Centrifugal Safety

Commanding constant surface speed without first establishing a maximum spindle speed clamp is one of the most hazardous mistakes a CNC programmer can make. When the cutting tool nose drives toward the turning center (diameter 0.0), the controller mathematically attempts to rotate the spindle at an infinite rate to maintain the programmed cutting speed. Without a physical limit, the spindle accelerates violently until it reaches its extreme mechanical limit. The resulting extreme centrifugal force guarantees that the workpiece will violently eject from the chuck jaws, leading to a catastrophic hard collision inside the machine enclosure, generating a ruined scrap part, causing severe breakage of tools or spindle hardware, and putting the operator at high risk of injury.

To safely optimize cutting conditions, modern CNC systems utilize two modal G-codes from G-code Group 02: G96 for Constant Surface Speed (CSS) and G97 for Constant Spindle Speed (RPM). Mastering the interplay between these two commands is the foundation of professional lathe and mill-turn operations across all major controller families, including Fanuc, Siemens, and Mitsubishi.

Technical Summary

Technical AttributeSpecification Details
Primary G-CodesG96 (Constant Surface Speed ON), G97 (Constant Spindle Speed / RPM Modal Cancel)
Modality GroupModal G-code Group 02 (Fanuc / Mitsubishi) · Spindle Control Modal Group (Siemens)
Supported ControllersFanuc (System B/C and Standard T-series), Siemens SINUMERIK, Mitsubishi M800V/M80V
Critical ParametersFanuc: 3770 (Radial axis), 3771 (Min RPM), 3712 bit 4 (CSA), 3708 bit 5 (SOC) · Siemens: MD20100 (Transverse axis), SD43230 (LIMS limit) · Mitsubishi: #1181 (G96 Axis), #1087 (G00 Rapid CSS)
Primary Physical ConstraintsProhibited during cylindrical interpolation (G07.1) and rigid tapping cycles. Spindle rotation center must serve as the absolute zero of the transverse geometry axis. Gear stage shifts (M40-M44) are locked out while G96 is active.

Quick Read: Spindle Control Best Practices

  • Execute safety speed clamps first: Always program G50/G92 (Fanuc/Mitsubishi) or LIMS (Siemens) before G96 to prevent dangerous spindle acceleration.
  • Surface Quality: Constant Surface Speed (G96) dynamically increases spindle RPM as the cutting tool moves closer to X0, keeping cutting conditions uniform and tool wear to a minimum.
  • Rigid Operations: Use Constant RPM (G97) for centerline operations like drilling, reaming, or rigid tapping to maintain a steady rotation speed independent of the tool position.
  • Feedrate Coupling: When feed-per-revolution (G94-G95 Feed Rate Modes) is active, the axis feedrate automatically speeds up alongside the spindle, accelerating dynamic axis motion.
  • Multi-Axis Mapping: Reference axes can be reassigned on the fly via the P-address or Siemens SCC command, enabling complex mill-turn and multi-spindle processing.
  • Tapping and Threading Locks: Spindle speed recalculations are automatically suspended during thread-cutting cycles to prevent pitch distortion and lead errors.

Basic Concepts of Constant Surface Speed

In metal cutting operations, the linear velocity at which the workpiece material passes the cutting edge of the insert is defined as the cutting speed (vc). Mathematically, this relationship is expressed as vc = (π × D × n) / 1000, where D represents the workpiece diameter at the tool tip and n represents the spindle rotational speed (RPM). When a lathe operates under a fixed RPM, the linear cutting speed continuously drops as the tool feeds from the outer diameter of the part toward the center. This drop in linear velocity causes changes in chip thickness, poor surface finishes on faced areas, and excessive thermal stress on the cutting edge, which drastically shortens tool life.

To overcome this, Constant Surface Speed (G96) instructs the CNC controller to dynamically calculate the required spindle RPM in real-time. As the transverse axis (typically the radial X-axis) moves closer to the turning center, the controller automatically accelerates the spindle to maintain the programmed surface cutting speed. This guarantees a perfectly uniform surface finish across the entire faced profile and allows tools to operate at their optimum cutting efficiency. Conversely, G97 deactivates CSS and locks the spindle to a constant RPM. G97 is essential for operations where the tool cutting action is concentrated strictly along the spindle center of rotation (e.g., centerline drilling, reaming, and tapping) or where mechanical synchronization between the spindle rotation and linear axes must be locked, as seen in thread-cutting cycles.

Command Structure and Syntax

CNC programming requires specific syntax formats depending on the brand and model of the controller. Because the spindle speed clamp is a fundamental safety barrier, it must be declared prior to or alongside the activation of G96. Using incorrect syntax or omitting the clamp command will lead to immediate program stops or dangerous operation scenarios.

The command block formats for the three major industrial controller systems are structured as follows:

  • Fanuc Lathes (T-series): G50 S[MaxRPM]; followed by G96 S[CuttingSpeed] M03;. To cancel and lock RPM: G97 S[FixedRPM] M03;. Fanuc Machining Centers (M-series) or lathe programs operating under G-code System B/C utilize G92 in place of G50 for the maximum speed clamp. An optional P address selects the active coordinate calculation axis.
  • Siemens Controls: LIMS = [MaxRPM]; followed by G96 S[CuttingSpeed] M3;. Siemens provides extended cutting codes: G961 activates constant cutting speed with a linear feedrate (mm/min), while G971 cancels CSS and enforces linear feedrate. The command SCC[axis] allows mid-program reassignment of the calculation axis.
  • Mitsubishi Controls: G92 S[MaxRPM] [QMinRPM]; followed by G96 S[CuttingSpeed] [Paxis];. To cancel: G97 S[FixedRPM];. Mitsubishi uniquely supports a minimum clamp speed using the Q address within the G92/G50 block.

Brand-Specific Applications

Fanuc

Fanuc CNC controllers utilize modal Group 02 commands to manage spindle speed logic with a high degree of parameter customization. The radial calculation axis is mapped to the physical X-axis by default, but machine builders can configure parameter 3770 to support other axes. When G96 is engaged, the spindle accelerates in real-time as the tool radial distance decreases. However, operators must carefully check the active coordinate systems and physical chuck limits to prevent high-speed rotation hazards.

To prevent dangerous spindle spin-up, parameter 3712 bit 4 (CSA) can be set to 1, forcing the controller to throw a PS5557 alarm and halt execution if a G96 block is commanded without a prior spindle speed clamp command (G50 or G92) since power-up. In addition, parameter 3708 bit 5 (SOC) controls the override dial: when set to 1, the controller applies the maximum spindle speed clamp after the operator's spindle override calculation, preventing the spindle from spinning past the safe G50 limit even if the override is set to 120%.

ParametersAlarm CodesVersion Differences
3770: Radial calculation axis identifier (0 to number of axes). If 0, P-address has no effect.
3771: Minimum spindle speed during CSS (0 to 99,999,999 min−1).
3708 bit 5 (SOC): Override safety (0 = clamp before override; 1 = clamp after override).
3712 bit 4 (CSA): Missing clamp lock (0 = no alarm; 1 = PS5557 alarm).
PS5557: Missing speed clamp setting prior to G96.
PS5355: Cutting speed S-code missing during multi-spindle selection.
PS0190: Axis address conflict via P-address designation.
PS0200: Illegal G96 commanded during a rigid tapping cycle (parameter 5209 bit 6 is 1).
Machining centers (M-series) and lathes utilizing G-code systems B and C require G92 to set the spindle speed limit clamp. Lathes operating under G-code System A use G50 for the spindle speed clamp setting.

Operators must carefully verify tailstock clearance and chuck jaw grip force when running G96. Because the feedrate in feed-per-revolution mode is physically tied to spindle RPM, the linear axis feedrate will accelerate rapidly near the center of the part, potentially causing mechanical interference if safety zones are ignored.

Siemens

Siemens SINUMERIK controls offer highly flexible spindle speed control, calculating required spindle speeds based on the geometry axis defined as the transverse axis in machine data MD20100. This configuration enables precise Tool Center Point (TCP) calculations. However, programmers must ensure the transverse axis zero is perfectly aligned with the spindle turning center. Shifting the coordinate system away from the physical center using programmable offsets (like ATRANS) will cause the control to calculate incorrect diameters, resulting in erroneous cutting speeds and potential work damage.

The Siemens system requires a modal LIMS setting to clamp the maximum speed of the master spindle. A negative spindle speed limitation value will immediately trigger Alarm 14820 and halt the program. If the geometry axis is entirely undefined in MD20100, the controller immediately generates Alarm 10870 to prevent erratic movement. Automatic gear stage shifts (M40) are completely blocked while G96 or G961 is active.

ParametersAlarm CodesVersion Differences
MD20100 $MC_DIAMETER_AX_DEF: Transverse geometry axis function setting.
SD43230 $SA_SPIND_MAX_VELO_LIMS: Active LIMS spindle speed storage (0.1 to 9999 9999.9 rpm).
SD43210 $SA_SPIND_MIN_VELO_G25: Spindle speed lower limit setting.
MD35140 $MA_GEAR_STEP_MIN_VELO_LIMIT: Minimum gear step limit.
Alarm 10900: S value missing for G96/G961 constant cutting speed.
Alarm 14820: Negative maximum spindle speed programmed in LIMS.
Alarm 10870: Transverse axis is undefined in MD20100.
Alarm 14824: Conflict: GWPS and constant cutting speed (G96) are active simultaneously.
Alarm 10860: Missing feedrate F value in active G96/G961 block.
In native Siemens mode (G290), activating G96 automatically turns on revolutionary feedrate (G95), while G961 forces a linear path feedrate (G94). In ISO Dialect mode (G291), the specialized command G973 cancels CSS while explicitly disabling the active LIMS clamp.

Operators must remember that when transitioning from G96 facing back to standard drilling, commanding G97 freezes the spindle at the last calculated RPM. Programmers should always declare a new S-word after G97 to prevent the spindle from rotating at an unsafe or unproductive rate.

Mitsubishi

Mitsubishi M800V/M80V controllers provide dynamic spindle adjustment capabilities that allow operators to shift reference axes on the fly using a P-address (e.g., G96 S200 P2). If parameters #1146 and #1284 are configured to enforce safety checks, commanding G96 without a prior G92 spindle clamp will trigger a G96 Clamp Err. alarm. If parameter #1284 is set to 1, the safety check is bypassed, meaning the machine will proceed without warning, and the spindle will accelerate to the absolute mechanical maximum limit at X0, risking centrifugal workpiece ejection.

A unique capability of the Mitsubishi control is its behavior during rapid coordinate exchanges (G140/G141). If axes are temporarily swapped during an active G96 block, the control does not trigger an alarm. Instead, it automatically locks the spindle speed to its last safe value, waits until the original axis arrangement is restored, and then seamlessly resumes constant surface speed calculations.

ParametersAlarm CodesVersion Differences
#1181 G96_ax: CSS default axis setting. If 0, axis is fixed to 1st axis (P code is invalid).
#1087 G96_G0: rapid motion CSS calculation (0 = continuous; 1 = calculate only at endpoint).
#1146 Sclamp: Spindle clamp check active switch.
#1284 ext20/bit0: Clamp check disable (0 = check active; 1 = check bypassed).
G96 Clamp Err.: G96 command issued without a prior spindle speed clamp.
Illegal P-No. G96 (P133): Out-of-range axis selected via P address.
Operation Error (M01 1113): Cross-system conflict: G96 commanded during threading/tapping in another system.
Under Multiple Spindle Control I (L-systems), a missing clamp triggers a Program Error P134, halting execution. Under Multiple Spindle Control II, a missing clamp triggers an Operation Error M01 1043, which suspends G96 but maintains the previous spindle speed.

To avoid severe mechanical wear, parameter #1087 (G96_G0) can be set to 1. This prevents the spindle from rapidly accelerating and decelerating during rapid travel (G00) between cuts, only calculating the spindle speed at the final block endpoint.

Cross-Brand Comparison

While the physical principles of constant surface speed remain identical across all platforms, the implementation, parameter mapping, and safety checking methods vary significantly between Fanuc, Siemens, and Mitsubishi. The table below provides a comprehensive comparison of how these three primary industrial CNC controller brands execute spindle controls.

Feature ComparisonFanucSiemensMitsubishi
CSS ActivationG96 (Modal Group 02)G96, G961, G962 (Modal Group)G96 (Modal Group 02)
Constant RPM / CancelG97 (Modal Group 02)G97, G971, G972, G973G97 (Modal Group 02)
Spindle Limit CommandG50 S[speed] (Lathes System A)
G92 S[speed] (Mills / System B/C)
LIMS=[value] or LIMS[spindle]=[value]G92 S[speed] [Qmin] or G50 S[speed] [Qmin]
Axis ReassignmentP1 to P8 in G96 block (requires parameter 3770)SCC[axis] programmed dynamicallyP address in G96 block (requires parameter #1181)
Minimum Speed SettingParameter 3771SD43210 $SA_SPIND_MIN_VELO_G25Q address in G92/G50 clamp block
Rapid G00 CSS HandlingContinuous speed recalculation during motionContinuous speed recalculation during motionParameter #1087 G96_G0 selects continuous (0) vs. endpoint (1)
Multi-Spindle LimitationSets clamp for the active master spindle onlyDefines up to 4 spindle limits in one block (LIMS=... LIMS[11]=...)Sets limit for active spindle based on spindle select parameters
Missing Clamp AlertPS5557 alarm (if parameter 3712 bit 4 = 1)— (no source)G96 Clamp Err. (Program Error P134 under MSC I / Operation Error M01 1043 under MSC II)

In-Depth Technical Analysis

Analyzing the architecture of these three controllers reveals distinct design philosophies regarding spindle velocity control. Fanuc focuses heavily on granular, parameter-driven safety barriers. By utilizing parameter 3708 bit 5 (SOC), the control allows machine builders to lock the maximum spindle speed clamp strictly below the physical limit of the chuck, completely isolating it from the operator's override knob. If an operator turns the spindle override dial to 120%, the mathematical speed is capped at the G50 value, preventing centrifugal chuck failure. Fanuc's P1 to P8 addressing also provides an elegant way to map up to eight auxiliary axes for radial calculations, providing compatibility with large multi-slide turning centers.

In contrast, Siemens SINUMERIK prioritizes advanced algorithmic control and dynamic part-program command flexibility. Siemens allows the programmer to dynamically reassign the active transverse axis using the SCC[axis] command. For example, in a mill-turn machine with an auxiliary Y-axis, a programmer can transition G96 radial calculations from X to Y mid-program without resetting parameters. Furthermore, Siemens allows programmers to declare independent spindle limits for up to four separate spindles in a single part program block (e.g., LIMS=3000 LIMS[11]=2500 LIMS[12]=1200). This provides simultaneous control over the main spindle, sub-spindles, and live tooling spindles. The inclusion of native commands like G961 and G973 allows programmers to decouple standard feedrate relationships, supporting advanced grinding and milling operations.

Mitsubishi takes a hybrid approach, combining the dynamic P-address mapping found in Fanuc with intelligent axis management systems. Mitsubishi's parameter #1087 (G96_G0) is a highly efficient wear-reduction tool: by restricting CSS calculations to the endpoint of a rapid positioning block, the controller prevents the spindle motor from violently hunting and cycling during rapid positioning in air cuts, saving power and reducing spindle drive wear. Additionally, Mitsubishi's axis-exchange logic (G140/G141) provides smooth coordination in multi-part system machines: if an axis exchange occurs while G96 is active, the controller locks the spindle speed to its last safe value, preventing erratic spindle behavior while the system state is in transition, and resumes dynamic calculations automatically once the exchange is completed.

Programming Examples and Dry Run Walkthroughs

The following blocks demonstrate the proper programming sequence to safely establish maximum spindle limits and activate constant surface speed on Fanuc, Siemens, and Mitsubishi controllers. Each example includes a step-by-step dry run analysis detailing how the CNC control interprets the G-code lines during execution.

Fanuc Spindle Control Example

G50 S2500;
G96 S150 M03;
G00 X100. Z2.0;
G01 X20. F0.2;
G97 S1200 M03;
G96 S200 P2;

Dry Run Analysis:

  • G50 S2500: The controller reads the maximum spindle speed clamp, setting a strict safety ceiling of 2500 RPM. The spindle does not rotate yet.
  • G96 S150 M03: The control activates Constant Surface Speed at 150 m/min and starts forward spindle rotation (M03). The spindle speed is calculated based on the tool's current radial position.
  • G00 X100. Z2.0: The tool rapid-positions to diameter X100.0. The controller calculates the spindle speed for this diameter: n = (150 × 1000) / (π × 100) ≈ 477 RPM. The spindle ramps to 477 RPM.
  • G01 X20. F0.2: The tool feeds to diameter X20.0 at 0.2 mm/rev. The controller dynamically accelerates the spindle: n = (150 × 1000) / (π × 20) ≈ 2387 RPM. Spindle speed smoothly ramps from 477 RPM to 2387 RPM during the facing cut.
  • G97 S1200 M03: CSS is cancelled, and the spindle is locked at a constant 1200 RPM, ignoring any subsequent movement on the radial axes.
  • G96 S200 P2: CSS is reactivated at 200 m/min, with the controller shifting the calculation reference to the 2nd geometry axis (defined by parameter 3770).

Siemens Spindle Control Example

N10 LIMS=2500;
N20 G96 S120 M3;
N30 G0 X100 Z2;
N40 G1 X20 F0.2;
N50 G97 S1200 M3;
N60 SCC[X2];
N70 G96 M3 S20;
N80 LIMS=300 LIMS[11]=450 LIMS[12]=800 LIMS[13]=1500;

Dry Run Analysis:

  • N10 LIMS=2500: The modal maximum spindle speed limit for the master spindle is set to 2500 rpm. The value is stored in setting data SD43230.
  • N20 G96 S120 M3: Constant cutting speed is activated at 120 m/min, and the master spindle starts rotating clockwise. G96 automatically activates revolutionary feedrate (G95).
  • N30 G0 X100 Z2: The tool moves to position X100. The control calculates the required spindle speed: n = (120 × 1000) / (π × 100) ≈ 382 rpm. The spindle ramps to 382 rpm.
  • N40 G1 X20 F0.2: The tool faces the workpiece down to diameter X20. The spindle dynamically accelerates to maintain 120 m/min: n = (120 × 1000) / (π × 20) ≈ 1910 rpm. The speed is well below the LIMS limit of 2500 rpm.
  • N50 G97 S1200 M3: Constant cutting speed is turned off. The spindle locks to a constant speed of 1200 rpm, and revolutionary feedrate remains active.
  • N60 SCC[X2]: The reference axis for constant cutting speed calculation is dynamically reassigned to channel axis X2.
  • N70 G96 M3 S20: CSS is reactivated at 20 m/min, with the spindle speed calculations now tracking the position of channel axis X2.
  • N80 LIMS=300 LIMS[11]=450 LIMS[12]=800 LIMS[13]=1500: Spindle speed clamps are defined simultaneously for the master spindle (300 rpm) and three auxiliary spindles (spindles 11, 12, and 13).

Mitsubishi Spindle Control Example

G92 S4000 Q200;
G96 S200 P1;
M3;
G0 X100 Z2;
G1 X20 F0.2;
G96 P2;
G97 S1000;

Dry Run Analysis:

  • G92 S4000 Q200: The spindle speed clamp limits are established: a maximum limit of 4000 RPM (S4000) and a minimum limit of 200 RPM (Q200).
  • G96 S200 P1: Constant surface speed control is enabled at 200 m/min, targeting the 1st axis (P1) as the reference for calculations.
  • M3: Spindle forward rotation starts. The spindle starts spinning at the calculated RPM for the current tool position.
  • G0 X100 Z2: The tool rapid-positions to X100.0. The controller calculates: n = (200 × 1000) / (π × 100) ≈ 636 RPM. The spindle ramps to 636 RPM.
  • G1 X20 F0.2: The tool faces the part. The controller dynamically accelerates the spindle toward X20: n = (200 × 1000) / (π × 20) ≈ 3183 RPM. The spindle ramps smoothly during the cut.
  • G96 P2: The controller dynamically shifts the constant surface speed calculation reference axis from the 1st axis to the 2nd axis (Z-axis / axis 2).
  • G97 S1000: Constant surface speed is cancelled, and the spindle is locked at a constant rotational speed of 1000 RPM.

Error Analysis and Troubleshooting

Operational errors and alarms are common when setting up or modifying programs containing G96 and G97. The table below lists the primary alarms across Fanuc, Siemens, and Mitsubishi controls, providing details on their triggers, symptoms, and the root causes and fixes required to resolve them.

Alarm / CodeTrigger ConditionOperator SymptomRoot Cause and Fix
Fanuc PS5557G96 is commanded without a prior maximum spindle speed clamp command (G92 or G50) since power-up.The machine halts immediately before executing the G96 block, and the control displays: "NO MAX SP SPEED CLAMP COMMAND".Root Cause: Parameter 3712 bit 4 (CSA) is set to 1 to block missing clamps.
Fix: Insert a G50 (T-series) or G92 (M-series) spindle speed clamp block prior to the G96 block.
Fanuc PS0200G96 constant surface speed control is active during a rigid tapping cycle.The control halts and displays: "ILLEGAL S CODE COMMAND". Tapping cycle fails.Root Cause: Tapping requires rigid synchronization. Parameter 5209 bit 6 is set to 1.
Fix: Insert a G97 constant RPM command in the block preceding the tapping cycle (G84/G88).
Siemens Alarm 10900G96 or G961 is selected for the first time in a part program without an S cutting speed in the block.The program stops at the block, displaying: "No S value programmed for constant cutting speed".Root Cause: The control has no modal cutting speed value stored.
Fix: Explicitly program an S value (e.g., G96 S150) in the initial block to establish the surface speed.
Siemens Alarm 14820A negative value is programmed for the maximum spindle speed via LIMS while G96/G961 is active.NC execution halts, displaying: "Negative maximum spindle speed programmed for G96, G961".Root Cause: Negative values are mathematically invalid for spindle speed limits.
Fix: Modify the LIMS statement to use a positive limit (e.g., LIMS = 2500) within the 0.1 to 9999999.9 range.
Siemens Alarm 10870G96, G961, or G962 is active, but no transverse axis is defined in the background machine data.The machine halts, and the screen displays: "No transverse axis defined".Root Cause: Transverse geometry axis is undefined in machine data MD20100.
Fix: Define the geometry axis (typically X) as the transverse reference axis in MD20100.
Mitsubishi G96 Clamp Err.A G96 command is issued without a prior spindle speed clamp command (G92/G50).The automatic cycle halts immediately, and the controller displays: "G96 Clamp Err."Root Cause: Parameter #1146 (Sclamp) is set to 1 to block missing clamps.
Fix: Press RESET, check the program, and program a G92 or G50 speed clamp block before the G96 block.
Mitsubishi Program Error P134Multiple Spindle Control I: G96 is issued without a speed clamp, and #1448 is set to 0.The cycle is cancelled, the G96 block is ignored, and the screen displays: "Program error P134".Root Cause: Spindle clamp check failed under Multiple Spindle Control I.
Fix: Reset the machine and program a valid G92 or G50 spindle speed clamp block before G96.
Mitsubishi Operation Error M01 1043Multiple Spindle Control II: The speed clamp command is invalid for the selected spindle.The machine halts with an operation error warning: "Operation error M01 1043".Root Cause: Spindle clamp check failed under Multiple Spindle Control II.
Fix: Issue the G92 or G50 spindle speed clamp command after selecting the spindle.

Advanced Application Note: Spindle Clamp Safety and Mechanics

The core safety risk of Constant Surface Speed (CSS) is the mathematical relationship between workpiece diameter and spindle RPM. As the tool moves toward the centerline of the workpiece (diameter D approaching 0), the controller attempts to keep the cutting speed constant by increasing the spindle speed. Without a safety speed clamp, the spindle will accelerate to its maximum physical capability. The resulting extreme centrifugal force can cause the chuck jaws to lose their grip, ejecting the workpiece from the spindle. This can result in a catastrophic hard collision inside the machine enclosure, creating a scrap part, destroying the cutting tool and workpiece, and potentially causing severe injury to the operator.

To avoid this, programmers must implement a strict multi-layer safety check:

  1. Verify the Speed Clamp: Always program a G50/G92 speed clamp (Fanuc/Mitsubishi) or LIMS setting (Siemens) before G96. Ensure the programmed limit matches the physical chuck jaw rating and raw workpiece material weight.
  2. Enable Controller Alarms: Enable parameter-based clamp checks, such as Fanuc parameter 3712 bit 4 (CSA) or Mitsubishi parameter #1146 (Sclamp), to ensure the machine halts if a speed clamp is omitted.
  3. Override Dial Safety: Configure override parameters, such as Fanuc parameter 3708 bit 5 (SOC), to apply the speed clamp after the override calculation. This ensures the spindle never exceeds the G50/G92 clamp limit even if the operator turns the override dial to 120%.

Related Command Network

Constant surface speed functions do not operate in isolation. They are closely linked to coordinate system settings, feedrate modes, and threading cycles. Understanding the following related commands is essential for proper integration:

  • G50 / G92 (Fanuc/Mitsubishi): Used to set the maximum spindle speed clamp (e.g., G50 S2500), preventing dangerous spindle acceleration near the center of rotation.
  • LIMS (Siemens): Sets the upper spindle speed limit (e.g., LIMS=2500) for the constant cutting speed function within the part program.
  • SCC (Siemens): Dynamically assigns a geometry axis as the transverse calculation reference axis for constant cutting speed.
  • G94 / G95 (and G98 / G99): Feedrate modes where G94/G98 sets linear feed (mm/min or in/min) and G95/G99 sets feed-per-revolution (mm/rev or in/rev). Under G96, G95/G99 feed travel accelerates dynamically as the spindle accelerates.
  • G32 / G33 / G76: Threading and tapping cycles. The controller automatically suspends CSS calculations and locks the spindle to a constant RPM during these operations to prevent pitch distortion and lead errors.

Conclusion: Spindle Control Best Practices

Mastering G96 and G97 is essential for achieving high surface finishes, optimizing tool life, and maintaining a safe machining environment. Programmers and setup operators must treat spindle speed clamp settings as a mandatory safety requirement rather than an optional programming step. Before running any part program on a CNC lathe or mill-turn center, verify that the programmed G50, G92, or LIMS speed clamp matches the physical speed rating of the mounted chuck and workpiece. In addition, configure background parameters, such as Fanuc 3712 bit 4 or Mitsubishi #1146, to actively throw alarms if a speed clamp is omitted, ensuring a safe and reliable machining process.

Frequently Asked Questions

Why does G96 require a spindle speed clamp command like G50, G92, or LIMS?

Constant Surface Speed mathematically increases spindle RPM as the cutting tool approaches the turning center (X0) to maintain a constant linear speed. Without a safety clamp, the spindle will attempt infinite RPM. Programmers must issue a G50/G92 or LIMS command matching the chuck's physical rating before G96.

What happens to the spindle speed when transitioning from G96 to G97?

Transitioning to G97 cancels CSS and locks the spindle at a constant RPM. By default, the control freezes spindle rotation at the last calculated RPM. To ensure a safe, predictable rotation, programmers should explicitly specify a new spindle speed (e.g., G97 S1000) directly after G97.

How does coordinate shifting affect G96 calculations on the transverse axis?

Since G96 relies on workpiece and machine zeros being precisely located at the spindle turning center, shifting coordinate systems (via Siemens ATRANS or coordinate offsets in Fanuc/Mitsubishi) shifts the calculated radius. This results in incorrect cutting speeds. Always verify that workpiece zero matches the spindle center.

Still not resolved?

Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

Ask AI Assistant
Hakan Gündoğdu
Hakan Gündoğdu
  • 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