📷 IMAGE AREA — FANUC 0-MC control panel: parameter (PARAM) screen, PWE and alarm display
Recommended size: 1200×630 px (16:9, hero) · WebP/JPG · <150 KB · filename: fanuc-0mc-parameter-screen.webp · alt: FANUC 0-MC vertical machining center parameter screen PWE alarm
FANUC Series 0-MC is one of the classic FANUC controls used on CNC milling machines and vertical machining centers. This content is not a basic panel or an introduction-to-CNC-milling course; the aim is to collect the main G codes used on the 0-MC control, the parameters that affect these functions, and common alarm situations into a technical reference. The correct spelling of the model is FANUC 0-MC; the leading character is not the letter “O” but the digit 0. Nevertheless, users may also search for this model as “FANUC OMC”. The source operator manual defines 0-MC as a machining center model; the same manual also lists other models such as 0-MF, 00-MC and 0-Mate MC, but this page covers only the FANUC Series 0-MC CNC milling / vertical machining center. Some features can depend on the control option, the software version and the machine builder’s PMC implementation.
What to know before changing a parameter
On a FANUC control, parameters are not simple settings that only change the screen appearance. Some parameters directly affect the axis motion direction, the reference point, servo motor resolution, rapid traverse rate, stroke limits, spindle speed, tool compensation behavior, drilling cycles, rigid tapping and RS-232 communication. The operator manual clearly states that CNC and PMC parameters are normally set by the machine builder and must not be changed without fully understanding their function. A wrong parameter can make the machine move unexpectedly and damage the tool, the part or the machine. Before a parameter is changed, at least the following should be recorded: the current value of the parameter, the parameter number and bit number, the reason for the change, the change date, the person making the change, and the control’s model/software information. If possible, all parameters, offsets, macro variables and programs should be backed up.
1. FANUC 0-MC G codes
The following G codes are the basic codes used in the 0-MC machining-center programming structure. Some advanced functions are not standard and can be optional.
G00 — Rapid Positioning
G00 moves the tool to the specified position at rapid without cutting (e.g. G00 X100. Y50. Z20.). The axes move at the rapid rate set by parameters; writing an F value in the program does not set the G00 speed. Related parameters: 0518–0521 X/Y/Z and 4th-axis rapid rates; 0522–0525 linear acc/dec time constant in rapid; 0533 rapid override F0 speed; 0534 low approach speed during reference return; 0559–0562 JOG rapid speeds. Setting the rapid rate too high can cause servo alarms, vibration, position overshoot or mechanical strain.
G01 — Linear Cutting Move
G01 moves the tool linearly at the programmed feed (e.g. G01 X80. Y30. F250. — usually 250 mm/min in metric). Related parameters: 0527 maximum cutting feed; 0529 exponential acc/dec time constant in cutting and manual feed; 0567 max cutting feed if feed system B is used; 0549 initial cutting feed in auto mode at power-on; 0001 bit 6 (RDRN) whether the rapid command is affected by dry run; 0045 bit 3 (LSUP) acc/dec form in cutting.
G02 / G03 — Circular Interpolation
G02 is a clockwise arc, G03 counter-clockwise (e.g. G17 G02 X50. Y20. I25. J0. F200. or G17 G03 X50. Y20. R25. F200.). Addresses: X/Y/Z arc end point, I/J/K distance of the arc center from the start point, R arc radius, F cutting feed. Plane: G17 XY, G18 XZ, G19 YZ. A wrong plane selection can cause the arc to be made in the wrong axes. Related parameters: 0393 bit 1 (COVOUT) outer-arc feed; 0495/0496 max/min feed at the standard arc radius; 0863 standard radius in radius-based feed limiting; 0393 bit 4 (HLCLMP) limiting helical feed to the maximum.
G04 — Dwell
G04 makes the program wait for the specified time (e.g. G04 P1000). Depending on the control version and input format, P can be interpreted in milliseconds or a specific time unit; the machine builder’s manual should be checked. G04 can be used for a short dwell at the hole bottom, waiting for the spindle to reach speed, waiting for a vise/clamp signal, and delaying coolant activation.
G17, G18, G19 — Working Plane Selection
G17 is the XY plane, G18 XZ, G19 YZ. On a vertical machining center, general milling mostly uses G17. Plane selection affects G02/G03 arc motion, G41/G42 cutter radius compensation, the hole axis in fixed cycles, and helical interpolation.
G20 / G21 — Inch and Metric Input
G20 is the inch system, G21 metric. Using these commands does not automatically convert stored parameters, work zeros or tool offset values; when the measurement system is changed, previously entered offset and coordinate values must also be checked. Related parameters: 0000 (INCH) the smallest input unit being mm or inch; 0001 bit 0 (SCW) linear-axis command unit; 0024 bit 1 (LII10) input/output resolution system; 0057 bit 3 (MIC) interpretation of a value when no decimal point is written.
G28 — Return to Reference Point
G28 sends the axis to the first reference point via an intermediate point (e.g. G91 G28 Z0. then G91 G28 X0. Y0.). The G90/G91 state must be checked carefully; especially giving a wrong intermediate point with G90 can cause unexpected motion. Related parameters: 0003 bit 0–3 (ZM) reference return direction per axis; 0074 bit 0–3 (CRF) alarm behavior when a move command is given without reference; 0076 bit 1 / 0391 bit 0–5 (JZRN) dogless reference; 0708–0711 reference coordinates in automatic coordinate setup; 0735–0738 first–second, 0780–0783 first–third, 0784–0787 first–fourth reference distances.
G30 — Return to 2nd, 3rd or 4th Reference Point
G30 is mostly used to return to a second fixed reference point such as the tool-change position (e.g. G91 G30 Z0.). The actual tool-change position is related to the machine builder’s PMC ladder program and mechanical structure. G30 values must not be changed at random; a wrong reference point can cause a collision between the tool-changer arm and the spindle.
G31 — Skip Function
G31 stops the axis motion when an external skip signal arrives and records the position at that moment (e.g. G31 Z-100. F100.). Uses: tool length measurement, surface finding with a probe, workpiece measurement, contact detection. Related parameter: 0015 bit 3 (SKPF) the effect of dry run, override or automatic acc/dec during G31. The physical input of the skip signal and the PMC connection depend on the machine builder.
G40 / G41 / G42 — Cutter Radius Compensation
G40 cancels compensation, G41 is left compensation relative to the travel direction, G42 right. The D address calls the offset number where the cutter radius compensation value is stored.
G00 X0. Y0.
G01 Z-5. F100.
G41 D01 X20. Y0. F200.
G01 X80.
G03 X100. Y20. R20.
G01 Y80.
G40 X120.Related parameters: 0062 bit 1 (G40V) the compensation direction when G40/G41/G42 is given without a move command; 0048 (DAC) absolute and (DRC) relative coordinate display effect of cutter compensation. Common mistakes: the compensation start move being too short, the D value being zero/wrong, using G42 instead of G41, giving G28 while compensation is on, the inner-corner geometry being smaller than the tool radius, and the G40 cancel move being insufficient.
G43 / G44 / G49 — Tool Length Compensation
G43 is positive, G44 negative tool length compensation, G49 cancel. On vertical machining centers G43 is the most common (e.g. G00 G43 Z100. H01 — H01 calls tool length offset number 1). Safety: approaching the part in Z without calling tool length compensation can cause a collision; the H number must match the actual tool number. During rigid tapping and fixed cycles, when G43/G44/G49 is given, the operator manual’s correction supplement states that tool length compensation is applied during positioning to the R point.
G45–G48 — Tool Offset Functions
Used for classic tool offset moves: G45 single increase, G46 single decrease, G47 double increase, G48 double decrease. Although G41/G42 and G43 are more common in modern work, G45–G48 can be seen on old systems.
G50 / G51 — Scaling
G51 enables scaling, G50 cancels it. Program coordinates can be scaled up or down by a set ratio. This feature may not be standard on every 0-MC system.
G54–G59 — Work Coordinate Systems
G54–G59 are the first to sixth work zeros. Related parameters: 0755–0758 G54, 0759–0762 G55, 0763–0766 G56, 0767–0770 G57, 0771–0774 G58, 0775–0778 G59 axis offsets; 0751–0754 external work coordinate shift; 0010 bit 7 (APRS) automatic coordinate setup on reference return; 0024 bit 6 (CLCL) local coordinate cancel on reference return. Work zeros can be entered from the control’s OFFSET screen; changing them directly from the parameter area is usually used in maintenance or backup restore operations.
G60 — Unidirectional Positioning
G60 makes the axis always approach the target position from a set direction; used to reduce backlash effect, for precise hole positioning, for measurement/gauge positions and for repeatable positioning.
G61, G62, G63, G64 — Cutting Modes
G61 exact stop (precise stop at each block end), G62 automatic speed reduction at inner corners, G63 tapping mode, G64 continuous cutting mode. Related parameters: 0393 bit 0 (FERDT) automatic corner deceleration; 0395 bit 3 (CHEAFD) corner control by block speed difference; 0213 inner-arc auto deceleration min ratio; 0214 inner-corner auto override; 0215 inner-corner angle for override; 0482 feed after corner deceleration; 0483 feed difference between blocks; 0864/0865 critical corner angles.
G68 / G69 — Coordinate System Rotation
G68 rotates the coordinate system, G69 cancels it (e.g. G68 X0. Y0. R45. — rotates the geometry 45° about the given center). The function can be optional on some systems.
📷 IMAGE AREA — 0-MC fixed cycle (G73/G83) pecking diagram: Z, R, Q and G98/G99 return planes
Recommended size: 1000×750 px (4:3, in-content) · WebP/JPG · <150 KB · filename: fanuc-0mc-fixed-cycle-g83.webp · alt: FANUC 0-MC fixed cycle G73 G83 pecking Z R Q G98 G99
2. FANUC 0-MC drilling and tapping cycles
The basic addresses used in fixed cycles: X/Y hole position, Z final hole depth, R approach and retract plane, Q amount per peck, P dwell time, F cutting feed, L or K number of repeats (can differ by version). G98 returns to the initial plane at cycle end, G99 to the R plane. If a clamp, vise or part protrusion is present, safety of the move to the next hole must be checked when using G99.
G73 — High-Speed Peck Drilling
G73 is a fast pecking cycle with short retracts to break chips (e.g. G98 G73 X30. Y20. Z-25. R2. Q5. F150.). The tool does not fully retract to the R plane at each step; therefore it suits shallow-to-medium holes, materials with easily broken chips and faster cycle times. For deep holes needing chip evacuation, G83 should be preferred.
G74 — Left-Hand Tapping
G74 is the left-hand tapping cycle (e.g. G98 G74 X40. Y20. Z-15. R2. F500.). With the rigid tapping option, the spindle and Z axis are synchronized; the feed and spindle speed must match the thread pitch. In feed-per-minute mode F = Speed × Pitch (e.g. pitch 1.25 mm, 400 rpm → F = 500 mm/min). The operator manual’s correction note states that in feed-per-minute mode the thread pitch is obtained as feed divided by spindle speed, while in feed-per-revolution mode F equals the thread pitch directly.
G76 — Fine Boring
G76 is the fine boring cycle. At the hole bottom the spindle can be stopped at a set orientation and the tool moved away from the cutting surface before retracting; the aim is to reduce rubbing of the boring tool on the machined surface during retract. The orientation and spindle-orient behavior depend on the machine builder.
G80–G89 — Cycle Cancel and Other Cycles
- G80: cancels the active drilling/boring cycle. Cancelling the cycle with G80 before a new move is a safe programming habit.
- G81 — Standard drilling:
G98 G81 X20. Y20. Z-15. R2. F120.The tool cuts down to Z depth and retracts without dwell. - G82 — Dwell drilling/counterbore:
G98 G82 X20. Y20. Z-8. R2. P500 F100.Dwells for P at the hole bottom; used for spot drilling, counterbore and base surface quality. - G83 — Deep-hole pecking:
G98 G83 X30. Y30. Z-50. R2. Q8. F120.After each peck it retracts to the R plane to eject chips; unlike G73 it is preferred for deep holes, long-chip materials and chip-jam risk. - G84 — Right-hand tapping:
G98 G84 X30. Y30. Z-20. R2. F500.In rigid tapping the spindle and Z run synchronously. Rigid tapping parameters (enable, spindle return, synchronization gain, acc/dec, speed limits, retract speed) are directly related to the spindle motor, encoder and drive system; another machine’s parameters must not be copied. - G85 — Boring (cut out on retract): the tool enters at F feed and retracts at cutting feed as well, spindle does not stop.
- G86 — Boring with spindle stop: reaches depth, spindle stops, retracts rapidly.
- G87 — Back boring: back-surface machining; can require a special tool and spindle orient.
- G88 — Boring with manual retract: at depth the spindle can stop and retract with operator intervention; application depends on the control and builder.
- G89 — Boring with dwell: dwells at the hole bottom and retracts at cutting feed.
3. FANUC 0-MC important parameter groups
0000 — Setting Parameter and PWE
This parameter contains the basic bits affecting daily operation and programming: REVX/REVY/REVZ software mirror image on axes (if wrongly enabled, geometry is machined mirrored); TVON TV check on program registration; ISO program output code EIA/ISO; INCH program input unit mm/inch; I/O reader/punch input/output channel; ABS incremental/absolute interpretation of MDI commands; SEQ automatic sequence numbering. PWE (Parameter Write Enable): 0 = cannot write, 1 = can write. During a change PWE is set to 1, and after the operation it must be set back to 0; seeing an alarm while PWE is on can be normal.
0003 Reference Direction / 0008 bit 6 OTZN / 0010 bit 7 APRS / 0015 bit 4 LM2
0003 axis bits set the reference return direction; if wrong, the axis can move in reverse and reach a limit switch, causing an overtravel alarm and mechanical collision. Change only if the reference system and mechanical structure are known. 0008 bit 6 (OTZN) enables/disables the stored stroke check on the Z axis; disabling it can make the axis not alarm even when exceeding the software limit (dangerous). 0010 bit 7 (APRS) automatic coordinate setup on manual reference return. 0015 bit 4 (LM2) the signal that changes the second stored stroke limit; can be used to protect the tool-changer area or clamping fixtures.
0021 / 0022 — Absolute Pulse Coder
The bits in these parameters set whether an absolute position detector is used on the axes and whether the reference has been established. A wrong change can cause reference loss, an APC alarm, a change of the axis zero and corruption of the tool-change position. When the absolute encoder battery weakens, the alarm must be heeded; the operator manual states that if the battery is not replaced soon after a battery alarm, the absolute position information can be lost.
0048 — Display and Rapid / 0057 bit 3 MIC
0048: DAC absolute, DRC relative coordinate display effect of cutter compensation; SMZCT enables/disables rapid block overlap. When overlap is enabled, consecutive rapid blocks run more smoothly, but machine dynamics and safety distances must be considered. 0057 bit 3 (MIC): affects how values entered without a decimal point are interpreted; for example X100 in some settings can be interpreted per the smallest input unit instead of 100 mm. Misunderstanding this causes large positioning errors; decimal points should be written explicitly in programs (X100.).
0062 — G40V and SPMRPM
0062 bit 1 (G40V): sets how the cutter compensation move is formed when G40/G41/G42 is given without a move command; can affect whether old programs produce the same tool path under a new/different control setting. 0062 bit 3 (SPMRPM): the unit of spindle speed parameters, 0 = 1 rpm, 1 = 10 rpm; affects spindle speed parameters such as 0539–0543, 0551, 0555, 0556. A wrong setting can cause the real spindle speed limits to be evaluated ten times off.
0074 CRF / 0398 Rotary Axis
0074 (CRF) bits set whether an alarm occurs when move commands other than G28 are given without the axis reference established; running an automatic program without reference is not recommended for safety. 0398: ROAX roll-over, RODRC whether a rotary axis in an absolute command moves the shortest way or per the command sign, ROCNT rounding of rotary-axis relative coordinates to one turn; important on 4th-axis machines.
Speed, Stroke and Work-Zero Parameters
- 0518–0521 rapid rates: set considering ballscrew pitch, servo capacity, slide structure, axis weight and acceleration capacity. A high value can cause vibration, servo deviation, overcurrent alarm and mechanical knock.
- 0522–0525 rapid time constants: too small causes hard acceleration/impact/servo overload, too large causes late acceleration and long cycle time.
- 0527 max cutting feed, 0529 cutting feed time constant (affects surface quality and corner behavior).
- 0533 rapid F0 speed, 0534 reference return approach speed, 0559–0562 JOG speeds.
- 0700–0703 / 0704–0707: first stroke limit positive/negative direction; must not be set too close to the mechanical limits.
- 0735–0738: second reference point distances (critical if G30 is used for tool change).
- 0755–0778: G54–G59 work zeros; normally edited from the OFFSET screen, wrong loading during a backup restore can make the tool enter the part from a wrong position.
4. FANUC 0-MC common alarm codes and solution approach
Below are the alarm groups commonly seen in this control family and safe solution methods. The exact alarm number, message on the machine screen and the machine builder’s wiring diagram always take priority.
Program Alarm — Wrong G Code
Causes: a G code not present in the control, calling a non-optional function, two G codes from the same group in the same block, using a lathe G code on a mill control, the G-code system setting not matching the program. Solution: find the alarmed block, compare the G code with the 0-MC codes, check whether an option is required, review the modal G codes in the same block, and correct the program before changing any parameter.
Circular Interpolation Alarm
Causes: the G02/G03 end point does not match the center data, I/J/K in the wrong plane, an arc cannot be formed geometrically with R, wrong G17/G18/G19, wrong arc start/end points, a full circle commanded with R. Solution: check the active plane, recalculate the arc start/end/center, remember that I/J/K are incremental from the start point, try I/J/K instead of R, and check the program with graphics/machine lock.
Cutter Compensation Alarm
Causes: the G41/G42 start move shorter than the tool radius, wrong D offset, wrong compensation direction, inner corner smaller than the tool diameter, insufficient G40 cancel move, G28 or a machine coordinate move given while compensation is on. Solution: check the D offset, lengthen the G41/G42 entry move, make the G40 exit move linear and long enough, compare the part contour with the tool radius; review 0062 G40V only if there is an old-program compatibility problem.
Fixed Cycle Alarm
Causes: Z/R/Q/P/F missing in a G73–G89 cycle, R plane and Z depth in wrong order, Q zero or negative, wrong plane active, another operation done without G80 cancel, G98/G99 return plane not safe. Solution: check all addresses on the cycle line, verify the G17 plane and the G90/G91 state, verify Q is positive/reasonable, cancel the cycle with G80, and do the first trial with the Z axis up and in single block.
Rigid Tapping Alarm
Causes: no rigid tapping option, no spindle encoder signal, wrong orient/one-turn signal, S and F not matching the thread pitch, spindle speed too high, wrong synchronization parameters, spindle drive not ready. Solution: check the G84/G74 line, compute F with the spindle-speed × pitch formula, check the spindle runs in the normal direction, review the encoder and drive alarm, use the builder’s rigid tapping M code if any; rigid tapping parameters are not changed at random.
Overtravel Alarm
Causes: the programmed position outside the stroke limit, wrong G54–G59, wrong tool length compensation, a shifted reference point, wrong 0700–0707 stroke parameters, entering the limit zone with a manual move. Solution: identify the alarmed axis/direction, compare the program/machine/part coordinate, check the H offset and G54–G59, move the axis out of the limit in a safe direction manually; check the stroke parameter only if the correct machine values are known, and never bridge a limit switch.
Reference Point Alarm
Causes: wrong reference return direction, corrupted dogless reference parameter, faulty limit/deceleration switch, no pulse coder signal, dead encoder battery, lost absolute position, changed servo parameter. Solution: check the reference direction and axis motion, monitor the limit/reference switch signals from the diagnostic screen, check the encoder battery alarm, compare with the parameter backup; if the reference is to be re-established, apply the builder’s procedure.
Servo Alarm
Causes: overload, motor/cable fault, encoder feedback error, axis jam, no servo-ready signal, acceleration time too short, rapid rate too high, wrong CMR/DMR, mechanical brake not releasing. Solution: note the alarm code on the servo drive, check for a mechanical axis jam, inspect the motor/encoder cables, compare the rapid and time-constant parameters with the backup; remove the root cause before resetting the alarm, and do not make unauthorized interventions in the high-voltage area. The connection manual covers the servo amplifier, pulse coder, spindle and I/O connections in separate sections; so in a servo/encoder alarm, not only the program but also the cable and feedback system must be inspected.
Spindle Alarm
Causes: spindle drive not ready, motor overloaded, no encoder signal, orient not completing, speed command out of limit, belt/mechanical drive jammed, cooling fan faulty, wrong spindle parameter unit. Solution: read the spindle drive alarm indicator, check the commanded S value, review the 0062 SPMRPM setting and related speed parameters, check the orient sensor and motor fan; if it occurs during G84/G74, also check the encoder synchronization.
RS-232 Communication Alarm
Causes: baud rate mismatch, stop bit/parity difference, ISO/ASCII mismatch, wrong cable pin connection, no handshake signal, wrong I/O channel selection. Related parameters: 0002/0012/0050 or 0051 bit 0 (STP2) stop bit; 0051 bit 1 (PARTY) parity; 0055 bit 0 (ASCII) data code; 0055 bit 2 (PROTCA) protocol A/B; 0055 bit 3 (RS42) RS-232C or RS-422; 0250/0251/0552/0553 baud rate; 0000 (I/O) input/output channel. The remote buffer document explains RS-232C and RS-422 connections and protocol A, extended protocol A and protocol B options for Series 0/00.
Battery Alarm
If the battery is fully depleted, programs, parameters, offsets, macro variables and absolute position information can be lost. When the alarm appears, take a backup; battery replacement is done per the machine power and emergency-stop procedure; the electrical cabinet is opened only by trained personnel; the absolute encoder battery is not confused with the CNC memory battery. The operator manual states that if the battery is not replaced soon after a low-battery alarm, CNC memory or absolute position information can be lost.
Practical check order for FANUC 0-MC
- Note the alarm number and message exactly.
- Record the program line where the alarm occurred.
- Check the active G codes; the G90/G91, G17/G18/G19 and G98/G99 state.
- Check the G54–G59 work zero, and the H and D offsets.
- If no program error is found, compare the relevant parameter with the backup.
- If there is a servo/spindle alarm, also read the code on the drive.
- Consult the machine builder’s manual before changing a parameter.
- After a change, test the program in single block, low rapid override and a safe Z height.
Conclusion
On the FANUC 0-MC control, G codes and parameters are not independent of each other: G40/G41/G42 behavior can be affected by 0062 G40V; G28 and G30 moves depend on the reference parameters; G54–G59 values are stored in the 0755–0778 range; safe use of the G73/G83 cycles depends on G90/G91, G98/G99 and the Z-R-Q values; the G74/G84 cycles are related to the spindle encoder and rigid tapping settings; G00/G01 moves are affected by the axis speed/acceleration parameters; the unit of the spindle speed parameters can depend on the 0062 SPMRPM setting. Therefore, in alarm solving, instead of changing a parameter directly, first check the program, offsets, coordinate system and the physical state of the machine.
⚠️ Mentor CNC disclaimer: This content is prepared for training and technical information purposes. Wrong changes to CNC and PMC parameters can cause axis directions to change, reference points to be lost, the tool-change position to be corrupted, servo/spindle alarms, tool breakage and machine collision. Before changing a parameter, the programs, parameters, offsets and macro variables must be backed up. Work on servo, spindle, encoder, electrical cabinet, battery and high-voltage circuits must be done only by trained and authorized maintenance personnel. Even with the same control unit on every CNC machine, the builder’s PMC ladder program, M codes, tool-change system, spindle system and safety circuits can differ. The machine builder’s manual, wiring diagram and original parameter list always take priority. Mentor CNC cannot be held responsible for any damage resulting from wrong parameter entry, unauthorized intervention or faulty application.