The short answer
CNC alarm codes are organized differently on each control. FANUC 0i and 30i controls put a two-letter type in front of a four-digit number (SV0401 is a servo alarm, OT0500 an overtravel, PS0090 a program/operation alarm), Haas NGC uses one number per alarm with the axis in front of a period (3.108 is a Z-axis servo overload), and Siemens SINUMERIK groups alarms by number range (20000–29999 are axis/spindle alarms such as 25050 contour monitoring). Read the prefix or range first: it tells you whether to look at the program, the axis, the drive or the machine-builder logic.
- FANUC’s 0i-D and 30i-B maintenance manuals list twelve CNC alarm types: PS, BG, SR, SW, SV, OT, IO, PW, SP, OH, DS and IE.
- FANUC SV0401 IMPROPER V_READY OFF means the position control was ready (PRDY on) but the servo amplifier’s velocity-ready signal (VRDY) was off.
- On SINUMERIK, 020000–029999 are axis/spindle alarms, 201000–265535 are SINAMICS drive alarms, and 500000–899999 are PLC alarms written by the machine builder.
- Haas NGC replaced per-axis classic-control alarms (108, 109, 110, 111…) with one group number: 1.108 is X, 2.108 Y, 3.108 Z servo overload.
- Haas alarm 108 is AXIS SERVO OVERLOAD: motor load over 100% for several seconds or minutes.
| Alarm | Control | Maker’s message | What it means | Source |
|---|---|---|---|---|
| SV0401 | FANUC 0i-D/0i-F, 30i-B | IMPROPER V_READY OFF | Position control ready (PRDY) was on but the amplifier’s velocity-ready signal (VRDY) was off; check diagnosis No. 358 for the cause | B-64305EN/03 App. A and 10.14 |
| SV0410 | FANUC 0i-D/0i-F, 30i-B | EXCESS ERROR (STOP) | Position deviation while stopped exceeded parameter No. 1829 | B-64305EN/03 App. A |
| SV0411 | FANUC 0i-D/0i-F, 30i-B | EXCESS ERROR (MOVING) | Position deviation while moving exceeded parameter No. 1828 | B-64305EN/03 App. A |
| DS0300 | FANUC 0i-D/0i-F, 30i-B | APC ALARM: NEED REF RETURN | Absolute position detector needs its zero position set; perform reference return; handle other alarms first | B-64305EN/03 App. A |
| DS0306 | FANUC 0i-D/0i-F, 30i-B | APC ALARM: BATTERY VOLTAGE 0 | Encoder battery voltage too low to hold data, or the Pulsecoder was powered for the first time | B-64305EN/03 App. A |
| PS0090 | FANUC 0i-D/0i-F, 30i-B | REFERENCE RETURN INCOMPLETE | Reference return start point too close or speed too slow, or zero point could not be set for the absolute detector | B-64305EN/03 App. A |
| OT0500 | FANUC 0i-D/0i-F, 30i-B | + OVERTRAVEL (SOFT 1) | Axis exceeded the positive stored stroke check 1 (OT0501 is the negative side) | B-64305EN/03 App. A |
| SP9001 | FANUC 0i-D/0i-F, 30i-B | SSPA:01 MOTOR OVERHEAT | Spindle motor internal temperature over limit (amplifier display 01); check load, ambient temperature, cooling fan | B-64305EN/03 App. A.3 |
| Haas 102 | Haas NGC | SERVOS TURNED OFF | Servo motors are off due to Emergency Stop, another alarm, or power-on; clear the cause and press RESET | Haas alarm page |
| Haas 108 | Haas NGC | AXIS SERVO OVERLOAD | Motor load over 100% for several seconds or minutes; reduce load, check for dull or broken tools | Haas alarm page |
| Haas 160 | Haas NGC | LOW INCOMING AC LINE VOLTAGE | Incoming voltage below 80% of expected; check supply voltage and transformer taps | Haas alarm page |
| SINUMERIK 25000 | Siemens 840D sl | Axis %1 hardware fault of active encoder | Signals from the active position encoder missing, out of phase, or grounded/shorted; axes must be re-referenced | Diagnostics Manual 10/2015 |
| SINUMERIK 25040 | Siemens 840D sl | Axis %1 standstill monitoring | Axis left the standstill tolerance (MD36030) after the delay time (MD36040), e.g. pushed by cutting force or jammed | Diagnostics Manual 10/2015 |
| SINUMERIK 25050 | Siemens 840D sl | Axis %1 contour monitoring | Actual position differs from the NC’s model by more than MD36400 CONTOUR_TOL | Diagnostics Manual 10/2015 |
| SINUMERIK 25080 | Siemens 840D sl | Axis %1 positioning monitoring | Axis did not reach the exact-stop window within MD36020 POSITIONING_TIME | Diagnostics Manual 10/2015 |
FANUC 0i-F and 30i: what each alarm prefix covers
| Prefix | Alarm type | Typical example |
|---|---|---|
| PS | Alarms on program and operation | PS0090 REFERENCE RETURN INCOMPLETE |
| BG | Background edit alarms (same numbers as PS) | BG0085 |
| SR | Communication alarms (same numbers as PS) | SR0001 |
| SW | Parameter writing alarm | SW0100 PARAMETER ENABLE SWITCH ON |
| SV | Servo alarms | SV0401, SV0410, SV0411 |
| OT | Overtravel alarms | OT0500 + OVERTRAVEL (SOFT 1) |
| IO | Memory file alarms | IO1001 FILE ACCESS ERROR |
| PW | Alarms requiring power to be turned off | PW0000 POWER MUST BE OFF |
| SP | Spindle alarms | SP9001 SSPA:01 MOTOR OVERHEAT |
| OH | Overheat alarms | OH0700 LOCKER OVERHEAT (cabinet) |
| DS | Other alarms, including absolute position detector (APC) | DS0300, DS0306 |
| IE | Malfunction prevention function alarms | See manual |
The same manuals also list MC, EX, SN and PC as alarm types in the alarm-trigger settings, and FANUC’s alarm history example shows macro alarm messages recorded as MC numbers. Macro and external alarm texts are written by the machine builder, so look them up in the builder’s manual, not FANUC’s. TH is not a prefix: TH ERROR is the message of PS0001, a TH error detected while reading from an input device. PMC alarms and serial spindle alarms have their own lists in Appendix A.
We did not have a FANUC-issued copy of the 0i-MODEL F maintenance manual to confirm its document number, so the meanings here come from the 0i-D manual B-64305EN/03 and the 30i-B manual B-64485EN/01, which use the same alarm types. Check any code against the manual for your control and software.
Older FANUC numeric alarms (0-C, 16/18 era)
Before the prefixed system, FANUC used plain numbers. FANUC’s α series amplifier maintenance manual B-65165E/01 shows how one number covered several faults on the Series 16/18/20: alarm 414 grouped amplifier conditions such as DC link overvoltage, abnormal current, IPM alarm, overload, control power undervoltage and DC link undervoltage, read from diagnosis No. 200–204; 416 was feedback disconnected; 417 invalid servo parameter setting; and 400 fan stopped or overheat. On the Series 0-C the same 414, 416 and 417 groups appear, with diagnosis No. 720–723.
On 0i-D and 30i-B controls those conditions have their own SV numbers, for example SV0430 SV MOTOR OVERHEAT, SV0433 CNV. LOW VOLT DC LINK, SV0438 INV. ABNORMAL CURRENT, SV0445 SOFT DISCONNECT ALARM and SV0417 ILL DGTL SERVO PARAMETER. FANUC does not publish a one-to-one cross-reference that we found, so for an old 401, 410 or 411 use the maintenance manual for that control rather than assuming it matches SV0401, SV0410 or SV0411.
Haas and Siemens numbering
Haas publishes each alarm on its website with a description and first action. On the Next Generation Control, axis alarms share one group number and the axis is the number before the period: 1 = X, 2 = Y, 3 = Z, 5 = A, 6 = B, 7 = C, 11 = tool changer arm. Haas states that classic-control alarms 109, 110, 111, 188, 271 and 674 do not appear on NGC; they are all alarm 108 with an axis prefix. On the control, press ALARMS to see Active Alarm, Alarm History and Alarm Viewer tabs, and press SHIFT then F3 with the alarm active to save an error report.
Siemens assigns ranges: 000000–009999 general NC alarms, 010000–019999 channel alarms, 020000–029999 axis/spindle alarms (027000–027999 Safety Integrated), 060000–064999 Siemens cycle alarms, 100000–169999 HMI alarms, 201000–265535 SINAMICS drive faults and alarms, 300000–399999 drive and I/O alarms, and 400000–899999 PLC alarms. The machine builder configures and describes PLC alarms 500000–899999, so those texts are in the builder’s documentation.
Mazak and Okuma do not publish public alarm lists we could verify, so they are not covered here. Use the alarm documentation supplied with the machine.
First checks for any servo or axis alarm
- Write down every active alarm and the alarm history in order. The first alarm is usually the cause; Haas 102 SERVOS TURNED OFF, for example, normally follows another alarm.
- Note when it happened. At power-up or reset with no motion (SV0401, Haas 102): look at the power and ready chain: E-stop released, contactor (MCC) on, breakers, amplifier control power, and any power supply or spindle amplifier alarm. On FANUC, diagnosis No. 358 narrows SV0401 down.
- At standstill (SV0410, SINUMERIK 25040): the axis drifted while holding. Look for cutting or clamping force pushing it, a gravity axis and its brake, and position gains.
- During a move or acceleration (SV0411, SINUMERIK 25050, Haas 108 after a sustained load): look for binding, lubrication, a crash, dull or broken tools, feeds and speeds, then motor and cable faults and tuning.
- After power-off, a battery change or encoder work (DS0300, DS0306, PS0090, SINUMERIK 25000): check the encoder battery and cable, then set the reference position by the machine’s procedure.
- Swap or replace parts only after the checks above, and record parameters and settings before any amplifier, board or encoder change.
Frequently asked questions
What does FANUC alarm SV0401 mean?
SV0401 IMPROPER V_READY OFF means the CNC’s position control was ready (PRDY on) but the servo amplifier’s velocity-ready signal (VRDY) was off. FANUC’s checks: control power to the power supply, E-stop released, MCC contactor on and powered, breaker on, and no power supply or spindle amplifier alarm. Diagnosis No. 358 shows where the ready chain broke.
What is the difference between FANUC SV0410 and SV0411?
Both are excess position error alarms. SV0410 EXCESS ERROR (STOP) is triggered while the axis is stopped and is compared with parameter No. 1829; SV0411 EXCESS ERROR (MOVING) is triggered during travel and is compared with parameter No. 1828. Standstill points to drift or brake problems, moving to binding, load or the drive.
What does Haas alarm 108 mean?
Haas alarm 108 is AXIS SERVO OVERLOAD: the motor load stayed above 100% for several seconds or even minutes. Haas says to reduce the load with feeds and speeds and check for dull or broken tools. On NGC the axis is shown in front of the period, for example 3.108 for Z.
What is FANUC alarm OT0500?
OT0500 + OVERTRAVEL (SOFT 1) means an axis exceeded the positive stored stroke check 1, a software travel limit. OT0501 is the same on the negative side. Check the program and work offsets that commanded the move before jogging the axis back inside its range.
Why does my FANUC lose its reference position after power-off?
The absolute position detector lost its data. DS0306 APC ALARM: BATTERY VOLTAGE 0 means the encoder battery voltage dropped too low (or the Pulsecoder was powered for the first time), and DS0300 APC ALARM: NEED REF RETURN asks for the zero position to be set again. If DS0306 returns after a power cycle, FANUC says the battery or cable may be defective.
How do I replace the FANUC encoder battery without losing position?
FANUC’s maintenance manual says to replace the absolute encoder battery with the machine turned on, so the position data is held during the change. Keep the machine in E-stop, follow the machine builder’s procedure, and use the battery type the builder specifies.
What does FANUC SP9001 mean?
SP9001 SSPA:01 MOTOR OVERHEAT means the spindle motor’s internal temperature exceeded its limit, shown as 01 on the spindle amplifier. FANUC’s remedies are to check ambient temperature and load and to replace the motor cooling fan if it has stopped.
What is the difference between SINUMERIK 25040 and 25050?
25040 standstill monitoring trips when a stopped axis leaves its position tolerance (MD36030) after the delay time (MD36040), for example when cutting force pushes it. 25050 contour monitoring trips during motion when the actual position differs from the NC’s model by more than MD36400. Machine data changes belong to the builder or Siemens service.