Haas Settings & Parameters
Settings vs. Parameters on a Haas
Haas splits its configuration into two layers with different owners. Settings are the numbered, operator-changeable values on the Settings page — unit system, cycle behavior, edit locks, override behavior. Parameters are the service/factory layer underneath: axis tuning, travel limits, machine configuration. This split trips up people coming from Fanuc, where the single word “parameters” covers both and the only gate is PWE plus the occasional power cycle. On a Haas, if a value is meant for you, it lives in Settings; if it isn’t, it lives in Parameters and you generally shouldn’t be in there without Haas service on the phone.
On the Next Generation Control (NGC), press SETTING to reach the Settings tab — entries are numbered, searchable, and editable at the keyboard (some only in specific modes or with the setup key). Parameters are viewable under the Diagnostics/Maintenance area but are locked against casual editing; changing them is a service-level operation.
Settings a Programmer Actually Touches
These are the settings that show up over and over in setup, program transfer, and “why does this program run differently here” conversations. Numbers and names per the Haas mill Operator’s Manual (NGC).
| Setting | Name | Why it matters |
|---|---|---|
| Units & Coordinates | ||
| 9 | Dimensioning | INCH or MM — the control’s display/entry unit system. Changes offset displays, jog increments, and default feed interpretation; verify before touching offsets on an unfamiliar machine |
| 33 | Coordinate System | FANUC, HAAS, or YASNAC — selects how the control interprets G52 and G92 work-offset shifts. The classic “same program, offsets land somewhere else” setting |
| Program Execution | ||
| 31 | Reset Program Pointer | ON = pressing RESET sends the cursor back to the top of the program; OFF = it stays put. Affects mid-program recovery habits |
| 88 | Reset Resets Overrides | ON = RESET snaps feed/spindle/rapid overrides back to 100%. Decide per shop — an operator dialed to 50% for a reason may not want RESET undoing it |
| 118 | M99 Bumps M30 CNTRS | ON = each M99 loop increments the M30 counters — keeps parts counts honest in bar-feed / repeating-program work |
| Canned Cycles | ||
| 22 | Can Cycle Delta Z | The retract distance used in G73 high-speed peck drilling. Two machines with different values peck differently on the identical program |
| 52 | G83 Retract Above R | How far above the R plane G83 retracts for chip clearance — raise it when chips pack; it changes cycle time on deep-hole work |
| 27 | G76/G77 Shift Dir. | Direction (X±, Y±) the tool shifts off the bore wall before retract in fine boring cycles — wrong direction drags the tip across the finished bore |
| Cutter Compensation | ||
| 58 | Cutter Comp | FANUC or YASNAC style — changes how G41/G42 lead-in/lead-out moves are calculated. A comp program proven under one style can gouge or alarm under the other |
| Protection & Setup | ||
| 23 | 9xxx Progs Edit Lock | ON = O09xxx macro programs (probing, tool-change macros) can’t be viewed or edited — the Haas analog of Fanuc’s NE9 bit |
| 76 | Tool Release Lock Out | ON = disables the tool-release button on the spindle head — safety/setup control on mills |
There are hundreds more settings — probing, networking, rotary, safety — but the table above covers the ones that change how a posted program actually behaves.
Reading Settings and Parameters from a Macro
On the NGC, macros can read the entire Settings and Parameter tables through mirrored system variables: setting n appears at #20000 + n and parameter n at #30000 + n. So Setting 9 is #20009, Setting 33 is #20033, and so on. This is how a portable macro package defends itself against machine-to-machine configuration drift — check the setting, then branch.
(BRANCH ON SETTING 9 - DIMENSIONING INCH/MM)
(ENUMERATED SETTINGS READ BACK AS A NUMERIC CODE.)
(CONFIRM THE ENCODING ONCE ON YOUR MACHINE: DISPLAY #20009)
(ON THE MACRO VARS PAGE IN INCH MODE AND AGAIN IN MM MODE.)
IF [#20009 EQ 0] GOTO 100 (ONE UNIT MODE)
#101 = 25.4 * #101 (CONVERT STORED INCH CONSTANT)
GOTO 200
N100 (INCH-MODE PATH)
N200 (COMMON CODE CONTINUES)
(SETTING 33 GUARD - REFUSE TO RUN UNDER THE WRONG STYLE)
IF [#20033 NE #500] THEN #3000 = 101 (CHECK SETTING 33)
Two rules keep this safe. First, treat the #20000/#30000 ranges as read-only: they exist so macros can inspect configuration, not manage it. Second, don’t use them as a back door for data that has a proper home — work offsets, tool offsets, and wear values have their own writable system-variable ranges (and G10 for programmed entry), and that’s where a macro should write. See Haas System Variables for those ranges.
Settings That Change How G-Code Executes
The dangerous settings are the ones that make the same program do different things on two machines. Three come up constantly:
Setting 33 (Coordinate System). A program using G52 or G92 shifts is interpreted per the selected style — FANUC, HAAS, or YASNAC handle how the shift is applied and cancelled differently. A fixture-offset scheme proven on a machine set to FANUC can put parts in the wrong place on a machine set to YASNAC without a single byte of the program changing. If your posts emit G52, standardize Setting 33 across the fleet and have programs verify it (the #20033 guard above).
Setting 58 (Cutter Comp). FANUC-style and YASNAC-style compensation compute lead-in/lead-out geometry differently. The symptom is a comp program that runs clean on one machine and throws a cutter-comp alarm — or leaves a witness mark on the lead-in — on another. When a comp toolpath misbehaves only on one machine, compare Setting 58 before touching the program.
Setting 22 (Can Cycle Delta Z). G73 pecks retract by this setting’s distance, not by anything in the program. Two machines with different values produce different chip-breaking behavior and cycle times on the identical drilling block; deep-hole G83 work has the same flavor of dependence on Setting 52. If a hole cycle “packs up” only on one machine, check these before blaming the drill.
Parameters (Service Level)
The parameter layer holds the machine’s identity: axis tuning and motor configuration, travel limits, tool-changer and spindle configuration, feature enablement, and the aliasing tables that bind custom G- and M-codes to O09xxx macro programs (the Haas equivalent of Fanuc’s 6050/6080 call tables). It is deliberately locked away from the Settings page — on the NGC these values are protected at the service level, and many are tied to the specific machine build.
Do not change parameters without guidance from Haas service. Unlike a bad setting, a bad parameter can produce axis faults, crashes, or a machine that no longer matches its own factory records. If a behavior seems parameter-rooted, note the parameter number (macros can read it via #30000 + n for diagnosis) and call your Haas Factory Outlet rather than editing.
Backing Up Settings and Parameters
The NGC can save machine data — settings, parameters, offsets, macro variables, programs — to USB or network storage as a backup, and restore selectively from it. Take a fresh backup before any deliberate settings campaign (and before service visits), and keep a known-good copy per machine off the control; it is the fastest way to answer “what changed” when a machine starts behaving differently.
See also: Haas System Variables for the full #-variable map including the #20000/#30000 mirrors, Haas Macro Programming for the macro language these reads live in, Haas Alarms & Diagnostics for what to check when a setting-rooted alarm appears, and Fanuc Parameters for the contrast — where Fanuc gates everything behind PWE, Haas splits the same territory into an open Settings page and a closed service layer.
References
- Haas Automation, Mill Operator’s Manual (Next Generation Control), Haas Automation Inc., Oxnard, CA.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch