1. Problem Overview
A Siemens SINUMERIK 840D-controlled Fryer Easy Turn toolroom lathe (circa 2010 firmware) is commanded to cut a 1/2-20 UNF thread, but the X/Z axes refuse to honor the programmed feed rate. The programmed value reads correctly in the F field of the thread canned cycle (for example, F0.05 in/rev), yet the moment the operator presses CYCLE START the carriage flies in at approximately 196 in/min — the machine's rapid traverse rate. Manual jog at the handwheel honors the programmed feed; the program does not. The thread comes out wrong because the feed per spindle revolution is being multiplied by a feed-min velocity, not a feed-per-revolution value.
This article documents two layered root causes observed on this machine class and gives a deterministic commissioning procedure that avoids the failure mode.
2. Siemens 840D Threading Fundamentals
The 840D thread cutting cycle (CYCLE97 in DIN/ISO mode, or the Turning → Thread shop-mill canned cycle in ShopTurn) generates a synchronous motion that locks Z-axis feed to spindle position. The relationship the controller must honor every revolution is:
L = 1 / TPI
where:
-
L= lead (in/rev or mm/rev) -
TPI= threads per inch
For a 1/2-20 thread:
L = 1 / 20 = 0.050 in/rev (1.270 mm/rev)
The 840D expects the programmer to enter the thread geometry, not the equivalent feed per revolution. The canned cycle internally derives the per-revolution feed from the entry the operator types into the Pitch or Thread column. Mistaking which column receives the value is the most common cause of the symptom described above.
2.1 Why the cycle needs a feed-rate field at all
Even though thread cutting is implicitly in/rev (G95 modal), the operator screen still exposes an F parameter. On the 2010-vintage ShopTurn interface this field is labeled ambiguously: it accepts in/rev or in/min. The choice should be in/rev for screw threads; choosing in/min causes the controller to interpret the same numeric value as a linear velocity and the carriage will saturate at rapid.
3. TPI vs Pitch Conversion Table
| TPI (threads/in) | Pitch (in/rev) | Pitch (mm/rev) | Example Standard |
|---|---|---|---|
| 80 | 0.0125 | 0.3175 | UNM micro thread |
| 40 | 0.0250 | 0.6350 | 10-32 UNF |
| 32 | 0.03125 | 0.7938 | 10-32, 1/4-32 |
| 28 | 0.03571 | 0.9071 | 1/4-28 UNF |
| 24 | 0.04167 | 1.0583 | 3/8-24 UNF |
| 20 | 0.05000 | 1.2700 | 1/2-20 UNF (target) |
| 18 | 0.05556 | 1.4111 | 9/16-18 |
| 16 | 0.06250 | 1.5875 | 3/4-16 UNF |
| 13 | 0.07692 | 1.9538 | 3/4-13 UNF |
| 12 | 0.08333 | 2.1167 | 1/2-12, 9/16-12 |
| 10 | 0.10000 | 2.5400 | 5/8-11 BSW (approx) |
| 8 | 0.12500 | 3.1750 | Coarse pipe thread |
Convert any TPI specification to pitch in two steps:
- Compute
P = 1 / TPIin decimal inches. - If the controller expects mm/rev, multiply by 25.4. Round to 4 decimal places; do not round the in/rev value.
Common error: entering the pitch (0.050) into a field that expects TPI (20). The controller then tries to move the axis 20 inches per revolution — physically impossible at any spindle RPM — and the interpolator clamps to rapid.
4. Root Cause #1 — Parameter Field Mis-entry
The Fryer 840D shop-turn thread screen exposes three coupled parameters:
| Field | Expects | 1/2-20 Value | Wrong Entry Symptom |
|---|---|---|---|
| Thread (TPI) | Threads per inch (integer) | 20 | None if pitch is also entered; controller cross-checks |
| Pitch (P) | Distance per thread (in or mm) | 0.0500 in or 1.2700 mm | If 20 entered here, the axis feeds 20 in/rev → clamped to rapid |
| Feed (F) | Lead reference in in/rev or in/min | 0.0500 in/rev | If in/min chosen, value is interpreted as linear velocity |
When the operator typed 0.05 into the Pitch field and selected in/rev for feed, the geometry worked out — but the diagnostic symptom reported was that the Feed (F) field appeared correct in the cycle screen yet was overridden to 196 in/min during execution. The pitch entry alone was not the smoking gun; the second root cause below was.
4.1 Quick diagnostic: scratch-pass test
- Set the thread cycle with the suspected pitch value.
- Set DOC to zero, set number of passes to 1.
- Set spindle to ~200 RPM, hand-enter feed-hold-ready.
- Single-block through one revolution. The carriage should move exactly
L = 1/TPIinches in Z. - If Z motion equals
196 in/min × (60/RPM)inches per rev, feed is being interpreted as in/min.
5. Root Cause #2 — Spindle-Start / Cycle-Start Ordering Bug
The 2010-vintage Fryer 840D control exhibits an operational defect in which the canned thread cycle ignores the programmed feed rate unless the spindle is already turning when CYCLE START is pressed. The defect was reproduced deterministically:
| Procedure | Feed Honored? | Observed Feed |
|---|---|---|
| Cycle Start alone (spindle off) | No | 196 in/min (rapid) |
| Spindle Start, then Cycle Start | Yes | 0.050 in/rev (correct) |
| Spindle Start, wait 2 sec, Cycle Start | Yes | 0.050 in/rev (correct) |
| Cycle Start, Spindle Start (simultaneous) | Intermittent | Rapid or correct |
The workaround is procedural: always start the spindle first, allow the spindle encoder to lock, then press CYCLE START. Feed override at 100% will then scale the correct in/rev value, and the carriage feeds at L × RPM in/min as expected.
5.1 Probable firmware cause
The canned thread cycle on the 2010 ShopTurn build samples the spindle encoder at cycle start to derive the velocity feed-forward term. If the spindle is not running at sample time, the interpolator falls back to the axis's maximum path velocity — which on the Fryer Easy Turn is 196 in/min rapid. Newer SINUMERIK 840D sl firmwares (SW 4.5 SPx and later, shipped post-2012) hold the last valid feed-forward sample and tolerate the spindle-off case, but the legacy control in this machine does not.
6. Spindle-to-Feed Math Verification
Once the cycle honors the lead, validate the math at the chosen spindle speed. Three relationships must agree:
| Quantity | Formula | 1/2-20 @ 250 RPM |
|---|---|---|
| Lead (in/rev) | L = 1 / TPI | 0.0500 |
| Linear feed (in/min) | F_linear = L × RPM | 0.0500 × 250 = 12.5 |
| Surface speed at DOC (sfm) | V = π × D × RPM / 12 | For 0.500 in minor: π × 0.5 × 250 / 12 = 32.7 sfm |
| Pitch diameter (in) | D_p = D_major - 0.6495 × P | 0.500 - 0.6495 × 0.05 = 0.4675 |
| Spindle to thread angular sync | Lead-in run ≥ 2 × P | 0.100 in run-in minimum |
If F_linear exceeds the machine's threading feed limit (commonly 200 in/min on late-2000s lathes), reduce RPM rather than overriding the lead.
6.1 Pitch diameter for depth-of-cut
For UN/UNF threads, theoretical depth of cut per side:
H = 0.6495 × P = 0.6495 × 0.05 = 0.03248 in
For 1/2-20 this is the full thread depth (~0.0325 in radial). A 75% thread (commonly specified for strength) requires:
H_75 = 0.75 × 0.6495 × P = 0.02436 in radial
Spreads across infeed passes; the 840D thread cycle supports straight, reduced-angle, or alternating-flank infeed strategies selected in the cycle screen.
7. Commissioning Procedure (Step-by-Step)
7.1 Prerequisites
- Workpiece: 1/2 in diameter mild steel or aluminum, ~3 in long, faced and center-drilled.
- Tool: 60° thread-cutting insert, ground for the target pitch (full-form preferred for 1/2-20).
- Tool offset: tip set on centerline (most common) or 0.005-0.010 in above for chip flow.
- Spindle: M03 (CW), 250 RPM initial, 100% feed override.
- Coolant: flood on, except for cast iron where mist or dry is preferred.
7.2 Setup steps
- Power on the 840D, home all axes, verify spindle encoder zero with a reference marker.
- Navigate to
Turning → Thread(ShopTurn) or callCYCLE97(DIN/ISO). - Enter thread geometry: nominal diameter
0.500 in, TPI20, thread length per drawing. - Enter pitch
0.0500 in— confirm the controller shows20.0000 TPIin the read-only cross-check field. - Select infeed: straight for steel under 32 Rc, alternating flank for harder alloys.
- Set finish-pass allowance to 0.001 in radial; spark-out passes = 1.
- Set run-in to 0.10 in, run-out to 0.05 in. These are the safe lead distances the controller uses for accel/decel.
7.3 First-pass execution
- Press
SPINDLE START; confirm spindle is at commanded RPM and direction with a tachometer or by visual. - Wait one full second to let the encoder PLL lock.
- Press
CYCLE START. - Observe: feed should read ~12.5 in/min on the F-line of the position display, NOT 196 in/min.
- Stop after the first pass. Measure pitch with a 20-TPI thread pitch gauge.
7.4 Infeed progression for 1/2-20 steel
| Pass | Radial DOC (in) | Cumulative (in) | Notes |
|---|---|---|---|
| 1 | 0.0080 | 0.0080 | Scratch pass, verifies pitch |
| 2 | 0.0060 | 0.0140 | Detected by ear; if chatter, reduce to 0.005 |
| 3 | 0.0045 | 0.0185 | |
| 4 | 0.0035 | 0.0220 | |
| 5 | 0.0025 | 0.0245 | Approaching target |
| 6 | 0.0015 | 0.0260 | Spring passes start |
| 7 (finish) | 0.0008 | 0.0268 | Allow spring; final pitch diameter check |
| 8 (spark) | 0.0000 | 0.0268 | No radial motion, full thread turn |
Total radial engagement 0.0268 in produces a 1.06 mm thread depth, matching the 75% thread height calculated above.
8. Verification Procedure
- Pitch gauge: 20-TPI leaves must seat flat on the thread flanks across 5+ threads. No daylight.
- Ring gauge: 1/2-20 UNF ring should screw on by hand to within 1 turn of full engagement without forcing.
-
Three-wire measurement: Best-wire size for 60° thread =
W = 0.57735 × P= 0.0289 in. Measure over-wires with a micrometer; reading =M = D_p + 3W - 0.86603P= 0.4675 + 3(0.0289) - 0.86603(0.05) = 0.5110 in. Acceptable range per ASME B1.1: 0.5064-0.5156 in. -
Pitch diameter from three-wire:
D_p = M - 3W + 0.86603P. Use this to back-calculate if the cycle's pitch entry was correct. - Functional: Thread a 1/2-20 nut or fitting; should start within 1 turn by hand and torque normally.
9. Diagnostic Matrix
| Symptom | Likely Cause | Fix |
|---|---|---|
| Feed runs at rapid during program; manual jog correct | Spindle not running at CYCLE START (840D 2010 bug) | Start spindle first, wait 1 sec, then CYCLE START |
| Feed runs at rapid even with spindle running | Pitch value entered in TPI field or vice versa | Re-enter TPI=20 in TPI field, Pitch=0.050 in in Pitch field |
| Pitch measures correct but lead wrong by an integer multiple | Feed field set to in/min instead of in/rev | Toggle feed-rate mode to in/rev |
| Thread chatter | DOC too aggressive, tool overhang too long, RPM too high | Reduce DOC, shorten tool, lower RPM, try alternating-flank infeed |
| Thread bellmouths at start | Insufficient run-in distance | Increase run-in to 2-3 × pitch |
| Thread bellmouths at end | Insufficient run-out, deceleration ramping too sharp | Increase run-out to 1-2 × pitch; reduce acceleration |
| Thread measures over-size | Tool flank wear, pitch diameter too large | Regrind/rotate insert; adjust radial offset |
| Thread measures under-size | Radial offset too aggressive, spring-back | Add spring pass; reduce finish-pass DOC; verify pitch diameter math |
| Alarm 21612 "Channel %1 axis %2 traverse range exceeded" | Pitch entry interpreted as linear distance > axis limit | Check pitch vs TPI field; reset to known good values |
| Alarm 16770 "Axis %1 has no encoder" | Spindle encoder lost reference | Re-reference spindle; check encoder cable |
10. Field-Engineering Notes
10.1 Manual reference for legacy 2010 Fryer machines
The Fryer Easy Turn ships with a custom operator's manual that references the underlying Siemens 840D manuals (Programming Manual, Operations Manual). For 2010-era machines, request the legacy documentation directly from Fryer Machine Systems; newer YouTube tutorials target post-2015 ShopTurn UIs and do not map one-to-one. The Siemens Programming Manual for CYCLE97 is the authoritative threading reference for the underlying cycle: Programming Manual CYCLE97 Thread Cutting (Siemens).
10.2 Operator-menu mapping caveat
The 840D ShopTurn interface has been redesigned multiple times between SW 2.6 (2006) and SW 4.7 (2015). The "Thread" entry on the Turning menu varies in label and field ordering. Operators familiar with a 2018 control cannot directly transfer their muscle memory to a 2010 control; the parameter labels shift, but the underlying CYCLE97 arguments do not.
10.3 When to escalate beyond procedural workaround
If the spindle-start-before-cycle-start workaround is operationally infeasible (e.g., high-volume production where the operator cannot reliably observe the sequence), escalate to a Siemens service channel for a firmware update path. Confirm the current SW version with:
Menu Select → Diagnostics → Version → NCK version
Note the version before contacting service. SW 4.5 or later substantially mitigates the cycle-start-with-spindle-off defect.
10.4 Cross-platform note
The same TPI-vs-pitch confusion exists on FANUC (parameter F in G32/G76 expects lead in mm/rev or in/rev, not TPI), on Haas (use the lead value, not TPI), and on Mazak (Mazatrol asks for pitch directly). The Siemens canned cycle is unique in displaying both columns and cross-checking them, which can either help or confuse depending on operator entry discipline.
10.5 Single-point threading tool geometry
If a 60° full-form insert is not available, a 55° (BSW) or 60° toolbit ground from HSS stock can be used provided the included angle is verified with an optical comparator or a toolmaker's microscope. Off-angle tools produce thread-form interference even when pitch is correct.
Why does my Siemens 840D feed at 196 in/min instead of the programmed F0.05?
Two layered causes are common: (1) the pitch value was entered into the TPI field (or vice versa) so the controller interprets the value as linear velocity, not lead; (2) on 2010-vintage 840D controls, pressing CYCLE START with the spindle off leaves the interpolator without a valid spindle encoder sample, so it defaults to axis rapid (196 in/min on the Fryer Easy Turn). Start the spindle first, allow the encoder to lock for ~1 second, then press CYCLE START.
How do I enter a 1/2-20 thread into the 840D canned thread cycle?
Enter TPI = 20 in the threads-per-inch column, Pitch = 0.0500 in (1.2700 mm) in the pitch column, and ensure Feed is set to in/rev not in/min. The controller cross-checks these values; if they disagree, the read-only display will not show a consistent thread.
What is the depth of cut for a 1/2-20 UNF thread?
Full thread depth H = 0.6495 × P = 0.6495 × 0.05 = 0.03248 in radial. A 75% thread (typical strength spec) is 0.02436 in radial. Distribute this across 5-8 infeed passes, with the final pass as a spring/spark-out at zero additional DOC.
How do I verify the thread pitch diameter after cutting?
Use the three-wire method. Best wire size W = 0.57735 × P = 0.0289 in. Measure over-wires with a micrometer and compute D_p = M - 3W + 0.86603P. For 1/2-20, acceptable D_p range per ASME B1.1 is approximately 0.4552-0.4675 in depending on class (1A vs 2A fit).
Can the 840D cycle-start-with-spindle-off issue be fixed permanently?
Yes, with a firmware update. The defect was substantially mitigated in SINUMERIK 840D sl SW 4.5 SPx and later (shipped post-2012). Confirm your current NCK version under Diagnostics → Version, then contact Siemens service or your Fryer dealer for the upgrade path. If the firmware cannot be updated, retain the procedural workaround: spindle start, wait for encoder lock, then cycle start.