FANUC No-Alarm Fault Diagnosis: How to Use DGN000, DGN003, DGN005

What frustrates field engineers most about CNC machines is not a screen full of alarms, but “no alarm at all, yet it just won’t move”: the program won’t proceed, an axis stalls for tens of seconds then continues, or an axis is simply locked. This kind of “hidden no-alarm fault” has no alarm number to look up, and many people’s first reaction is to randomly change parameters, making things worse.

FANUC’s self-diagnosis function (DIAGNOSIS / DGN) is built exactly for this scenario. This article maps the most common no-alarm faults to specific diagnosis numbers (DGN000 / 003 / 005 etc.) and gives a troubleshooting path of “which number to read, which wire to check, how to fix.” Pair it with FANUC PMC Ladder Diagram Beginner Tutorial and FAPT-LADDER3 Download and PMC Upload — understanding the M-code completion signal and interlock logic will be much easier.

When there is an alarm, the alarm number itself is a clue (cross-check with the FANUC Alarm Code List). With no alarm, it means the system thinks “the condition is not met,” not “an error occurred.” There are three common cases:

  • Condition not met: the action was done, but the “completion confirmation” did not come back. The system keeps waiting, the program stops, but no alarm.
  • In-position check not passed: the axis is moving, but the system thinks “it hasn’t reached the commanded position,” and keeps repositioning, stuck there.
  • Interlock active: the PMC locked the axis for safety reasons (e.g. a contradictory signal like “both at top and at bottom”), and the system follows the rule without alarming.

The entry diagnosis numbers for these three cases are DGN000, DGN003, and DGN005 respectively. Each is broken down below.

1. Why “No Alarm” Is Harder to Check Than “With Alarm”

No-alarm faults have no number to guide you, so you must fall back on the diagnosis screen. The three entry numbers below are the first things to open whenever a machine “does nothing but shows no alarm.”

2. DGN000 = 1 — Auxiliary Function (M code) Not Confirmed Complete

Diagnosis number 000 showing 1 means WAITING FOR FIN (waiting for the auxiliary-function completion signal): the system is executing an M / S / T / B code, but never received the “done” confirmation signal (FIN, corresponding to PMC output G4.3).

The M-code execution chain is this:

NC reads the M code → outputs MF (F7.0) and M info F10~F13 via strobe delay → PMC decodes (DECB) → outputs Y to drive the external action (valve / relay / motor) → the action-complete switch returns to X → after PMC judges, it issues G4.3 (FIN) → CNC receives FIN, ends that M block, continues to the next line. If any point in this chain breaks, G4.3 is not issued, DGN000 stays 1, and the program is stuck at that M block. The typical symptom: the action actually happened, but the “completion signal” never came back.

Example: M8 coolant already spraying but program stops → check flow switch X2.2

A machining center stops at every M8 (coolant on) during automatic run, but visually the coolant is clearly spraying and the screen shows no alarm.

Open the diagnosis screen: DGN000 = 1, meaning the M8 auxiliary function was not confirmed complete. Check the electrical drawing: the coolant line has a flow switch to confirm “real coolant is flowing,” mapped to input X2.2 in PMC — it should be 1 when there is flow.

Open the PMC signal screen and look at X2.2: it is actually 0. That is, the coolant is spraying, but the flow switch is not giving the “flow present” signal (usually the switch sensitivity is insufficient, the sensing is misaligned, or the port is clogged). After repositioning / re-tuning the switch sensitivity and cleaning it, X2.2 becomes 1, G4.3 is issued normally, and the fault is cleared.

Not just coolant — M06 / M08 / M19 / M56 follow the same logic

Tool change M06, spindle orient M19, second-spindle M56, etc. are essentially “NC issues command → PMC drives external action → external returns completion signal → G4.3 confirms.” Second-hand machines, retrofitted machines, or machines that later added M codes often get stuck at an M because “the completion signal is not wired up / not written into the ladder.”

Unified troubleshooting: when DGN000 = 1, open the PMC signal screen and watch whether G4.3 (FIN) is set; if not, trace back along the ladder for that M code’s completion condition — it usually ends at an X (in-position / pressure / flow / clamp) or an intermediate relay.

广告

3. DGN003 = 1 — In-Position Check Not Passed (most common)

Diagnosis number 003 showing 1 means IN-POSITION CHECK: the system is verifying “did the moved axis accurately stop at the commanded position.” If the axis fails to position accurately, 003 stays 1 for a long time and the program gets stuck.

The real-time position deviation (command position − actual position) of each axis is seen in DGN300~308 (axes 1~8). The tolerance the system uses to judge “in position” is set by parameter 1826 (in-position width).

DGN300 position deviation vs parameter 1826 in-position width

The rule is simple:

  • As long as the deviation in DGN300 ≤ the value set in parameter 1826, the system considers positioning complete; otherwise it considers it not in position, repositions repeatedly, and DGN003 stays 1.

How the deviation is calculated (position-loop gain 1825)

The relationship between position deviation (following error), feed rate, and position-loop gain, per FANUC servo theory, is:

Position deviation E = feed rate F (mm/min) ÷ (60 × position-loop gain Kp)

where Kp = the actual gain of parameter 1825 (unit 1/s). 1825 stores Kp × 0.01: for example 1825 = 3000 means 30/s, 1825 = 5000 means 50/s (semi-closed loop commonly 3000~5000, full-closed loop about 1500~3000, tune to field stability).

In other words: the higher the gain (larger 1825), the smaller the following error and the more “responsive” the positioning; too low a gain makes the deviation larger and easily gets stuck at in-position check.

Note a common mis-transmission: many reposted articles from around 2010 wrote the formula as “position deviation = feed rate ÷ 60 × servo-loop gain,” reversing the direction. By that writing you get the wrong conclusion “the larger the gain, the larger the deviation,” which is opposite to the actual servo rule. This article gives the correct relationship per FANUC servo theory. For gain background see FANUC Servo Gain 2021 / 1825 Adjustment.

Servo-gain setting is also closely related to vibration and overshoot; if abnormal vibration appears while tuning gain, see Servo Vibration and Overshoot Troubleshooting.

Example: Z axis frequently stalls after moving, then continues tens of seconds later

A machine frequently “stalls” during automatic machining, especially after the Z axis moves; the program won’t proceed, but sometimes continues after tens of seconds, sometimes just freezes, with no alarm throughout.

Diagnosis screen: DGN003 = 1 (in-position check). Look at DGN300: the Z-axis real-time deviation = 50, while parameter 1826 (Z-axis in-position width) is set to 4. Deviation 50 is far larger than tolerance 4, so the system judges “not in position,” repositions repeatedly, and the program stalls; the servo keeps trying to eliminate the deviation, occasionally pressing it within tolerance so the program “moves a few more steps,” appearing as “stalls for tens of seconds then continues.”

The field root cause is usually mechanical / transmission making the following error large (backlash, ball-screw preload, sudden load change, etc.), or 1825 set too low. Correct action order:

  • First check mechanical and load (backlash, screw / guide, brake, cutting load); don’t rush to change parameters.
  • Confirm 1825 is in a reasonable range; if low, raise it moderately (limited to stable, no vibration).
  • Confirm 1826 is not set too small; but you must not blindly raise 1826 to “cover up” a mechanical problem — that only hides the hazard.

4. DGN005 = 1 — Axis Interlock Active

Diagnosis number 005 showing 1 means INTERLOCK / START-LOCK: the PMC sent a “forbid axis movement” signal, and the axis is locked. The system considers it a safety protection and does not alarm.

The interlock signal is sent from PMC to CNC; polarity must be clear:

Signal Meaning Active polarity
G8.0 (*IT) All-axis interlock: all axes forbidden to move =0 locks all axes
G130.0~G130.3 (*IT1~*IT4) Axis 1~4 separate interlock =0 locks the corresponding axis
G132.0~G132.3 (+MIT1~+MIT4) Axis 1~4 positive-direction interlock =1 locks positive direction (negative still movable)
G134.0~G134.3 (-MIT1~-MIT4) Axis 1~4 negative-direction interlock =1 locks negative direction (positive still movable)

Whether these signals actually take effect is controlled by parameter 3003: #0 (ITL) = all-axis interlock enable/disable, #2 (ITX) = per-axis interlock, #3 (DIT) = directional interlock. Setting the corresponding bit to 1 disables that signal — a common field trick to escape a jam temporarily, but you must confirm the safety risk before using it, and restore it afterward.

Example: turret upper and lower proximity switches both ON causing Z axis lock

A special machine stops at G90 G01 Z0, resets and retries, still stuck at the same block, no alarm. Diagnosis screen DGN005 = 1 (interlock active).

Open the PMC signal screen and see G130.0 = 0 (Z axis is axis 1, corresponding to *IT1). Trace back along the ladder: this special machine’s PMC wrote “the turret (or tool magazine) upper-limit switch and lower-limit switch must not be ON at the same time, otherwise it judges unsafe and locks the Z axis.” The field situation: the turret upper-limit proximity switch was stuck by iron chips / oil, always outputting ON; when the lower-limit switch also went ON due to motion, the PMC received the contradictory “both at upper and at lower” signal, so G130.0 was set to 0 and the Z axis was locked. After cleaning the switch and restoring the gap, G130.0 returned to 1 and the interlock was released.

Troubleshooting rule: when DGN005 = 1, open the PMC signal screen and see which bit of G8.0 / G130~G134 is unexpected, then trace back along the ladder to see who gave that signal.

5. Common Diagnosis Numbers Quick Reference

The table below covers the highest-frequency diagnosis numbers for no-alarm troubleshooting. For complete alarm meanings cross-check the FANUC Alarm Code List.

Diagnosis No. Meaning Common symptom / action
000 Waiting for FIN (M/S/T/B not finished) Program stops at M block → check G4.3 (FIN) and the action-complete X
001 Auto-run movement command in execution Normal
002 Pause (DWELL, G04) in execution Normal
003 In-position check =1 for long → check DGN300 and parameter 1826
004 Feed override 0% Program won’t run → check override knob / parameter
005 Interlock / start lock Check G8.0 / G130~G134
006 Spindle speed-reached check Spindle not at rated speed
010 / 011 Punch output / read-in Data I/O in progress
012 Waiting for (un)clamp Rotary table / indexer not clamped
013 Handwheel override 0% Handwheel not moving → check override
014 Waiting for reset / e-stop / RRW release Check e-stop chain, external reset
020~025 Feed up/down, reset, e-stop, stop class Check reset / e-stop chain
030~031 TH alarm character position Tape / macro alarm location
200~204 Servo alarm detailed bits (OVL/LV/OVC/HCAL/HVAL/DCAL/FBAL/OFAL etc.) Pair with 4xx alarm to locate
300~308 Each axis position deviation Check here when DGN003 is stuck
350 α serial pulse encoder internal control anomaly Check 202 / 204
400~412 Servo / spindle module, overheat, disconnection etc. Check 200 / 201 etc.
450~475 Overtravel / overload / battery hardware auxiliary diagnosis Combine with screen alarm text
广告

6. Alarm → Diagnosis Number Reverse Lookup Table

When you already see an alarm, use this table to map the alarm number to the corresponding diagnosis number and avoid detours. The exact text of each alarm follows your machine’s screen (0i series common mapping below):

Alarm Common meaning Key diagnosis numbers
350 α serial pulse encoder internal control anomaly 202, 204
351 α serial pulse encoder ↔ module communication anomaly 203
400 class Servo related (overheat / overload etc., per screen) 200, 201
414 Digital servo alarm (X axis example) 200, 201, 204 + module LED
416 Position detector signal disconnection / short 200, 201
417 Servo parameter setting anomaly 203, 280
749 Serial spindle module anomaly 408
750 Serial spindle system power-up start anomaly 409

7. Pre-Troubleshooting: Do These 3 Things First

Before changing anything, do these three things to avoid turning a “small problem” into a “big accident”:

  • Back up parameters before acting: including NC parameters, PMC / ladder, pitch compensation, macro variables. If you make a mistake you can still roll back. For backup methods see the FANUC PMC Ladder Diagram Beginner Tutorial (backup section).
  • Check alarm history: even if there is no alarm now, the history may record an instantaneous alarm or a 300-level event — often a foreshadowing.
  • Record a diagnosis snapshot: photograph / note the current values of DGN000~006, DGN300~308, 200~204, compare with a healthy machine; the difference is the breakthrough. More ideas in FANUC Fault Troubleshooting 5 Cases.

8. When to Stop and Call the Manufacturer

In these situations, don’t force parameters or disassemble; contact the machine-tool builder or authorized service directly:

  • PMC/CPU status light constantly red: the PMC/CPU indicator on the control unit should normally blink green regularly; constantly red means PMC is not running normally (program damaged, battery failure losing the program, etc.).
  • F-ROM write failure / SRAM checksum alarm: involves the system software layer; forcing operations may enlarge the fault.
  • 970~975 class system / PMC alarms that return on reset and recur: usually I/O module, PMC type mismatch, or hardware problems — not adjustable by normal parameters.
  • When it involves changing PMC logic, disassembling the servo amplifier, or touching the scale / encoder without field confidence, also stop.

Frequently Asked Questions (FAQ)

1. My FANUC machine has no alarm but the program won’t proceed — which diagnosis number should I check first?

Check DGN000 first. =1 means the system is waiting for the auxiliary function (M/S/T/B) “completion confirmation” signal FIN (G4.3), commonly seen when the M-code action happened but the completion signal didn’t come back. If DGN000 is normal, then look at DGN003 (in-position not passed) and DGN005 (axis interlocked).

2. DGN003 stays 1 for a long time with no alarm — what does that mean?

It means the system keeps doing the in-position check but never passes: the moved axis’s position deviation stays larger than the tolerance set by parameter 1826 (in-position width). Open DGN300~308 to see which axis deviation is too large; first check mechanical / load, then verify whether 1825 (position-loop gain) is too low or 1826 is too small.

3. What usually causes an intermittent stall (stops for tens of seconds then continues)?

The most typical is DGN003 in-position check stuck: an axis’s position deviation occasionally crosses the tolerance, the program pauses, and after the servo presses the deviation back within tolerance the program moves a few more steps — appearing as “stalls for tens of seconds then continues,” mostly happening after the Z axis moves. The root cause is usually mechanical / transmission making the following error large, or 1825 set too low.

4. What should parameter 1826 (in-position width) be set to, and how does it differ from 1825?

1826 (in-position width) is “the maximum position deviation the system allows to judge positioning complete,” in the same unit as DGN300. Set too small it easily gets stuck at in-position check; set too large positioning accuracy drops. Generally use the machine builder’s default, don’t change it casually. 1825 (position-loop gain) decides how “responsive” the servo is: higher gain means smaller following error, but too high causes vibration. Their relationship: position deviation ≈ feed rate ÷ (60 × 1825 actual gain). Tuning 1825 changes the size of the deviation itself; tuning 1826 changes the threshold of allowed deviation.

Related Reading

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

广告