Skip to main content
CNC.wikiCNC.wiki

Fanuc PS0090 and DS0300 Reference Return Alarms Troubleshooting

Resolve Fanuc PS0090 and DS0300 reference return alarms. Step-by-step pulse coder diagnostics, 128-pulse error tuning, Parameter 1815 APZ reset, and G28 homing.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

Introduction to Fanuc Reference Return Alarms

When a CNC operator attempts to initiate an automatic cycle after a tool is damaged or coordinate tracking is lost, a misaligned reference return risks driving a heavy tool turret or magazine directly into a workpiece, fixture, or vise jaw. If the zero-point return sequence is commanded too close to the reference position or at an extremely low jog feedrate, the Fanuc servo amplifier fails to register the mandatory 128 pulses of positional deviation required to validate the encoder's one-rotation signal. Instead of completing the home return, the controller instantly triggers a PS0090 Reference Return Incomplete alarm, bringing all axis motion to a grinding halt. If the backup battery dies, the absolute position detector zero position is lost and the APZ bit drops to 0, locking the system in a persistent DS0300 APC Alarm state that completely blocks automatic operation. Resolving these zero-return errors requires a systematic approach to parameter verification, manual motor rotation, and precise control resetting to prevent catastrophic mechanical crashes and costly production downtime.

Technical Summary

Technical AttributeSpecification / Value
Command CodesG27, G28, G29, G30, G30.1
Modal GroupGroup 00 (Non-modal)
Applicable BrandFanuc
Critical ParametersParameter No. 1815 (APC, APZ, RVS), Parameter No. 1869, Parameter No. 1005 (ZRNx), Parameter No. 1012 (IDGx)
Diagnostics MonitorDGN 300 / DGN 800–807 (Position error ≥128 pulses required)
Primary ConstraintDecel dog zero return requires ≥128 pulses of positional deviation to validate the one-rotation signal; clearing DS0300 requires manual motor rotation of ≥1 turn followed by a hard power reboot of CNC and servo amplifier.

Quick Read: High-Priority Operational Constraints

  • Establish Zero Return Margin: Always ensure the starting point of the zero return sequence is positioned far enough away from the reference point so the axis can accelerate sufficiently.
  • Verify Pulse Threshold: Maintain a feedrate high enough to accumulate at least 128 pulses of positional deviation in Diagnostic DGN 300 during the return cycle.
  • Satisfy the 1-Turn Rule: When recovering from a DS0300 alarm, manually rotate the axis motor at least one full turn before power-cycling to allow the pulse coder to physically register its one-rotation signal.
  • Cycle Power Fully: Enforce a complete power reboot of both the CNC and the servo amplifier after manual rotation to establish the new absolute position reference.
  • Check Interlocking Status: Confirm that no machine locks or mirror images are active on the Z-axis, as these will block tool changes and trigger coordinate alarms.
  • Monitor Critical Bits: Audit Parameter 1815 Bit 5 (APC) and Bit 4 (APZ) to verify that absolute position detectors are correctly enabled and associated.

Basic Concepts of Reference Point Returns

Practical programming effect and operator watchfulness are closely tied to how Fanuc systems handle absolute position detectors and zero returns. The rigid requirement for the position error amount to exceed 128 pulses means programmers and operators must visually and physically ensure the axis is positioned far enough away from the reference point before initiating a return cycle. If the start point is too close or the jog feedrate is too slow, the control cannot catch the one-rotation signal of the pulse coder, resulting in a PS0090 reference return incomplete alarm code [7, 23]. To safely resolve an absolute position detector mismatch, operators must manually rotate the motor at least one full turn and then cycle the power to the CNC and servo amplifier to establish a fresh zero position [23, 26, 27].

When dealing with moving mechanical mechanisms like a turret or magazine, correctly established reference positions are critical for safe machine operation and accurate coordinate tracking [28, 29]. For example, if an automatic operation is halted because a tool is damaged, performing a program restart using P-type coordinate system changes is blocked by the control to prevent further issues [30, 31]. If an operator attempts a tool change while a machine lock or mirror image is active on the Z-axis, the control generates specific alarms to halt the process and avoid a dangerous outcome [32, 33].

Fanuc controls feature a few highly distinct behaviors regarding reference returns compared to standard logic. First, they distinctly require a highly specific pulse count threshold—specifically 128 pulses of positional deviation registered in diagnostics—to validate the one-rotation signal during dog-based returns [7-9]. Second, Fanuc utilizes a strict parameter-driven association for absolute pulse coder alarms like DS0300; clearing the lost zero point condition expressly mandates a manual motor rotation of at least one turn followed by a hard power reboot, ensuring the encoder mechanically registers the revolution before the software accepts the new reference grid [4, 23, 26].

Command Structure and Diagnostic Parameter Interface

The Fanuc G-code command structure for reference returns is built on non-modal Group 00 instructions that control axis motion relative to the machine's absolute zero coordinate. These instructions direct the servo drive to execute high-precision homing routines or verify that the machine is physically positioned at its correct reference point. Because these G-codes are non-modal, they must be issued explicitly within every block where homing action is required, ensuring total programmer control over coordinate offsets.

During dog-based returns, the CNC coordinates motion based on mechanical deceleration switches and electrical feedback from the pulse coder. If a dogless zero return is used, parameter configurations govern the process to establish the origin without relying on physical switches. To prevent mechanical damage, programmers must ensure that coordinate system settings are fully established and that no machine locks are active before commanding these movements.

Homing syntax and axis coordinate addresses are structured as follows:

  • G28 X_ Y_ Z_: Automatic reference position return through intermediate point coordinates.
  • G27 X_ Y_ Z_: Reference position return check to verify axis is at the zero point.
  • G29 X_ Y_ Z_: Return from the reference position through an intermediate point.
  • G30 P_ X_ Y_ Z_: Return to the 2nd, 3rd, or 4th reference position (P specifies position).
  • G30.1 X_ Y_ Z_: Floating reference position return.

For a detailed breakdown of homing syntax and coordinate systems, refer to the guide on G28 G29 G30 Reference Point Return.

The critical machine parameters that control the absolute encoder and zero return diagnostic timing are outlined in the table below:

ParameterDescriptionValue Range / Options
Parameter No. 1815 Bit 5 (APC)Enables the absolute position detector for the designated axis.0 (Disabled) or 1 (Enabled)
Parameter No. 1815 Bit 4 (APZ)Indicates whether the absolute position detector's zero position is set.0 (Not set/lost) or 1 (Set/established)
Parameter No. 1815 Bit 0 (RVS)Specifies a movable range over one rotation.0 or 1
Parameter No. 1869Move range configuration values. Resetting this parameter sets the APZ bit to 0.Integer range values
Parameter No. 1005 Bit 0 (ZRNx)Determines whether reference position return is necessary before automatic operation start.0 (Not necessary) or 1 (Necessary)
Parameter No. 1012 Bit 0 (IDGx)Set to 1 to inhibit resetting the reference position again for return without dog.0 or 1
Diagnostic DGN 300 / DGN 800–807Position error amount. Tracks active pulse coder deviation during zero return.Exceeding 128 pulses required

Brand Applications

Fanuc

On Fanuc CNC controls, reference point returns are deeply integrated with absolute pulse coder diagnostics and the physical positioning of axis servo motors. To successfully execute an automatic zero return, the programmer must ensure that the starting position of the axis allows the servo drive to travel a sufficient distance. This distance is monitored in diagnostics as the position error amount in DGN 300 or DGN 800–807. During dog-based homing, the system must register a positional deviation of 128 pulses or more. If this threshold is not reached due to a slow jog feedrate or a starting point that is too close to the mechanical reference switch, the control will fail to capture the pulse coder's one-rotation signal and trigger the PS0090 alarm.

When resolving a lost zero point condition, indicated by the DS0300 alarm where Parameter 1815 Bit 4 (APZ) drops to 0, operators must execute a physical encoder synchronization. The operator must manually rotate the motor at least one full turn to mechanically align the internal pulse coder before the software can register the grid. Once the manual rotation is complete, cycling power to the CNC and the servo amplifier initializes the new reference coordinates. If G28 is commanded before this absolute position is set during a dogless return sequence, the system will reject the coordinate move to prevent unexpected turret or magazine collisions. These feedback loops operate similarly to other servo monitoring functions, such as the SV0411 Servo Deviation Alarm diagnostic sequence.

Brand Comparison: Version and Series Analysis

Because this article is filtered specifically for the Fanuc brand, we compare how different controller generations, software versions, and series configurations handle reference return diagnostics and error reporting.

Fanuc Series / OptionReference Return Features & MessagesDiagnostic & Alarm Differences
Fanuc M Series vs. T Series (Alarm 224)Alarm 224 displays series-specific screen text.M Series displays "RETURN TO REFERENCE POINT" whereas T Series displays "TURN TO REFERENCE POINT" on the screen, reflecting milling vs turning axes.
Fanuc FS0-MC (ed. 14) & FS0-TC (ed. 09)Updated SPC reference point establishment software logic.Reference point establishment failure alarm text changed from "PULSE MISS" in older software versions to "ZRN IMPOSSIBLE" in these software editions.
Fanuc Series 16i / 18i / 21i vs. Series 0i vs. Series 15iParameter-driven absolute position zero setting.Governed by bit-level parameters No. 1815 Bit 4 (APZ) and Bit 5 (APC). If a lost association occurs, modern Series 16i/18i/21i and 0i models require manual motor rotation of at least one turn followed by a hard power reboot, while older legacy systems rely on basic machine dog returns without advanced electronic grid backup parameters.

Technical Analysis of Fanuc Reference Return Logic

An analytical comparison of the different Fanuc control series and software editions highlights how the manufacturer transitioned from hardware-dependent homing to software-configured absolute encoder grids. In older software versions of Fanuc controls, any failure to capture the pulse coder's one-rotation signal during homing was labeled as a generic 'PULSE MISS' alarm, leaving the operator with little diagnostic context. In newer software editions such as the FS0-MC (edition 14) and FS0-TC (edition 09), this condition is dynamically analyzed by the NCK and displayed as 'ZRN IMPOSSIBLE,' signaling that the physical preconditions for zero return have failed. Similarly, the screen message for Alarm 224 varies by application type, showing 'RETURN TO REFERENCE POINT' for M series milling centers and 'TURN TO REFERENCE POINT' for T series turning centers, reflecting the physical differences between rotary turrets and linear milling tables.

The parameter-driven association of modern Fanuc controls also utilizes strict bit-level safeguards. The absolute position detector is configured via Parameter No. 1815, where Bit 5 (APC) enables absolute feedback and Bit 4 (APZ) tracks zero-point association. If Parameter No. 1869 is modified or if backup battery power fails, the machine position and the absolute position detector become uncorresponding, dropping the APZ bit to 0. Resolving this state across all modern series requires the servo motor to physically rotate at least one full turn. This mechanical rotation is necessary because the pulse coder must register a physical index revolution before the software accepts the new reference coordinates. By enforcing a hard power cycle of both the CNC and the servo amplifier after this rotation, the system forces the encoder's diagnostic registry to synchronize with the machine's physical coordinates.

Program Examples and Dry Run Execution

The following Fanuc G-code program blocks demonstrate the correct usage of homing and position verification commands. These non-modal Group 00 G-codes must be programmed with intermediate point coordinates to ensure predictable axis trajectories.

1. Automatic reference position return through intermediate point

; Automatic reference position return through intermediate point
G28 X0. Y0. Z0. ;

2. Reference position return check to verify zero point

; Reference position return check to verify zero point
G27 X0. Y0. ;

3. Return to 2nd reference position

; Return to 2nd reference position
G30 P2 Z0. ;

Dry Run Execution Procedure

Before executing these reference return G-codes in a live production environment, operators must perform a dry run to verify coordinate safety. Use the following step-by-step procedure:

  1. Verify Physical Starting Margin: Use JOG mode to position the axis far enough away from the mechanical home position to ensure the servo drive has sufficient travel to accelerate.
  2. Confirm Diagnostic Values: Monitor Diagnostic DGN 300 to ensure that during the move, the position error amount will exceed the mandatory 128 pulses required to catch the pulse coder's one-rotation signal.
  3. Select MDI Mode: Switch the Fanuc controller to Manual Data Input (MDI) mode and input the G28 X0. Y0. Z0. command.
  4. Execute the Home Return: Press Cycle Start. The axis must travel smoothly through the intermediate coordinates toward the machine zero reference point. Observe the HMI coordinate screen to confirm the absolute coordinates update to zero.
  5. Verify with G27 Check: Program G27 X0. Y0. to run a reference point check. The controller will verify if the axes are physically at the zero point, displaying no alarms if successful.
  6. Test Auxiliary Homing with G30: Input G30 P2 Z0. to command the Z-axis to return to the 2nd reference position. Verify that the turret or head moves to the predefined coordinate set in parameters without mechanical interference.

Error Analysis and Fault Diagnostics

This table outlines the primary alarms, their trigger conditions, operator symptoms, and resolutions specific to Fanuc reference point returns. If the motor still fails to communicate absolute position data, the controller may flag wider drive failures, which are covered in the SV0414 Digital Servo System Alarm troubleshooting guide.

Alarm CodeTrigger ConditionOperator SymptomRoot Cause & Practical Resolution
Alarm PS0090
REFERENCE RETURN INCOMPLETE
CNC does not receive the one-rotation signal from pulse coder at least once. Triggers if start point is too close to reference position, jog feedrate is too slow, or speed is too low to exceed 128 pulses of position error (DGN 300). Also triggers if G28 is commanded before reference position is set during dogless return.Axis motion halts; screen displays PS0090 alarm; NC Start is blocked.Move starting point farther from reference position or increase zero return feedrate. Rotate motor manually at least one full turn, cycle CNC and servo amplifier power off and on, and retry homing.
Alarm DS0300
APC ALARM: NEED REF RETURN
Absolute position detector zero position is lost and must be reset (APZ bit drops to 0 due to low battery, parameter 1869 changes, etc.).Automatic operation is locked out; absolute position data is lost; DS0300 alarm is displayed on screen.Operator must perform reference position return. Rotate motor manually at least one full turn, turn CNC and servo amplifier off and then on again, and perform zero return to re-establish the absolute reference coordinate system.
Alarm ZRN IMPOSSIBLE
(PULSE MISS)
SPC reference point establishment failure alarm. Triggered during zero return if one-rotation signal from pulse coder is not caught.Zero return check fails; screen displays ZRN IMPOSSIBLE or PULSE MISS; automatic cycle is inhibited.Pulse coder or software edition error. Inspect pulse coder connections, clean the optical scale or pulse coder, or replace the feedback cable.

Application Note: Safe Reference Point Recovery

Damage to a high-precision tool turret or magazine, followed by an immediate program lockout and scrapped workpiece, is the direct consequence of initiating a tool change while a machine lock or mirror image is active on the Z-axis. When an emergency or a damaged tool halts automatic operations, operators often attempt a quick recovery by executing P-type coordinate system changes to restart the program. However, the Fanuc controller actively blocks these program restarts to prevent dangerous axis motions. If the operator attempts to home the machine to clear coordinate offsets but starts the return sequence too close to the reference switch, the servo drive cannot accumulate the required 128 pulses of positional deviation (monitored in DGN 300). The pulse coder fails to catch the one-rotation signal, causing the machine to halt with a PS0090 Reference Return Incomplete alarm. To safely recover, the operator must switch to manual JOG mode, move the axis far enough away from the home switch to provide a proper starting margin, rotate the servo motor manually by at least one turn, and perform a full power cycle of the CNC and servo amplifier.

Related Command Network

  • G27: Reference position return check, which is programmed to verify if the axis has physically reached the home position without initiating a move.
  • G28: Automatic reference position return, which is the primary G-code used to home axes through an intermediate coordinate point.
  • G29: Return from the reference position, which commands the axes to return to the workpiece coordinate system through the same intermediate point programmed in G28.
  • G30: 2nd, 3rd, and 4th reference position return, which moves the tool turret or table to predefined auxiliary tool change coordinates.
  • G30.1: Floating reference position return, which allows homing to a dynamic, user-defined floating coordinate plane.

Conclusion and Practical Takeaways

Eliminating zero-return faults and safeguarding high-precision turrets requires strict compliance with pulse coder acceleration margins and absolute coordinate parameters. Maintaining a sufficient physical distance from the home switches during manual homing ensures that the system always exceeds the 128-pulse threshold required to validate the one-rotation signal. Promptly replacing weak absolute encoder backup batteries before the APZ bit in Parameter 1815 drops to 0 prevents the loss of the coordinate reference grid, keeping the machine ready for uninterrupted production.

Frequently Asked Questions

Why does the Fanuc control display a PS0090 alarm even when the axis physically moves all the way to the reference return dog?

Moving to the deceleration dog is not enough; the axis must move fast enough and far enough to accumulate at least 128 pulses of positional deviation in Diagnostic DGN 300 before hitting the switch. If the starting point is too close or the jog feedrate is too slow, the pulse coder cannot catch the one-rotation signal. Practically, you must use JOG mode to back the axis away from the reference point by at least one full motor revolution (or 50 mm) and increase your zero-return feedrate before retrying.

How can I resolve a persistent DS0300 APC alarm after replacing the servo amplifier's absolute encoder battery?

Replacing the battery restores electrical power, but the absolute encoder remains unsynchronized until a physical revolution is completed. You must manually rotate the axis motor shaft or lead screw at least one full turn, which physically triggers the encoder's one-rotation signal. After this rotation, perform a complete power cycle of the CNC control and the servo amplifier, then execute a manual reference return to write a 1 back to Parameter 1815 Bit 4 (APZ) and re-establish the coordinate grid.

Why is a program restart using P-type coordinate system changes blocked after a tool is damaged?

The Fanuc controller blocks P-type restarts when an abnormal cycle stop occurs to prevent the turret or spindle from executing unexpected, non-synchronized movements that could cause a secondary collision. If your operation is halted due to a damaged tool, do not attempt to force a program restart at the current coordinates. Instead, manually retract the Z-axis, perform a complete reference position return check (G27/G28) to verify coordinate integrity, replace the damaged tooling, and restart the program from a safe block number.

Still not resolved?

Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

Ask AI Assistant
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

With over 25 years of experience working in all areas of the CNC machine industry, I continue my activities as a co-founder of CNC CARE, where we offer brand-independent consulting, engineering, and original spare parts services.

Related Articles

Other articles on this topic