Feed Hold & Auto Mode
System variable #3004 controls Feed Hold, Feed Rate Override, and Exact Stop behavior. Set the value according to the table below to enable or disable each feature.
| #3004 | Feed Hold | Feed Rate Override | Exact Stop |
|---|---|---|---|
| 0 | Enable | Enable | Enable |
| 1 | Disable | Enable | Enable |
| 2 | Enable | Disable | Enable |
| 3 | Disable | Disable | Enable |
| 4 | Enable | Enable | Disable |
| 5 | Disable | Enable | Disable |
| 6 | Enable | Disable | Disable |
| 7 | Disable | Disable | Disable |
Single Block Control (#3003)
System variable #3003 controls Single Block behavior during macro execution. When the operator has Single Block mode active on the control panel, the machine normally stops after each block (line) of the program. Setting #3003=1 overrides this, allowing the macro to run continuously even when Single Block is switched on.
| #3003 Value | Single Block |
|---|---|
| 0 | Enable (normal — operator can step through blocks) |
| 1 | Disable (macro runs continuously even in single block mode) |
Why disable Single Block? During probing cycles or critical multi-block sequences, you do not want the operator to accidentally stop the machine mid-sequence. A probe move that halts halfway through could leave the stylus engaged, and the next manual action might crash it. Similarly, a thread milling interpolation that stops mid-arc can break the tap or ruin the part.
Always restore: Set #3003=0 at the end of your macro so the operator regains normal Single Block control. Failing to restore this can be a serious safety issue—the operator expects Single Block to work when they turn it on.
#3003=1 (DISABLE SINGLE BLOCK)
G65 P9810 ... (PROBING CYCLE)
#3003=0 (RESTORE SINGLE BLOCK)
Feedrate Override Lock
Feedrate Override is controlled by bit 1 of the #3004 bit pattern. When feedrate override is disabled (#3004=2, 3, 6, or 7), the operator's feedrate override dial is locked at 100%. The programmed feed rate executes exactly as written, regardless of the dial position.
Critical for: Probing moves (must travel at the exact programmed feed rate), thread milling (feedrate is synchronized with spindle speed and pitch), and tapping cycles where feed-to-spindle synchronization is essential.
Without this lock, an operator turning the override dial to 0% during a probe move could cause the probe to stall while the axis is still in motion, leading to a crash. During thread milling, changing the override mid-cut produces an incorrect thread pitch and a scrapped part.
Exact Stop Control
Exact Stop is controlled by bit 2 of the #3004 bit pattern. When Exact Stop is disabled (#3004=4, 5, 6, or 7), the control may round corners between blocks to maintain continuous motion rather than decelerating to a full stop at each block boundary.
Normally you want Exact Stop enabled during probing, because the machine needs to reach the exact programmed position before the control reads the skip signal. Disabling it during probing can cause inaccurate measurements.
You may disable Exact Stop for high-speed machining paths where smooth, continuous motion is preferred over precise corner positioning. This is typically done in finishing passes on contoured surfaces where corner rounding improves surface finish and reduces cycle time.
Practical Auto Mode Patterns
Lock Everything During Probing
The most common pattern: disable both Single Block and Feed Hold during a protected probe move, then immediately restore operator control.
(SAVE CURRENT STATE)
#3003=1 (DISABLE SINGLE BLOCK)
#3004=1 (DISABLE FEED HOLD)
G65 P9811 ... (PROTECTED PROBE MOVE)
(RESTORE)
#3003=0
#3004=0
Safe Macro Wrapper Pattern
For longer macros with multiple critical sections, wrap the entire body in a lockout block. This prevents any operator interference during the entire sequence. Always restore settings before M99, even if an error occurs.
(STORE ORIGINAL SETTINGS)
(LOCK OUT OPERATOR INTERFERENCE)
#3003=1 (NO SINGLE BLOCK)
#3004=3 (NO FEED HOLD, NO OVERRIDE)
...
(MACRO BODY)
...
(ALWAYS RESTORE - EVEN AFTER ERRORS)
#3003=0
#3004=0
M99
The table below summarizes common use cases and the recommended #3003 / #3004 settings for each scenario.
| Scenario | #3003 | #3004 | Why |
|---|---|---|---|
| Normal cutting | 0 | 0 | Operator has full control |
| Probing cycle | 1 | 1 | Prevent mid-probe interruption |
| Thread milling | 0 | 2 | Lock feed rate at 100% |
| Critical sequence | 1 | 3 | Full lockout during critical moves |
See also: Macro Control Flow for WHILE/DO loop structure.
References
- Peter Smid, Fanuc CNC Custom Macros, Industrial Press, 2004.
- Fanuc, Operator’s Manual / Parameter Manual, FANUC Corporation.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch