Mitsubishi M700 Alarms & Parameters
Alarm Classes — Decoding the Prefix
Every Mitsubishi alarm starts with a class code that tells you what kind of problem you have before you read another word. Most classes add a four-digit error number after the message text (e.g., M01 Operation error 0004) — that number is what you look up.
| Prefix | Class | What it means |
|---|---|---|
| M01 | Operation errors | The machine is refusing to move or start — interlocks, overrides at zero, stroke ends, mode switches. Almost never a program bug; usually a switch, a signal, or the PLC sequence. |
| T01 / T02 / T03 | Stop codes | Not faults — explanations. T01 (01xx) = why cycle start won't go, T02 (02xx) = why feed hold happened, T03 (03xx) = why the block stopped. |
| S01 / S03 / S04 | Servo/spindle alarms | Drive-level faults (overcurrent, overheat, encoder trouble). The prefix tells you how to reset it — see the reset table below. |
| S02 / S51 | Initial parameter errors / parameter errors | A servo or spindle parameter is out of range or inconsistent. |
| S52 / S53 | Servo / safety-function warnings | Warnings — the axis keeps running, but something needs attention (e.g., battery, overload trend). |
| Y | MCP alarms | NC-to-drive communication and amplifier detection problems (e.g., Y02 System alm: Process time over). |
| Z | System alarms | Control-unit level: Z52 battery fault, Z53 CNC overheat, Z55 RIO communication stop, Z59 accel/decel time constant too large. |
| Z70 / Z71 | Absolute position detection | Lost or corrupted zero-point data, encoder backup voltage drop. Usually means a zero-point re-initialization is in your future. |
| Z8* | Distance-coded reference scale errors | Scale feedback problems on distance-coded reference systems. |
| EMG | Emergency stop | E-stop chain is open — the message names the source. |
| L | Computer link errors | Host communication (drip-feed / computer link B) faults. |
| U | User PLC alarms | Raised by the machine builder's ladder — check the builder's manual, not Mitsubishi's. |
| N | Network service errors | Network/Ethernet service problems. |
| P | Program errors | Your G-code. The fix is almost always "correct the program" — the P-number tells you what to correct. |
Servo alarm reset method is encoded in the prefix:
| Prefix | Type | How to reset (after fixing the cause) |
|---|---|---|
| S01 | PR | Turn NC power OFF and back ON |
| S03 | NR | Press the NC RESET key |
| S04 | AR | Turn the drive unit power OFF and back ON |
Common Alarms
The alarms below cover most of what actually shows up on the shop floor. Causes and remedies are condensed from the M700BM/M700UM Alarm/Parameter Manual.
| Alarm | Name | Cause | Fix |
|---|---|---|---|
| Operation errors (M01) — machine won't move | |||
| M01 0004 | External interlock axis exists | External interlock input signal is OFF for an axis | Release the interlock; check the sequence and for broken wires in the interlock signal line |
| M01 0005 | Internal interlock axis exists | Servo OFF active, axis removed, or manual/auto simultaneous axis commanded from auto | Release servo OFF; perform the correct operation for the removed axis |
| M01 0006 | H/W stroke end axis exists | An axis is sitting on a hard overtravel limit switch | Jog off the limit manually; check the limit switch and wiring |
| M01 0007 | S/W stroke end axis exists | Stored stroke limit (soft limit I, II, IIB or IB) reached | Move off manually; check soft-limit parameters (#2013/#2014) |
| M01 0101 | No operation mode | No mode selected — mode-select switch or signal line problem | Check the MODE SELECT switch, wiring, and sequence program |
| M01 0102 | Cutting override zero | Feed override dial on the panel is at 0% | Turn the override up; if it isn't at 0, check the signal line for a short |
| M01 0105 | Spindle stop | Spindle stopped during synchronous feed / thread cutting | Start the spindle; check the spindle encoder cable, connectors and pulse |
| Stop codes (T) — why it won't start / why it stopped | |||
| T01 0101 | Axis in motion | Cycle start pressed while an axis is still moving | Wait for all axes to stop, then start again |
| Program errors (P) — fix the G-code | |||
| P33 | Format error | Command format in the block is not correct | Correct the program block |
| P34 | Illegal G code | G code not in the specifications, or illegal G during coordinate rotation | Correct the G code address; check the option spec |
| P62 | No F command | No feedrate commanded — power-on default modal is G01, so a bare move alarms | Add an F command (also required with thread lead commands) |
| P70 | Arc end point deviation large | Start/end points and center don't agree on the arc | Correct start/end/center/R values and their signs; check for a scaling-valid axis |
| P71 | Arc center error | Center can't be computed in R-specified circular interpolation | Correct the address values in the block |
| P132 | Spindle rotation speed S=0 | No spindle speed command issued | Add the S command |
| P152 | No intersection | Cutter comp (G41/G42) can't find an intersection point after skipping a block | Correct the toolpath around the comp move |
| P153 | Compensation interference | Tool radius / nose R comp would gouge (interference detected) | Correct the program — larger geometry or smaller tool |
| P181 | No spindle command (tap cycle) | No S commanded in synchronous tapping | Command S with the tap; if #8125=1 it must be in the same block |
| P230 | Subprogram nesting over | More than 8 nested subprogram calls | Flatten the call structure to 8 levels or fewer |
| P232 | No program No. | Called program not found (or IC-card file name doesn't match O number) | Load the program; check subprogram storage-destination parameters and that the device is mounted |
| P277 | Macro alarm message | A macro executed #3000 — this is your macro talking | Read the operator message on the diagnosis screen; see the builder's manual for the macro package |
| P283 | Divided by zero | Denominator of a macro division is zero | Guard the divisor in the expression |
| P430 | R-pnt return incomplete | Axis commanded before reference position return was done | Do a manual reference return first |
| P460 | Tape I/O error | Error in the tape reader / I/O device during input | Check device power and cables; correct the I/O device parameters |
| Servo/spindle alarms (S01/S03/S04) — drive faults, by error number | |||
| 0025 | Absolute position data lost | Absolute position data lost in the detector (battery/encoder) | Restore backup power, then re-initialize the zero point |
| 0032 | Power module overcurrent | Drive power module detected overcurrent | Check motor power cables and drive; axis dynamic-stops |
| 0033 | Overvoltage | Main-circuit bus voltage exceeded allowable value | Check regen circuit and incoming power |
| 0046 | Motor overheat | Motor or motor-side detector overheat (or thermistor circuit open/shorted) | Let it cool; check the duty cycle and thermistor wiring |
| 0050 | Overload 1 | Overload detection reached 100% — motor or drive overloaded | Reduce the load/duty; check for mechanical binding |
| 0052 | Excessive error 1 | Position tracking error during servo ON was excessive | Check for a crash or binding; verify servo tuning |
| 0058 / 0059 | Collision detection (G0 / G1) | Disturbance torque exceeded the allowable value in rapid / cutting feed | Find what it hit; axis executes a maximum-capacity deceleration stop |
| System alarms (Z) | |||
| Z52 000x | Battery fault | NC control unit battery voltage dropped (0001 warning, 0003 alarm) | Replace the NC battery — with power ON, and back up programs/parameters first |
| Z70 0002 | Absolute position lost | Absolute position basic point data in the NC damaged | Re-initialize the zero point; reload saved abs-position parameter data |
Parameter Organization
Mitsubishi parameters are all # numbers grouped by function into blocks that match the setup screens. Parameters marked (PR) in the manual only take effect after a power cycle. Big picture: #1000s are the control, #2000s are the axes, #8000s are yours.
| Range | Group | Landmarks |
|---|---|---|
| #1000s | Base specifications | #1001 system validation, #1017 rotary axis, #1041 inch/metric, #1121/#1122 edit & display lock, #1128 variable clear, #1195–#1196 macro call enables |
| #2001–#2100s | Axis specifications (per axis) | #2001 rapid rate, #2007 G1 time constant, #2011/#2012 backlash, #2013/#2014 soft limits, #2028 grid mask |
| #2201+ | Servo (SV001…) | #2201 gear ratio, #2205 speed loop gain, #2218 ball screw pitch, #2225 motor/detector type |
| #3001+ | Spindle (NC side) | #3001 limit rotation speed for gear 00 (slimt) |
| #4000+ | Machine error compensation | #4000 increment method, #4001+10(n-1) basic axis per comp set |
| #6401–#6496 | PLC constants: bit selection | Bit parameters mapped to ladder R registers (R7800–R7847); #6449+ often builder-fixed |
| #7001–#7300s | Macro list (user macro calls) | #7001+ M-code calls, #7201–#7293 G-code calls G[01]–G[10], #7302 S call, #7312 T call |
| #7501+ | Position switches | #7501 PSW1 axis name, #7502 dog positions |
| #8000–#8999 | Machining parameters (user level) | #8000/#8001 parts counter, #8008 corner decel angle, #8051+ G71 cycle, #8125 G84 S-check, #8211 mirror image, #8301+ chuck barrier |
| #9001+ | I/O parameters | #9001–#9004 data in/out ports and device numbers, #9010 PLC I/O device |
| #13001+ | Spindle drive (SP001…) | #13001 position loop gain (non-interpolation mode) |
| #16000–#17455 | PLC timers & counters | #16000–#16703 timers T0–T703, #17200–#17455 counters C000–C255 |
Parameters Worth Knowing
A short list of the parameters that answer the questions machinists actually ask — "why does it wake up in inches," "why can't I see O9000," "where's the soft limit." All verified against the M700BM/M700UM manual.
| Parameter | Name | What it does |
|---|---|---|
| Base specifications | ||
| #1017 (PR) | rot | Axis is rotary (1) or linear (0); rotary rolls over at 360° |
| #1041 (PR) | I_inch | Unit system at power-ON/reset: 0 = metric, 1 = inch |
| #1078 | Decpt2 | Commands without a decimal point: 0 = least input increment, 1 = whole 1 mm / 1 inch units |
| #1121 | edlk_c | Edit lock C: 1 = programs O9000–O9999 cannot be opened or edited |
| #1122 (PR) | pglk_c | Display/search lock for O9000–O9999; setting 1 or 2 also forces #1121 on at power-up |
| #1128 | RstVCI | 1 = clear common variables #100–#149 (or #100–#199) on reset |
| #1195 / #1196 | Mmac / Smac | Enable user-macro call from an M command / S command (code tables live at #7001+) |
| Axis & servo | ||
| #2001 | rapid | Rapid traverse rate per axis (mm/min) |
| #2011 / #2012 | G0back / G1back | Backlash compensation on direction reversal in rapid / cutting feed |
| #2013 / #2014 | OT- / OT+ | Soft limit I in machine coordinates; set both to the same value to disable; #8204/#8205 narrow it at user level |
| #2205 | SV005 VGN1 | Servo speed loop gain — higher is tighter until it vibrates; back off 20–30% from the vibration point |
| Machining & macro | ||
| #7001+ | M[01] Code … | Macro-call code tables: which M/G/S/T codes call which macro programs (needs #1195–#1196 style enables) |
| #8000 / #8001 | CNT TYPE / WRK COUNT M | Parts counter: which M code (and/or M02/M30) counts a finished workpiece |
| #8125 | Check Scode in G84 | Synchronous tap with no S in the block: 0 = use modal S, 1 = alarm P181 |
Looking Up an Alarm
Alarms display as class + message + a four-digit error number (e.g., M01 Operation error 0102). The manual lists each class in ascending order of that number, so the number — not the message text — is your lookup key. A quick triage routine:
| Step | Do this |
|---|---|
| 1 | Read the class prefix first — M01 means look at switches/interlocks, P means look at the program, S means look at the drive, Z means look at the control unit. |
| 2 | Check the diagnosis screen for operator messages — a P277 is your own macro's #3000 alarm text, not a control fault. |
| 3 | For servo alarms, note the prefix before resetting: S03 clears with the RESET key, S01 needs an NC power cycle, S04 needs a drive power cycle. Fine detail on servo error numbers lives in the drive unit (MDS series) manual, not the NC manual. |
| 4 | No screen nearby? The 7-segment LED on the operation board I/O flashes A.L for an alarm (S.T for a stop code), then shows the details in three phases, most-critical alarm per part system. |
| 5 | If the remedy says "correct the sequence program," you're done — that's the machine tool builder's ladder, and the builder's manual takes priority over Mitsubishi's. |
Worked Example: Raising and Reacting to Alarms from a Macro
The alarm classes above aren't just things that happen to you — a macro can raise them on purpose. Writing a number to #3000 stops the program with your own message, and the control files it under class P as P277 Macro alarm message (see the Program errors section of the Common Alarms table). Writing to #3006 is gentler: a planned single stop with a message that Cycle Start clears — no reset, no P alarm. The macro below is a tolerance gate you'd drop in after a probing routine: in tolerance it returns silently, near the limit it does a #3006 planned stop so the operator can react, and out of tolerance it raises a #3000 alarm so the cycle cannot continue. When it fires, the operator's lookup path is exactly the triage routine below: the P277 text appears on the diagnosis screen, not in the Mitsubishi alarm manual.
(O8200 - TOLERANCE GATE)
(CALL: G65 P8200 A<NOMINAL> B<TOLERANCE> C<WARNING BAND>)
(EXPECTS THE MEASURED VALUE IN COMMON VARIABLE #501,)
(LEFT THERE BY THE PROBING ROUTINE THAT RAN BEFORE THIS CALL.)
(NOTE: #501 SURVIVES RESET UNLESS PARAMETER #1128 RstVCI IS SET)
(TO CLEAR COMMON VARIABLES - SEE PARAMETERS WORTH KNOWING ABOVE.)
O8200
(GUARD THE INPUTS FIRST - A MISSING ARGUMENT SHOULD BE ITS OWN ALARM,)
(NOT A CONFUSING DOWNSTREAM P283 DIVIDED-BY-ZERO OR A BAD COMPARE.)
IF [#1 EQ #0] GOTO 900 ; (A = NOMINAL, REQUIRED)
IF [#2 EQ #0] GOTO 900 ; (B = TOLERANCE, REQUIRED)
IF [#3 NE #0] GOTO 10 ; (C = WARNING BAND, OPTIONAL)
#3 = #2 * 0.8 ; (DEFAULT WARNING BAND: 80% OF B)
N10 #30 = ABS[#501 - #1] ; (DEVIATION OF MEASURED FROM NOMINAL)
(DECISION LADDER - WORST CASE FIRST)
IF [#30 GT #2] GOTO 910 ; (OUT OF TOLERANCE -> HARD ALARM)
IF [#30 GT #3] GOTO 800 ; (IN WARNING BAND -> PLANNED STOP)
M99 ; (GOOD PART - RETURN QUIETLY)
N800 (WARNING BAND: STOP AND TELL THE OPERATOR, BUT LET CYCLE START RESUME)
#3006 = 1 (SIZE NEAR TOL - CHECK INSERT) ;
M99 ; (OPERATOR PRESSED CYCLE START - CONTINUE)
N900 (ARGUMENT MISSING: RAISE A MACRO ALARM - DISPLAYS AS CLASS P, P277)
#3000 = 101 (NO A OR B ARGUMENT) ; (MESSAGE TEXT SHOWS ON DIAGNOSIS SCREEN)
N910 (OUT OF TOLERANCE: RAISE A MACRO ALARM - CYCLE CANNOT CONTINUE)
(THIS IS *YOUR* ALARM, NOT THE CONTROL'S: THE SCREEN SHOWS P277 PLUS)
(THE TEXT IN PARENTHESES. A RESET CLEARS IT - UNLIKE AN S01 SERVO)
(ALARM, WHICH NEEDS AN NC POWER CYCLE PER THE RESET TABLE ABOVE.)
#3000 = 102 (SIZE OUT OF TOLERANCE) ;
Two habits worth copying: pick your own #3000 numbering scheme (here 101/102) and keep a crib sheet, because the control only shows the number and your 31-character message — the P277 entry in the manual just says "a macro raised this." And use #3006 for anything an operator is allowed to wave through; reserving #3000 for genuine scrap conditions keeps the alarm history meaningful.
References
- Mitsubishi Electric, M700BM/M700UM Series Alarm/Parameter Manual, Mitsubishi Electric Corporation.
- Mitsubishi Electric, MDS-D2/DH2 Series Instruction Manual, IB-1501127 (servo alarm detail).
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch