Fanuc Parameters

Parameter Page Guide

bit76543210
00000000
13001300.71300.61300.51300.41300.31300.21300.11300

Parameter List

PARAMETERBITVALUECHANGE
Machine Setup
130011Turn off overtravel alarm when handle jogging
Cycle Parameters
510121G83 Full Retract
Program Protection & Search
320201Lock 8000 Programs
320241Lock 9000 Programs
345700Library Folder is searchable
345710MTB2 Folder is searchable
345720MTB1 Folder is searchable
345730System Folder is searchable
345771Search folders also apply to M98/G65/G66/M96 calls (SCF); bit 6 (SCC) adds the main program’s own folder to the top of the search order
Custom G-Code Assignments
6050N/A####Custom G-Code that calls program 9010
6051N/A####Custom G-Code that calls program 9011
6052N/A####Custom G-Code that calls program 9012
6053N/A####Custom G-Code that calls program 9013
6054N/A####Custom G-Code that calls program 9014
6055N/A####Custom G-Code that calls program 9015
6056N/A####Custom G-Code that calls program 9016
6057N/A####Custom G-Code that calls program 9017
6058N/A####Custom G-Code that calls program 9018
6059N/A####Custom G-Code that calls program 9019
Macro Configuration
600001G67 without a modal call active is ignored instead of alarming (G67 bit)
600051Single block stops on macro statements (SBM) — step through macro blocks
600371Enable interrupt-type custom macro, M96/M97 (MUS) — power-off class
6036 / 6037N/A####Number of #100- / #500-range common variables shared across paths — power-off class
600871I/J/K arguments always use argument specification I regardless of order (IJK)
Program Display & Editing
32043 / 41Extend the O8000/O9000 edit locks to 8-digit programs O80000000–O99999999 (P8E/P9E)
329070/1Memory-protect keys: 0 = KEY1–KEY4 signals used, 1 = KEY1 only
340100/1Decimal point without a point typed (DPI): 0 = least increment, 1 = calculator type (X1 = 1.0 mm)

Parameter Data Types

Fanuc parameters come in several data formats. Understanding the format is essential for reading and writing parameters correctly.

Data TypeSizeValue RangeExample
Bit1 bit0 or 1Parameter 3202 bit 0 = lock O8000 programs
Byte8 bits-128–127 or 0–2550020 I/O channel selection
Word16 bits-32768–32767 or 0–655356050–6059 (G-code call numbers), 1851 backlash
2-word32 bits0 to ±999999999 (B-64730EN)3210 password, 6071–6089 M-code call tables
RealFloating valuePer the standard parameter setting tables (unit and range follow the increment system)1420 rapid traverse rate, 6281 skip feedrate
…path / axis / spindle / machine-groupQualifierOne value per path, controlled axis, spindle, or machine group“Word axis” 1851 = one backlash value per axis

Reading bit parameters: A single parameter number (e.g., 3202) contains 8 bits numbered 0–7. The bit number specifies which single flag within that byte you're setting. For example, parameter 3202 bit 0 controls O8000 program lock, while 3202 bit 4 controls O9000 program lock — they're in the same parameter but different bits.

Parameter Write Protection (PWE) — Changing a Parameter Safely

Most parameters are protected from accidental changes. The procedure below is the one both parameter manuals document (B-63530EN ch. 2, B-64730EN ch. 2):

StepActionNotes
1Select MDI mode (or the emergency stop state)The manual allows either; E-stop is how parameters are batch-loaded over RS-232
2Go to the SETTING page, set PARAMETER WRITE (PWE) = 1Parameter Write Enable — the control immediately raises alarm 100 “PARAMETER WRITE ENABLE” (P/S 100 on 16i/0i, SW0100 on 30i) and keeps it up while writing is enabled
3Navigate to the parameter and change its valueEnter 10;20;30 to fill consecutive parameters in one INPUT
4Set PWE = 0Always turn off when done
5Press RESET to clear the alarmReleases alarm 100; normal operation resumes

Power-cycle class: if the parameter you touched is one the manual flags “when this parameter is set, the power must be turned off before operation is continued,” the control raises a second alarm after the write — P/S 000 “PLEASE TURN OFF POWER” on 16i/0i, PW0000 “POWER MUST BE OFF” on 30i — and that one does not reset: the change only takes effect after a power cycle. Verified examples of the class: 1240 (reference position), 6003 (macro interrupt bits), 6036/6037 (path-shared macro variables), 8133 (basic function bits), 11900 (PMC execution order).

Safety warning: Changing parameters incorrectly can cause machine crashes, axis runaways, or data loss. Always record the original value before changing a parameter — or output the whole parameter file first (EDIT mode, [F OUTPUT] on the parameter screen).

Setting input vs. parameter input: The manual tags every parameter with an input type. Setting input parameters (e.g., 0000, 0020, 6711 parts count) can be changed from the SETTING screen without PWE when the memory-protect key signal KEY permits; parameter input parameters require PWE = 1. On 30i the manual also notes bit 0 (PWE) of parameter 8900 as an alternative to the SETTING-screen switch.

How Parameters Are Organized: the Number Range Map

Fanuc groups parameters by function in numbered blocks, and chapter 4 of every parameter manual is laid out in exactly this order — “Parameters of Setting,” “Parameters of Feedrate,” “Parameters of Custom Macros,” and so on. Knowing the block gets you to the right chapter fast. Ranges below follow the Series 30i/31i/32i-B Plus parameter manual (B-64730EN/01, sections 4.5–4.124); the 16i/18i-B (B-63530EN) and 0i-B (GFZ-63840EN) manuals use the same numbering with fewer sections.

RangeFunctionLandmarks
0000–0024Setting (SETTING screen)0000 = TVC/ISO/INI/SEQ bits, 0020 = I/O channel selection
0100–0139Reader/puncher (RS-232) interface0101–0103, 0111–0113, 0121–0123 per-channel comm settings
1000–1099Axis control / increment system1001 = mm/inch machine, 1002 jog behavior
1201–1260Coordinates1240 = reference position in machine coordinates
1300–1327Stored stroke check (overtravel)1300 = OUT/NAL/BFA bits
1401–1465Feedrate1420 = rapid traverse rate per axis, 1401 = RPD/LRP/TDR/RDR bits
1601–1785Acceleration/deceleration1622 = cutting feed accel/decel time constant
1800–2099Servo1825 = servo loop gain, 1851 = backlash compensation per axis
3001–3033DI/DO (machine interface signals)3001 = ST signal edge, M/S/T/B strobe speed
3100–3299Display and edit3202/3204 program protection, 3210/3211 password, 3290 display bits
3400–3499Programs3401 editing behavior, 3457 folder search order
3620–3627Pitch error compensation3620 = comp position number at reference position
3700–3799Spindle control3741 = max spindle speed for gear 1
5000–5029Tool compensation5001 = tool length comp type (TLC/TLB bits)
5101–5199Canned cycles5101 = drilling cycle bits (FXY, RTR peck mode)
5200–5321Rigid tapping5200 = G84 bits, 5210 = rigid tap mode M code
6000–6099Custom macros6050–6059 G-code calls, 6071–6089 M-code calls
6200–6287Skip function (G31, probing)6200/6201 skip signal bits, 6281–6285 skip feedrates
6300–6399External data input/output6300 = external program number search bits (ESR), 6310 = operator message numbering
6700–6758Run hour and parts count6710 = parts-count M code, 6711/6712 = parts counts, 6750–6754 = power-on/operation/cutting timers
7300sProgram restart7300 = M code output behavior on restart (MOA/MOU bits)
8130sBasic function selection8133 = feature bits (SSC constant surface speed, SCS Cs contour, AXC spindle positioning…) — power-off class
11900+PMC11900–11904 = multi-PMC execution order — power-off class

Parameters Every Programmer Eventually Meets

The handful of parameters below explain most “the machine acts different” conversations between two Fanuc controls. All numbers verified against B-64730EN/01 (30i/31i/32i-B Plus); the same numbers apply on 16i/18i-B and 0i-B unless noted.

ParameterWhat it isNotes
Units & input format
0000#2 (INI)Inch (1) / metric (0) inputSetting input — this is the state G20/G21 toggles
1001#0 (INM)Inch (1) / metric (0) machine — least command increment on linear axesSet by the builder for the ballscrews; power-off class
3401#0 (DPI)Meaning of a number typed without a decimal point0 = least increment (X1 = 0.001 mm), 1 = calculator type (X1 = 1.0 mm) — the classic source of 1000× position errors when moving programs between machines
3402Power-up / clear defaultsBits set whether the control wakes up in G01 (vs G00), G18 or G19 plane, G91 (vs G90), and what a reset clears (CLR)
Motion & axes
1020Program axis name for each axisByte axis (ASCII code of the letter)
1240Reference position in machine coordinatesPower-off class
1420 / 1423 / 1430Rapid traverse rate / jog feedrate / maximum cutting feedrate, per axisReal axis; 1420 is the number G00 actually runs at
1825Servo loop gain per axisWord axis; mismatched gains between interpolating axes distort circles
1851Backlash compensation per axisWord axis, detection units
3741–3744Maximum spindle speed, gears 1–4Caps every S word per gear range
Cycles & protection
5101#2 (RTR)G83/G87 behavior0 = high-speed peck (chip-break), 1 = full-retract peck — same G83 block, two different cycles
3202#0/#4 (NE8/NE9), 3210/3211O8000/O9000 edit locks and the O9000 passwordSee the protection sections above and below
Macros, counters, options
6036 / 6037How many of #100#199 / #500#999 are shared between paths on a multi-path controlPower-off class; explains “my variable changed and I never wrote it” on twin-path lathes
6710 / 6711 / 6712Parts-count M code / parts count / total parts countM02, M30, or the 6710 M code increments both counts; 6711/6712 are setting input, so operators can zero them; 6700#0 (PCM) restricts counting to the 6710 code only
6750–6754Integrated timers: power-on (min), operation, cuttingThe run-hour screen stores its data here; 6751/6753 hold msec, 6752/6754 hold minutes
8133Basic function bits: SSC (constant surface speed), AXC (spindle positioning), SCS (Cs contour)…Power-off class; AXC and SCS are mutually exclusive — both set makes both invalid

Custom Macro Parameters (6000–6099)

The 6000 block controls how Macro B behaves — single-block handling, alarm formatting, argument passing, and the G/M-code call tables. These are the parameters to check when a macro package runs differently on two machines.

ParameterBitNameWhat it controls
Execution behavior
60000G67G67 without G66 active: 0 = alarm (P/S 122 on 16i/0i-B, PS1100 on 30i-B Plus), 1 = ignored
60001 / 4MGO / HGOHigh-speed GOTO branching (first 20 sequence numbers / 30 preceding)
60005SBM1 = single block stops on macro statements (great for debug, slow in production)
60007SBV1 = macro single-block stop controllable at runtime via #3003
60016CCV0 = #100#149 cleared to null by reset, 1 = retained through reset (power-off always clears them)
60040NATATAN/ASIN result range: 0 = 0–360°, 1 = ±180° / ±90°
Arguments & alarms
60073MGEParameter-defined modal calls: 0 = every block (G66.1-style), 1 = after motion (G66-style)
60074CVAMacro call argument format: 0 = NC format as-is, 1 = converted to macro format
60081MCA#3000 alarm display: 0 = value+3000 (0–200 allowed), 1 = MC-prefixed value (0–4095)
60086GMPAllow M/S/T calls during a G-code call (and vice versa) — needed for nested call schemes
60087IJK1 = I/J/K arguments always use specification I regardless of order
Interrupt-type macros (M96/M97)
60032MINInterrupt type: 0 = mid-block (type I), 1 = after block completes (type II)
60033TSEUINT signal: 0 = edge trigger, 1 = status trigger
60037MUS1 = interrupt-type custom macro enabled

Call-table data parameters — these map custom G and M codes to O9xxx programs (the existing 6050 table above covers the classic ten G-code slots):

ParameterCallsNotes
6050–6059G code → O9010–O9019 (macro call)Negative value = modal call (G66-style); cannot use 0, 5, 65, 66, 67
6060–6069Decimal-point G code → O9040–O9049Requires DPG (6007#0) = 1; value = m×10+n for Gm.n
6071–6079M code → O9001–O9009 (subprogram call)No arguments passed; M30/98/99 not allowed
6080–6089M code → O9020–O9029 (macro call)If the same M code is in both 607x and 608x, the macro call (608x) wins
6090–6091ASCII address → O9004–O9005Set the address letter as decimal ASCII (A=65 … Z=90)
6038–6040Block of G codes → block of O numbersStart G code / start O number / count — e.g., G900–G999 → O1000–O1099
6044–6049Block of M codes → subprograms / macrosSame start/start/count pattern as 6038–6040
6030External device subprogram call M code0 = default M198
6031–6032Protect a range of #500#999Start/end of read-only common variables; writes alarm out
6033–6034Macro interrupt enable/disable M codesOnly when MPR (6003#4) = 1; otherwise M96/M97

Skip and Probing Parameters (G31, 6200s)

Everything that decides how a G31 skip move (touch probe, tool setter) actually stops lives in the 6200 block. Two bits matter most on a probing machine: HSS selects the high-speed hardware skip inputs over the slower PMC skip signal, and SKF decides whether override/dry-run can corrupt a measurement.

ParameterBitNameWhat it controls
62000GSK1 = the PMC skip signal SKIPP is also valid as a skip signal for G31
62001SK0Skip signal polarity: trigger on 1 (0) or on 0 (1)
62004HSS1 = G31 uses high-speed skip inputs (HDI0–HDI7) instead of the conventional signal
62005SLS1 = multi-step skip uses high-speed skip inputs
62006SREHigh-speed skip edge: 0 = rising, 1 = falling
62007SKFDry run / override / auto accel-decel during G31: 0 = disabled (keep 0 for accurate probing), 1 = enabled
62011SEB1 = compensate accumulated accel/decel pulses in the captured skip position
62012TSETorque-limit skip (G31 P98/P99): stored position with or without servo lag
62014IGX1 = disable SKIP/SKIPP/SKIP2–8 when high-speed skip is used
62017SKPXESKIP signal for G31: 0 = enabled, 1 = disabled (30i naming — the 16i/0i-era SPE bit here has the opposite sense: 0 = disabled, 1 = enabled)
6202–62060–71S1–DS8Multi-step skip matrix: which signal (SKIP/HDI0–7) fires G31 P1–P4 and dwell-skip G04 Q1–Q4
62071/2SFP/SFN1 = G31 ignores programmed F and uses the parameter feedrate instead
6220Debounce: period (×8 ms) that skip inputs are ignored after a trigger (continuous high-speed skip)
6281–6285Skip feedrates: 6281 for G31 (SFP = 1); 6282–6285 for G31/P1 through P4 (SFN = 1)

Captured skip positions land in system variables #5061#5080 (workpiece coordinates) — see Fanuc System Variables. If a probe cycle "works but measures wrong," check SKF first, then SEB.

I/O Channel, RS-232, and DPRNT Parameters

Parameter 0020 selects where program I/O (and DPRNT/POPEN output) goes; the 0100 block configures each serial channel. This is the block to touch when setting up drip-feed or a DPRNT data collection line.

ParameterWhat it setsValues / notes
0020I/O CHANNEL — active input/output device0/1 = RS-232 port 1, 2 = RS-232 port 2, 4 = memory card, 5 = data server; 30i adds 9 = embedded Ethernet, 17 = USB memory
0021–0023Foreground output / background input / background output devicesOnly used when IO4 (0110 bit 0) = 1 for separate channel control
0100Serial I/O bits#3 NCR: EOB output = LF,CR,CR (0) or LF only (1); #6 IOP: reset stops I/O
0101 / 0111 / 0121Comm format for channel 0 / 1 / 2#0 SB2: 1 or 2 stop bits; #3 ASI: ASCII input; #7 NFD: set 1 for anything that isn't a FANUC PPR
0102 / 0112 / 0122Device specification number per channel0–6
0103 / 0113 / 0123Baud rate per channelCode 1–12; common codes: 10 = 4800, 11 = 9600, 12 = 19200 bps
0138Bit 7 MNC1 = allow DNC operation and M198 subprogram call from the memory card

DPRNT formatting is controlled from the macro block, not the I/O block: 6001 bit 1 (PRT) prints leading zeros as spaces or drops them, 6001 bit 4 (CRO) appends CR after LF (needed by most PC-side collectors), 6008 bit 5 (ADD) alarms instead of truncating when a value overflows the [a,b] format, and 6008 bit 3 (KOP) closes a POPEN line on reset.

Program Protection Passwords (3210/3211)

Beyond the 3202 lock bits above, builders often password-protect the O9000 range. Parameter 3210 (PSW) holds the password: when it is non-zero and does not match the keyword in 3211 (KEY), the control forces NE9 (3202 bit 4) to 1 and O9000–O9999 cannot be edited or unlocked. Entering the matching value in 3211 releases the lock; 3211 clears to 0 at power-off, and 3210 displays blank once set. Lose the password and there is no front-panel way back in — treat 3210 with respect.

See also: Custom G/M Cycles for parameter 6050–6059 custom G-code setup in detail, Fanuc System Variables for the runtime variable reference, and Macro Structure for program protection and O-number ranges.

Worked Example: A Skip Block Governed by the 6200-Series Bits

The same G31 block behaves completely differently depending on how the 6200 block is set — which input stops the move, on which edge, at what feedrate, and how clean the captured position is. The program below touches a tool setter in Z; the comment header records the bit settings the move depends on, so the assumption is visible right in the program.

(SETUP NOTES - CONFIRM THESE 6200-SERIES BITS BEFORE TRUSTING THE MOVE)
(6200#1 SK0 = 0 : SKIP TRIGGERS WHEN THE SIGNAL GOES TO 1)
(6200#4 HSS = 1 : G31 USES THE HIGH-SPEED SKIP INPUTS HDI0-HDI7)
(6200#6 SRE = 0 : HIGH-SPEED SKIP FIRES ON THE RISING EDGE)
(6200#7 SKF = 0 : OVERRIDE / DRY RUN LOCKED OUT DURING G31 - KEEP 0)
(6201#1 SEB = 1 : ACCEL/DECEL PULSES COMPENSATED IN THE STORED POSITION)
(6207#1 SFP = 0 : G31 USES THE PROGRAMMED F WORD, NOT PARAMETER 6281)

O0031 (SINGLE-TOUCH Z SKIP AGAINST A TOOL SETTER)
G90 G54 G0 X0 Y0                (POSITION OVER THE TOOL SETTER PAD)
G43 H10 Z25.                    (TOOL LENGTH ACTIVE, CLEARANCE ABOVE THE PAD)
G31 Z-25. F100.                 (FEED DOWN - MOVE STOPS WHEN THE SKIP SIGNAL FIRES)
#110 = #5063                    (CAPTURED Z AT TRIGGER, WORKPIECE COORDINATES)

(IF THE SIGNAL NEVER FIRES, G31 SIMPLY COMPLETES TO Z-25. LIKE G01)
(GUARD: AN END POINT AT FULL TRAVEL MEANS NOTHING WAS TOUCHED)
IF [#110 GT -24.9] GOTO 10      (TRIGGERED SHORT OF FULL TRAVEL - OK)
#3000 = 101 (SKIP SIGNAL NEVER FIRED)

N10 G0 Z25.                     (RETRACT TO CLEARANCE)
M30

Flip a bit and the identical block changes behavior: SK0 = 1 inverts the polarity so a normally-closed probe works (and a normally-open one triggers instantly); SKF = 1 lets feed override and dry run alter the actual gauging feedrate, corrupting the measurement; SFP = 1 makes the control ignore F100. entirely and feed at the rate stored in parameter 6281 (a 30i-generation feature — 16i/18i-B has no 6207/6281, so G31 there always follows the programmed F). On 16i/0i-era controls a macro cannot read these bits at runtime, so the comment header above is the practical defense — state the required settings where the operator will see them. On 30i-generation controls you can go further and guard-read them with the PRM function (B-64724EN §16.7): IF [PRM[6200,7] EQ 1] THEN #3000 = 102 (SKF MUST BE 0).

Generation Note: the Numbers Stay, the Bits Move

Parameter numbering is remarkably stable from 16i/18i through 0i to 30i/31i/32i — 3202 locks programs, 6050 maps a G code, 6200 governs skip on all of them — but individual bits get renamed, inverted, added, and deleted between generations, so always confirm against the manual for your control. Concrete examples found while verifying this page: parameter 6201#7 is SPE on 16i/18i-B and 0i-B (0 = SKIP signal disabled, 1 = enabled) but SKPXE on 30i-B Plus with the polarity inverted (0 = enabled, 1 = disabled); 6200#3 (MIT, lathe ±MIT direct-input signals as skip inputs) and 6201#0 (SEA, “type A” accel/servo-delay compensation) exist on 16i/0i but are gone on 30i, which keeps only SEB; and the skip-feedrate override (6207 SFP/SFN with feedrates 6281–6285) does not exist on 16i/18i-B at all. Even alarm numbers move: G67-without-G66 raises P/S 122 on 16i but PS1100 on 30i-B Plus.

References

  • Fanuc, Series 30i/31i/32i-MODEL B Plus Parameter Manual, B-64730EN/01 — primary source for the range map, macro (4.37) and skip (4.40) parameter tables, data types, and the PWE/SW0100/PW0000 procedure.
  • Fanuc, Series 16i/18i/160i/180i-MODEL B Parameter Manual, B-63530EN/03 — 16i-generation verification (P/S 100/000 alarms, SPE/SEA/MIT/TSA skip bits, custom macro 4.38).
  • GE Fanuc, Series 0i-MODEL B Parameter Manual, GFZ-63840EN/03 — 0i-generation contrast (skip 4.32, custom macro 4.28).
  • Fanuc, Series 30i/31i/32i-MODEL B Plus Operator’s Manual (Common), B-64724EN/01 — §16.7 PRM parameter-read function.
  • Peter Smid, Fanuc CNC Custom Macros, Industrial Press, 2004.

Have a question or want to contribute?

Contact us with corrections, additions, or topics you'd like covered.

Get in Touch