Troubleshooting Z Axis Alarm 39-89 on Mitsubishi 700 Series CNC

Ryan Tanaka14 min read
MitsubishiMotion ControlTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview of Alarm 39-89 on the Mitsubishi 700/70 Series

Alarm 39-89 is a servo-related fault raised by the Mitsubishi 700/70 series CNC controller (M70, M700, M70V, and M700V families) when the Z axis following error exceeds the permitted window during positioning, alignment, or reference-return moves. The alarm text reads, in the operator's panel and alarm history, as "Z axis following error. Balance value outside window." The controller monitors the position-command versus position-feedback difference on every servo cycle; when the absolute value of that difference passes a parameter-defined threshold, the drive signals the controller, and the controller raises the corresponding Z axis alarm code.

The Mitsubishi alarm-numbering scheme uses the format aa-bb, where aa identifies the axis slot / axis number (39 = Z axis in this machine's mapping) and bb identifies the error sub-class. 89 specifically tags the "balance value outside window" check that runs during closed-loop control. The alarm is documented in the 700/70 Series Handbook — Operation Alarms (M) section, which lists every M-code alarm and its remedies. Refer to that manual for the official cross-reference of error code 39-89 against the parameter responsible for the window width.

On machines that pair Mitsubishi CNC controllers with Siemens 1FK / 1FT servo motors and SINAMICS S120 or SIMODRIVE 611 drive modules, alarm 39-89 is generated when the Siemens drive reports an excessive contour deviation or position error to the Mitsubishi controller over the fieldbus / pulse interface. Diagnosing the fault therefore requires checking both the Mitsubishi parameter set and the Siemens drive side.

Critical safety note: Before opening any electrical cabinet or touching motor/encoder connections, lock out and tag out the main disconnect, wait the manufacturer-specified DC-bus discharge time (typically 5 minutes on SINAMICS S120 modules and 5–10 minutes on SIMODRIVE 611), and verify zero potential at the drive terminals with a calibrated meter. Encoder cables carry low-voltage signals; hot-plugging them with the drive energized can destroy the encoder and the drive's sensor module.

Root Cause Analysis

The error "balance value outside window" is the controller's way of stating that the Z axis was asked to move to a commanded position but the actual position read back from the feedback device did not track the command within the parameter-defined tolerance. The five root-cause families that produce this signature are listed below in order of probability for a machine that was previously running correctly and then began to fault.

# Root-Cause Family Mechanism Field Indicator
1 Encoder feedback degradation Damaged encoder, contamination, or aged LED/photodiode produces noisy or missing sin/cos pulses. The drive reads an incorrect rotor angle, the current controller is destabilized, and following error rises above the window. Rough / cogging motion during alignment, abnormal following error on the axis-tuning page, alarm appears both at rapid and feed moves.
2 Encoder cable integrity Broken shield drain wire, kinked cable, intermittent conductor, or moisture ingress couples noise into the low-level 1 Vpp signals. The drive sees sporadic glitches and the controller's position-feedback value steps or freezes. Alarm clears temporarily after re-seating the connector; appears more often on long flexed cable runs; correlates with axis direction of travel.
3 Mechanical binding / coupling slip Coupling rubber fatigued (common on Z after 5+ years), pre-load on the ballscrew nut has changed, or a brake is dragging. The motor turns but the load does not follow cleanly, so the position loop is forced open and following error spikes. Audible roughness during the alignment move, smooth motion when the motor is decoupled, handwheel shows stiffness in one direction.
4 Siemens drive power section IGBT module degradation, DC-bus capacitor ESR rise, or a current-sensor offset on the Z axis module produces a torque ripple that the position controller cannot fully reject. Alarm more frequent under heavy load, alarm on rapid traverses, current monitor shows imbalance between phases.
5 Brake or counterbalance hydraulic issue On machines with a hydraulic counterbalance, pressure loss or a sticking counterbalance valve produces a load oscillation that the position loop cannot damp. Alarm only on upward moves, handwheel does not stay put when released, counterbalance gauge reads low.

In the field case that motivated this article, the operator eliminated the mechanical side by removing the Z motor, jogging the ballscrew by hand, confirming smooth motion, and then refitting the motor — after which the alarm disappeared for the immediate cycle. That signature is classic for an intermittent encoder cable or encoder issue: removing and refitting the motor flexed the cable and reseated the connector, temporarily restoring the connection. The alarm reappears later because the cable or encoder has degraded to the point that any small disturbance trips the window check.

Pre-Diagnostic Parameter Check

Before any hands-on work, confirm that no one has modified the servo parameters in the Mitsubishi controller. A changed "following error window" parameter will produce exactly this alarm on a previously healthy machine.

  1. On the Mitsubishi M700/M70 HMI, navigate to Maintenance → Servo Parameter and dump the Z axis parameter set to a USB card.
  2. Compare the active parameter set against the last known-good backup from the machine commissioning record.
  3. Specifically inspect:
    • SV014 — Z axis position loop gain (Kp)
    • SV015 — Z axis integral gain (or the "balance" term referenced in the alarm text)
    • SV016 — Z axis following error limit (the "window" referenced in the alarm)
    • SV017 — Z axis in-position width
  4. If any parameter is out of range, restore from the backup and re-attempt a reference return before proceeding to electrical diagnostics.

Mechanical Inspection Procedure

  1. Release the Z axis brake (per OEM procedure; some machines require a dedicated PLC bit) and jog the axis through its full travel with the MPG at 1 mm/rev. Listen and feel for any grinding, binding, or backlash inconsistency.
  2. With the brake released and the motor uncoupled (remove the rubber coupling spider), turn the ballscrew by hand. The screw should rotate freely through the full travel with consistent torque. If you feel a notch or a stiff spot, the ballscrew nut is suspect.
  3. Inspect the Z axis rubber coupling. The original couplings used on these machines have a typical service life of 3–5 years in three-shift production. Look for cracks, hardening, or missing teeth. A 1-year-old swap is still within service life, but verify the spider is correctly seated and the clamp screws are torqued to spec.
  4. Check the counterbalance (if equipped). Measure the hydraulic pressure at the gauge and compare to the value on the machine data plate. A 5% deviation is enough to change the load profile seen by the Z motor.
  5. Re-couple the motor and re-run the reference return. If the alarm is now consistent, the mechanical side is healthy and the fault is in the feedback chain.

Encoder Cable Diagnostics

The encoder cable on Siemens 1FK / 1FT motors is a shielded twisted-pair cable carrying 1 Vpp sin/cos signals plus power and a sense line. Shield termination is critical: the OEM typically grounds the shield at one end only (drive end), with the motor end left floating to avoid ground loops. If a previous repair grounded the shield at both ends, or if the drain wire has broken, noise injection can produce exactly the intermittent behavior seen in the field case.

Test Procedure Pass Criterion
Visual inspection Remove the cable from the drag chain, lay it flat, inspect for kinks, abrasion, jacket cracking, and proper strain relief at both connector ends. No kinks tighter than 8× cable diameter, no exposed shield braid, connectors locked.
Continuity, all pins With cable disconnected at both ends, ohmmeter each pin to its counterpart at the other end. Each pin < 1 Ω. A reading in the kΩ range indicates a broken conductor inside the jacket.
Insulation Megger at 500 V DC between each conductor and the shield, and between adjacent conductors. > 10 MΩ. Lower values indicate moisture or insulation damage.
Shield continuity Ohmmeter from connector shell to drive-end ground lug. < 1 Ω. Open circuit = broken drain wire.
Oscilloscope (best) With the drive powered and motor stationary, probe the sin and cos lines at the drive-side connector. Use a scope with differential probes rated for 1 Vpp signals. Two clean sinusoids 90° apart, peak-to-peak amplitude within ±10% of nominal (typically 1.0 Vpp). Any clipping, ripple, or noise > 50 mV p-p = replace cable.
Shielding caveat: Different machine builders specify shield-grounding differently — some insist on one end, some on both, and the manufacturer publications often contradict each other. Follow the specific machine builder's wiring diagram for your serial number. Generic "ground both ends" advice can introduce a 50/60 Hz ground-loop current that overwhelms the 1 Vpp encoder signal.

Encoder Testing

If the cable passes all four cable tests, the encoder itself is the next suspect. A Siemens-authorized motor shop can:

  1. Static-test the encoder with a Siemens SST2 / DST2 test stand or equivalent — measures the sin/cos amplitudes, the index pulse width, and the resolver/excitation (for EnDat or DRIVE-CLiQ encoders, the protocol state).
  2. Time the encoder to the motor (the absolute encoder zero must be aligned to the motor's pole-zero angle; an untimed replacement on a permanent-magnet motor will cause the axis to run away at first enablement).
  3. Test the windings with a megger (≥ 100 MΩ at 500 V) and a winding-resistance measurement (compare phase-to-phase; imbalance > 5% = suspect).

Request that the shop perform the encoder test before any repair work, so you are not charged for a replacement that did not fix the problem. A working encoder on a worn cable is the typical result.

Siemens Drive Power-Section Diagnostics

If the encoder and cable test clean, the next step is to rule out the Siemens drive power section. On machines that use a mix of single-axis and dual-axis SIMODRIVE 611 or SINAMICS S120 modules, you can:

  1. Power down, lock out, and wait the DC-bus discharge time.
  2. Ohm across each phase output (U, V, W) to the DC-bus positive and negative rails with a digital multimeter. A healthy IGBT module shows a diode drop (~0.3–0.7 V) in one direction and open in the other. A short in both directions = blown IGBT.
  3. Compare the readings of the Z axis module to a known-good axis module on the same bus. Significant deviation = suspect module.
  4. If the power section is electrically clean, power back up and read the drive's fault buffer (on SIMODRIVE 611, parameter r947 family; on SINAMICS S120, the active fault/alarm buffer in STARTER or Startdrive). Look for overcurrent, encoder-signal-level, or resolver-fault codes that correlate with the timing of the Mitsubishi alarm 39-89.

If the drive module is confirmed faulty, replace it as a complete unit. On older SIMODRIVE 611 platforms the module may be obsolete; in that case the OEM typically requires updating to a current SINAMICS S120 module and matching firmware, which is also a good time to upgrade the controller firmware on the Mitsubishi side.

Scale vs. Encoder Feedback

Some Mitsubishi 700/70 series VMCs are delivered with a linear scale on the Z axis in addition to the motor encoder. Alarm 39-89 can be raised by either feedback path depending on the parameter SV017 / SV018 family that selects the position-feedback source. Verify the alarm is generated from the encoder path:

  1. Disconnect the scale head at the readhead connector (with the drive disabled).
  2. Disable scale feedback in the servo parameters and re-enable encoder feedback as the master.
  3. Re-attempt a reference return and an alignment move. If the alarm clears, the scale is the contributor and should be inspected (readhead mounting, scale tape cleanliness, air-purge pressure).

Solution Implementation

  1. Replace the encoder cable with an OEM-specified Siemens 6FX series pre-assembled cable, length-matched to the original routing. Re-route exactly as the OEM drawings specify — respect the minimum bend radius and the segregation from the power cable.
  2. Re-terminate both ends to the OEM pinout. Confirm shield is grounded on the side specified by the machine builder.
  3. Verify encoder alignment. On a permanent-magnet servo motor the encoder must be timed to the motor; a motor shop will use a Siemens test stand to set the commutation offset to within ±5 electrical minutes. The Mitsubishi drive reads this offset through the encoder interface and the parameter SV020 / equivalent on the Siemens drive will be populated from the encoder's EnDat memory on first commissioning.
  4. Run the drive's automatic identification / commutation-finding routine on the Siemens side (p341 / p343 on SIMODRIVE 611; p3410 on SINAMICS S120 with the relevant drive commissioning tool).
  5. Restore the Mitsubishi servo parameters from the known-good backup if any were changed during the diagnostic phase.
  6. Run a full reference return on the Z axis and verify the reference-mark position against the value on the machine data plate.
  7. Run a part program that exercises the full Z travel (rapid, jog, MPG) for a minimum of 30 minutes under load. Monitor the following error in the axis-tuning page continuously; a healthy axis shows following error < 50 µm in steady state and < 200 µm during rapid.

Verification and Acceptance Test

Before returning the machine to production, the following acceptance criteria must be met:

Test Method Pass Criterion
Alarm history Clear the alarm buffer, run a full shift of production with a representative mix of programs. No 39-89 entries in the shift log.
Following error, steady state Read on the Mitsubishi axis-tuning page with the axis stationary at mid-travel. |err| < 0.05 mm (typical for a Z axis with a 12 mm/rev screw and 5 mm pitch).
Following error, rapid traverse Read during Z down at 100% rapid feedrate. Peak |err| < 0.5 mm, settles to < 0.05 mm within 200 ms after stop.
Roundness / verticality Run the OEM acceptance part or a Renishaw ball-bar / laser test on the Z axis. Within OEM-published tolerance band for a healthy machine (typically ±0.005 mm on a VMC).
Tool-change position Verify the ATC Z-pickup height against the value on the machine data plate and the part-zero offset. Within ±0.02 mm of the original. If the value has shifted, use the parameter the OEM provides for Z-height adjustment, not the part-work offset, so that part zero remains correct.

Preventive Maintenance Recommendations

  • Encoder cable service life: 5 years in three-shift production, 7 years in single-shift. Replace on a schedule rather than waiting for a fault.
  • Drag-chain inspection: At every quarterly PM, check the cable jacket for abrasion and the connector strain reliefs for tightness.
  • Shield integrity: Verify shield continuity at every annual PM with a low-voltage ohmmeter.
  • Back up servo parameters to the USB card at every parameter change and after every PM. A baseline dump is the fastest way to recover from a parameter-related 39-89 event.
  • Log the alarm buffer to the USB card at every shift change. A 39-89 that appears once a week and then clears is the early-warning signature of a degrading encoder cable — investigate before it becomes a hard fault.
  • Keep a spare encoder cable on the shelf, pre-made to the OEM length. Downtime on a VMC is typically $2,000–$10,000 per hour; a $200 cable is cheap insurance.

Document References

For the official alarm-code definition and parameter list referenced throughout this article, see the Mitsubishi Electric 700/70 Series Handbook — "Operation Alarms (M)" section, document reference IB1500087-A. For Siemens-side parameter cross-references and encoder commissioning, refer to the SIMODRIVE 611 or SINAMICS S120 commissioning manual on the Siemens Industry Online Support portal. Always cross-check the parameter numbers against the firmware version installed on your specific drive — drive firmware revisions move parameters between index pages.

What does Mitsubishi 700 series alarm 39-89 mean?

Alarm 39-89 is a Z axis following-error fault: the controller detected that the actual position feedback differed from the commanded position by more than the parameter-defined window ("balance value outside window"). See the 700/70 Series Handbook, Operation Alarms (M) section for the official definition and related parameters.

What is the most common cause of alarm 39-89 on machines that use Siemens servo motors?

An intermittent encoder or encoder cable. The motor turning without a clean sin/cos or EnDat signal back to the Siemens SIMODRIVE 611 / SINAMICS S120 drive forces the position loop open and the following error exceeds the window. A damaged cable shield, kinked cable, or contaminated encoder is the typical field finding.

Why did my alarm 39-89 clear after I removed and refitted the Z motor?

Removing and refitting the motor flexes the encoder cable and reseats the connector at both the motor and the drive end. A marginal cable or connector restores a clean contact for a short period. Treat the disappearance as a temporary reprieve — replace the encoder cable as the corrective action.

How do I know if the fault is on the encoder or on the Siemens drive power section?

Test the encoder cable first (continuity, megger, shield integrity, oscilloscope on the sin/cos lines). If the cable is clean, ohm out the drive's IGBT power section (phase-to-DC-bus) and compare to a known-good axis module. Fault codes in the Siemens drive's alarm buffer (r947 on SIMODRIVE 611) will also point to the side of the fault.

Can alarm 39-89 be caused by a scale if the machine has linear scales on Z?

Yes. The Mitsubishi 700/70 series can use either the motor encoder or the linear scale as the position-feedback source depending on the servo parameters. Disconnect the scale and re-test with encoder-only feedback to confirm which path is raising the alarm. A contaminated or misaligned scale readhead produces the same window-out-of-range signature.

Back to blog