This is a working English reference for FANUC P/S (Program / Setting) alarm numbers, organized by code range so you can look up an alarm number the moment it appears on the screen. Each entry gives the alarm message and the practical meaning / first action on the floor.
This article covers 0001–0224. Higher ranges are covered in the following parts of this series.
Important: Alarm messages, descriptions, and related parameter numbers vary by FANUC series (0i-C / 0i-D / 0i-F, 16i/18i/21i, 30i/31i/32i), by software version, and by installed options. The exact text on your screen is always authoritative. Where this list mentions a parameter number, confirm it on your machine before changing anything.
How to use this page: find the number in the left column, read the message, then follow the action in the right column. Do not clear a P/S alarm by resetting repeatedly without understanding its cause — most of these are program or setting errors that will simply recur.
0001–0009: Tape / Format / Address Errors
| Code |
Message |
Meaning / action |
| 0001 |
TH parity error |
A TH error was detected while reading data from the input device. The character causing the TH error and the number of characters in the block where it occurred can be confirmed on the diagnosis screen. |
| 0002 |
TV check error |
An error was detected during the TV check of the first data block. The TV check can be disabled by setting parameter TVC (No. 0000 #0) to 0. |
| 0003 |
Data exceeds the allowable range |
The specified number of digits exceeds the allowable number of digits for an NC command word. The allowable number of digits differs by function and address. |
| 0004 |
No address at the block start |
The NC statement is not in the form address + value, is not a reserved word in a custom macro, or does not conform to the syntax. |
| 0005 |
No data after the address |
The NC statement is not in the form address + value, is not a reserved word in a custom macro, or does not conform to the syntax. |
| 0006 |
Illegal use of a minus sign |
A minus sign was specified in both an NC command word and a system variable. |
| 0007 |
Illegal decimal point input |
A decimal point was specified where decimal points are not allowed, or two or more decimal points were specified. |
| 0009 |
Illegal address input |
An address that cannot be specified in an NC statement was specified, or parameter 1020 is not set. |
0010–0015: G Code and Feed Errors
| Code |
Message |
Meaning / action |
| 0010 |
Invalid G code specified |
A G code that cannot be used was issued. |
| 0011 |
Cutting feedrate not specified |
The cutting feedrate command F code is 0. |
| 0015 |
Number of simultaneously controlled axes exceeded |
The number of axes to be moved is greater than the number that can be controlled simultaneously. Either add an option to expand the number of simultaneously controlled axes, or split the axes to be moved in the program into two blocks. |
0020–0029: Circular Interpolation and Offset
| Code |
Message |
Meaning / action |
| 0020 |
Arc radius difference too large |
In the issued arc radius command, the difference between the radius values at the start point and end point is greater than the setting of parameter 3410. Check the arc center commands I, J and K in the program. If the value of parameter 3410 is increased, the path becomes a spiral. |
| 0021 |
Axis commands other than plane specification are not possible |
There is an error in the plane selection commands G17 to G19. Check the program so that parallel axes of the same three basic axes are not specified at the same time. For example, in circular interpolation, if an axis command other than the plane selection is included, this alarm is triggered. To specify three or more axes, each axis needs the corresponding helical interpolation option. |
| 0022 |
Arc radius not specified |
In circular interpolation, neither the arc radius R nor the distance from the start point to the center (I, J, K) was specified. |
| 0025 |
F0 cannot be issued with G02/G03 |
F0 (F1-digit feed or inverse-time rapid feed) was commanded in circular interpolation mode (G02, G03). |
| 0028 |
Illegal plane select command |
There is an error in the plane selection commands G17 to G19. Check that parallel axes of the same three basic axes are not specified at the same time. To specify three or more axes, each axis needs the corresponding helical interpolation option. |
| 0029 |
Offset value out of range |
The offset number is invalid. |
0030–0038: Tool Compensation (G10 / G41-G42)
| Code |
Message |
Meaning / action |
| 0030 |
Offset number out of range |
An offset number that cannot be specified was specified. |
| 0031 |
Illegal P command in G10 |
The G10 L number has no corresponding data input or option. There is no command for setting the data address P, R, etc. The specified address is unrelated to the data setting. The address to be specified depends on the L number. The sign, decimal point, or range of the specified address value is wrong. |
| 0032 |
G10 offset number out of range |
The offset specified in offset program input (G10), or the offset specified when writing the offset using a system variable, is too large. |
| 0033 |
Interference point cannot be found with tool shape / cutting edge R compensation |
The interference point of the tool diameter and cutting edge R compensation cannot be found. Correct the program. |
| 0034 |
Start/cancel performed during G02/G03 |
An attempt was made to start or cancel tool diameter / cutting edge R compensation in G02/G03 mode. Correct the program. |
| 0035 |
G31 cannot be specified |
G31 cannot be executed. This alarm occurs when a G code in group 07 (tool diameter, cutting edge R compensation, etc.) has not been canceled. Or a torque limit skip command (G31 P98/P99) was issued without a torque limit command. Specify the command using the PMC window, or issue a torque limit override command at address Q. |
| 0037 |
Compensation plane cannot be switched |
The compensation plane G17/G18/G19 was switched during tool diameter / cutting edge R compensation. Correct the program. |
| 0038 |
Overcutting occurs in an arc |
In tool diameter and cutting edge R compensation, the start or end point of the arc coincides with the center, which may cause overcutting. Correct the program. |
0041–0046: Tool Position Offset and Reference Position Return
| Code |
Message |
Meaning / action |
| 0041 |
Overcutting due to tool diameter and cutting edge R compensation |
Tool diameter and cutting edge R compensation may cause overcutting. Correct the program. |
| 0042 |
Tool position compensation cannot be specified |
Tool position compensation (G45 to G48) was specified in tool radius compensation mode or three-dimensional tool compensation mode. Correct the program. |
| 0043 |
Illegal T code |
On a system with DRILL-MATE ATC, M06 was not specified in the same block as the T code, or the T code is out of range. |
| 0046 |
Error in 2nd/3rd/4th reference position return command |
The 2nd, 3rd and 4th reference position return commands are wrong (address P is specified incorrectly). Address P was specified as 3 or 4 when the option for 3rd and 4th reference position return is not set. |
0060–0079: Program / Sequence Number / Memory
| Code |
Message |
Meaning / action |
| 0060 |
Sequence number not found |
External data I/O: the number specified in the program number / sequence number search does not exist. The system requested the pot number and offset for tool data I/O, but the tool number has never been entered since power-on. There is no tool data corresponding to the entered tool number. External workpiece number search: no program corresponding to the specified workpiece number was found. Program restart: the sequence number specified by the program restart sequence number was not found. Check the block to restart. |
| 0070 |
Insufficient memory storage space |
Memory space is insufficient. Delete unnecessary programs and re-register. |
| 0071 |
Data matching the search condition not found |
The address data being searched for was not found; the specified program number was not found in a program number search; or the specified block number was not found when specifying a program restart block number. Recheck the data being searched for. |
| 0072 |
Number of programs exceeded |
The number of registered programs has exceeded 63 (basic) or 125, 200, 400 or 1000 (optional). Delete unnecessary programs and re-register. |
| 0073 |
Program number already in use |
The program number you tried to register is already registered. Change the program number or delete unnecessary programs, then re-register. |
| 0074 |
Program number out of range |
The program number is not within 1 to 9999. Correct the program number. |
| 0075 |
Protected |
An attempt was made to register a program with a protected number. During program verification, the password of the encrypted program differs from the registered password. An attempt was made to select a program being edited in the background as the main program, or to call a program being edited in the background as a subprogram. |
| 0076 |
Address P not specified |
The program for subprogram call / macro call / figure copy was not specified. Programs can be called not only by M98, G65, G66, G66.1 or interrupt-type custom macro P specification, but also by M/G/T/S codes and second auxiliary function codes. This alarm is also triggered when there is no program corresponding to these calls. |
| 0077 |
Subprogram call error |
The total number of subprogram calls and custom macro calls has exceeded the maximum. Another subprogram call command was issued while an external memory subprogram call was in progress. |
| 0078 |
Specified number not found |
The sequence number specified in the sequence number search was not found. The sequence number specified as the jump destination in GOTO– or M99 P– was not found. |
| 0079 |
Memory and program do not match |
The program you tried to load cannot be compared with the program in memory. If parameter NPE (No. 3201 #6) is set to 1, multiple programs cannot be compared continuously. Change parameter NPE (No. 3201 #6) to 0 and perform the comparison. |
0080–0087: Measurement (G37) and RS-232C Interface 1
| Code |
Message |
Meaning / action |
| 0080 |
Measurement position arrival signal not turned on |
Machining center: in automatic tool length measurement (G37), the measurement position arrival signal became 1 before the area specified by parameter (epsilon value, No. 6254), or did not become 1 until the end of measurement. Lathe: in automatic tool length measurement (G37), the set position arrival signals (XAE1, XAE2) did not become 1 within the area set by parameters (epsilon values, No. 6254, 6255). |
| 0081 |
No H code in the G37 block |
Machining center: in automatic tool length measurement, the automatic tool length compensation (G37) command does not include an H code. Correct the program. Lathe: in automatic tool compensation, the T code and the automatic tool compensation (G36, G37) command are in the same block. Correct the program. |
| 0082 |
G37 and H code specified in the same block |
Machining center: in automatic tool length measurement, the H code and automatic tool length compensation (G37) are written in the same block. Correct the program. Lathe: in automatic tool compensation, only automatic tool compensation (G36, G37) was specified and no T code was specified. Correct the program. |
| 0083 |
Illegal axis specification in G37 |
Machining center: the axis specification in automatic tool length measurement (G37) is incorrect, or the movement command is an incremental command. Correct the program. Lathe: the axis specification in automatic tool compensation (G36, G37) is incorrect, or the command is an incremental command. Correct the program. |
| 0085 |
Communication error |
Before the character received from the I/O device connected to RS-232C interface 1 was read, the next character was received. An overflow, parity, or framing error occurred while reading data through RS-232C interface 1. The number of bits of the input data does not match, or the baud rate setting or I/O device specification number is incorrect. |
| 0086 |
Operation ready signal off |
During data I/O through RS-232C interface 1, the I/O device operation ready signal (DR) is OFF. The I/O device may not be powered, the cable may be broken, or the printed circuit board may be faulty. |
| 0087 |
Buffer overflow |
When reading data through RS-232C interface 1, input does not stop even though reading has stopped, even after 10 characters. This is a problem with the I/O device or the printed circuit board. |
0090–0109: Reference Position Return and Program Restart
| Code |
Message |
Meaning / action |
| 0090 |
Reference position return cannot be performed |
During reference position return, the start point is too close to the reference point or the speed is too slow, so the return cannot be completed normally. Start the return from a position far enough from the reference point, or increase the start speed and perform the reference position return. Or: a reference position return was attempted to return to the initial position when the initial position of the absolute position detector had not been established. Manually rotate the motor at least one full turn, then power the CNC and servo amplifier off and on again, and set the initial position of the absolute position detector. |
| 0091 |
Manual reference position return not possible during automatic operation pause |
Manual reference position return cannot be performed while automatic operation is paused. Manual reference position return must be performed while automatic operation is stopped or in the reset state. |
| 0092 |
Does not return to the reference position |
The axis of the G27 command did not return to the origin. Check the program you created so that it returns to the origin. |
| 0094 |
Coordinate system established after interruption |
P type cannot be specified when restarting a program (coordinate system setting was performed after automatic operation was interrupted). Refer to the manual and perform the correct operation again. |
| 0095 |
External workpiece offset amount changed after interruption |
P type cannot be specified after program restart (the external workpiece offset amount changed after automatic operation was interrupted). Refer to the manual and perform the correct operation again. |
| 0096 |
Workpiece offset amount changed after interruption |
P type cannot be specified after program restart (the workpiece offset amount changed after automatic operation was interrupted). Refer to the manual and perform the correct operation again. |
| 0097 |
No automatic operation after power-on |
A command cannot be issued for the P type program when restarting (automatic operation has never been performed after power-on, emergency stop, or reset alarms 094 to 097). Perform automatic operation. |
| 0098 |
G28 found in search |
After power-on or emergency stop, a program restart command was issued without performing reference position return, and a G28 command was found during the search. Perform reference position return. |
| 0099 |
Movement was made with an MDI command after the search |
After the search was completed, a movement command was issued with MDI by restarting the program. |
| 0109 |
Movement command issued with MDI using search |
After the search was completed, a movement command was issued with MDI by restarting the program. |
0110–0129: Custom Macro Errors
| Code |
Message |
Meaning / action |
| 0110 |
G08 format error |
The value of P after G08 is not 0 or 1, or no command was issued. |
| 0111 |
Calculation result out of allowable range |
During calculation, the decimal value (floating-point data) exceeded the allowable range. |
| 0112 |
Divisor is 0 |
The divisor of a division in a custom macro statement is 0. |
| 0114 |
Macro format error |
There is an error in the expression in the custom macro statement, or the format of the parameter program is wrong. |
| 0115 |
Illegal variable number |
The specified number cannot be used for a custom macro local variable, common variable, or system variable. A nonexistent custom macro variable number was specified in the EGB axis skip function or flexible synchronous control skip function (G31.8). Or there are not enough custom macro variables to store the skip position. |
| 0116 |
A variable number that cannot be assigned was used |
In a custom macro statement, a variable that can only be used on the right side of an expression was used on the left side. |
| 0118 |
Bracket nesting overflow |
The number of square brackets in the custom macro statement exceeded the allowable range. The limit for square brackets is 5, including those inside functions. |
| 0119 |
Illegal argument specification |
The argument value of a function in a custom macro is out of the allowable range. |
| 0122 |
Macro call nesting exceeded maximum |
The number of custom macro calls exceeded the allowable limit. |
| 0123 |
Macro command cannot be used during DNC |
The main program in DNC mode contains a GOTO or WHILE-DO statement. |
| 0124 |
DO~END instruction not supported |
The END instruction corresponding to the DO instruction in the custom macro statement was not found. |
| 0125 |
Formula format error |
The custom macro statement format is wrong. |
| 0126 |
DO statement error |
The number of DO and END statements in the custom macro is incorrect or out of the allowable range (1 to 3). |
| 0127 |
NC and macro commands mixed |
An NC statement and a macro statement were specified in the same block. |
| 0128 |
Illegal macro sequence number |
The sequence number specified in the sequence number search was not found. The sequence number specified as the jump destination by GOTO- or M99 P- was not found. |
| 0129 |
Illegal argument address |
An address that cannot be used as a macro call argument is being used. Check whether the address is allowed for macro calls. If the axis address of an extended axis name is specified as an argument, check the setting of parameter 11647. |
0130–0139: PMC Axis Control
| Code |
Message |
Meaning / action |
| 0130 |
NC and PMC axis command conflict |
The NC command and the PMC axis control command conflict. Correct the program or the ladder. |
| 0136 |
Other axis cannot be controlled simultaneously |
The spindle positioning axis and another axis were specified in the same block. |
| 0137 |
Spindle indexing M and axis movement command issued simultaneously |
The spindle positioning axis and another axis were specified in the same block. |
| 0139 |
PMC axis cannot be selected |
A PMC axis was selected as an axis under PMC axis control. |
0140–0149: Scaling, Coordinate Rotation, Polar Coordinate Interpolation
| Code |
Message |
Meaning / action |
| 0140 |
Program number already selected |
You tried to select or delete the background program currently selected in the foreground. Perform the correct background editing operation. |
| 0142 |
Illegal scale factor |
The scale factor is 0 or greater than 10,000. Correct the scale factor setting (G51 P_… or G51 I_J_K_… or parameters No. 5411, No. 5421). |
| 0143 |
Command value exceeded maximum |
An overflow occurred in the CNC internal data storage length. This alarm occurs when an internal calculation result of scaling, coordinate rotation, cylindrical interpolation, etc. exceeds the data storage length. It also occurs when a manual intervention amount is input. |
| 0144 |
Illegal arc or plane |
The coordinate rotation plane must coincide with the arc or the tool radius / tool nose R compensation plane. Correct the program. |
| 0145 |
Polar coordinate interpolation error |
In polar coordinate interpolation mode, the axis numbers of the plane selection parameters (No. 5460 linear axis, No. 5461 rotary axis) are not within 1 to the number of controlled axes. |
| 0146 |
A G code that cannot be commanded |
When entering or canceling polar coordinate interpolation mode, some G codes are not allowed in the modal G code group. The following G codes are required: G40, G50.1 and G69.1. If you are already in polar coordinate interpolation mode, the G code you specified is not allowed. The following G codes cannot be specified: G27, G28, G30, G31 to G31.4, G37 to G37.3, G52, G92, G53, G17 to G19, G81 to G89 and G68. In the G code group, no G code other than G01, G02 and G03 can be specified. |
| 0149 |
G10 L3 format error |
When registering tool life management data (G10 L3 to G11), an unusable address other than Q1, Q2, P1 or P2 was specified. |
0150–0159: Tool Life Management
| Code |
Message |
Meaning / action |
| 0150 |
Tool group number out of range |
The tool group number exceeds the allowable maximum. The tool life management T code command in the machining program (G10 L3; after the P command) or the tool group number exceeds the maximum value. |
| 0151 |
Tool group not set |
The tool group specified in the machining program is not set in the tool life management data. |
| 0152 |
Number of tools exceeded maximum |
The number of tools registered in a group has exceeded the maximum number that can be registered. |
| 0153 |
T code not found |
When recording tool life data, no T code was specified in the block where a T code should have been specified. Or in tool change method D, only the M06 command was executed. Correct the program. |
| 0154 |
No group command |
Tool management command: an H99 or D99 command was issued when no tool management data number was assigned to the spindle position. Correct the program. Tool life management command: an H99 command, D99 command, or the H/D code set in parameters (No. 13265, 13266) was issued when no tool in the group was in use. |
| 0155 |
T code not in the group in use |
The T code in the same block as M06 in the machining program does not match the group currently in use. Correct the program. |
| 0156 |
P/L command missing for tool group setting |
There is no P or L command that sets the tool group at the beginning of the program. Correct the program. |
| 0157 |
Number of tool groups exceeded maximum |
When registering tool life management data, the number of group setting command blocks for P (group number) and L (tool life) exceeded the maximum number of groups. |
| 0158 |
Tool life value out of range |
The life value you tried to set is too large. Change the setting. |
| 0159 |
Illegal tool life data |
The tool life management data is corrupted for some reason. Re-register the tool group and the tool data in it using G10 L3 or MDI input. |
0160–0169: Waiting M Code, Balanced Cutting
| Code |
Message |
Meaning / action |
| 0160 |
Illegal waiting M code |
There is a problem with the waiting M code in these cases: (1) the waiting M codes differ between path 1 and path 2 and there is no P command; (2) the waiting M codes do not match even though the P commands are the same; (3) the waiting M codes match but the P commands do not (when the P command is specified as a binary value); (4) the waiting M codes match but the P command combination numbers differ (when the P command specifies a path number combination); (5) a waiting M code with no P command (two-path waiting) and a waiting M code with a P command (three or more path waiting) were issued at the same time; (6) a waiting M code with no P command was issued to three or more path groups; (7) a start-point waiting M code and a waiting M code with no P command were issued at the same time; (8) the waiting M code set in parameters (No. 8110, 8111) is used for peripheral axis control. |
| 0161 |
P in waiting M code is invalid |
P in the waiting M code is invalid when: (1) the value of address P is negative; (2) a P value contradicting the path configuration was issued; (3) a waiting M code with no P command (two-path waiting) was issued on a system with three or more paths; (4) P7 and L0 were issued at the same time. |
| 0163 |
Illegal G68/G69 command |
In balanced cutting, G68/G69 was not specified alone. The value of the balanced cutting combination specification (address P) is invalid. |
| 0169 |
Illegal tool geometry data |
The tool shape data is incorrect during interference checking. Set the data correctly or select the correct tool shape. |
0175–0178: Cylindrical Interpolation, G05 Mode
| Code |
Message |
Meaning / action |
| 0175 |
Cylindrical interpolation error |
An axis for which cylindrical interpolation cannot be performed was specified. Two or more axes were specified in a G07.1 block. When canceling cylindrical interpolation, an axis not in cylindrical interpolation mode was specified. When specifying an arc for a cylindrical interpolation axis using a rotary axis (parameter ROT, No. 1006 #0 = 1 and No. 1260 set), parameter No. 1022 should be set to one of the parallel axis specification values 5, 6 or 7, not 0. |
| 0176 |
A G code that cannot be commanded |
An invalid G code was specified in cylindrical interpolation mode. This alarm occurs when the G code in group 01 is in G00 mode or G00 was specified. Cancel cylindrical interpolation mode before specifying G00. |
| 0177 |
Checksum error (G05 mode) |
Checksum error. |
| 0178 |
G05 is in a state where it cannot be commanded |
This alarm is triggered when: (1) the parameter setting (No. 7501 #4 to #6) is invalid; (2) a G05 command was executed in one of these modes — cylindrical interpolation (G07.1), polar coordinate interpolation (G12.1), polar coordinate command (G16), spindle speed fluctuation detection (G26), tool diameter / cutting edge R compensation (G41/G42), normal direction control (G41.1/G42.1), scaling (G51), programmable mirror (G51.1), coordinate rotation (G68), fixed cycle (G81 to G89), constant surface speed (G96), macro interrupt (M96); (3) a G05 command was executed on an axis with both the servo disable function and magnetic pole position detection enabled. |
0190–0197: Constant Surface Speed and Cs Contour Control
| Code |
Message |
Meaning / action |
| 0190 |
Illegal axis specification |
The P value specified in the G96 block or the value of parameter No. 3770 is wrong. If spindle selection by the multi-spindle address P or by the extended spindle name is enabled, the selection command (G96 P_;) for the reference axis of constant surface speed control calculation cannot be issued. |
| 0194 |
Synchronous axis cannot be controlled as a spindle |
A Cs contour control mode, spindle positioning command, or rigid tapping mode command was issued in spindle synchronous control mode or simple spindle synchronous control mode. |
| 0197 |
Movement command cannot be executed because CON is 0 |
A movement command was issued to the Cs axis by the program while the Cs contour control switch signal was off. |
0200–0207: Rigid Tapping
| Code |
Message |
Meaning / action |
| 0200 |
Spindle speed command out of range |
The S value for rigid tapping is out of range or not specified. The setting values of parameters No. 5241 to 5243 are the S values that can be specified for rigid tapping. Check the parameter setting or correct the program. |
| 0201 |
No feedrate command |
The cutting feedrate command F code is 0. When a rigid tapping command is issued, if the F command is very small compared with the S command, the programmed lead is insufficient to cut the material, and this alarm occurs. |
| 0202 |
Spindle distribution too high |
The spindle distribution amount is too large for rigid tapping. (System error) |
| 0203 |
Illegal rigid tapping command |
For rigid tapping, the rigid M code (M29) or the S command position is invalid. Correct the program. |
| 0204 |
Axis movement between rigid M code and G84 |
In rigid tapping, axis movement is commanded between the rigid M code (M29) and the G84 (G74) block. Correct the program. |
| 0205 |
Rigid mode DI off |
Although the rigid mode command (M29) was issued in the rigid mode tapper, the rigid mode DI signal was not turned on when the G84 (G74) block was executed. Analyze why the DI signal is not turned on based on the PMC ladder. |
| 0206 |
Plane switching is not possible in rigid mode |
A plane switching command was executed in rigid mode. Correct the program. |
| 0207 |
Data does not match |
The rigid tapper lead is too short or too long. |
0210–0224: Synchronous Control and Polygon Machining
| Code |
Message |
Meaning / action |
| 0210 |
M198/M99 cannot be executed |
(1) M198 or M99 was executed during scheduled operation, or M198 was executed during DNC operation. Correct the program. (2) During pocket machining of a compound fixed cycle, an interrupt macro command was issued and M99 was executed. |
| 0213 |
Movement command issued to a synchronous axis |
During synchronous operation of feed axis synchronous control, one of these errors occurred: (1) a movement command was issued to the slave axis in the program; (2) a manual operation (jog feed, incremental feed) was performed on the slave axis; (3) an automatic reference position return command was issued after power-on without performing a manual reference position return. |
| 0214 |
Coordinate system setting and tool compensation cannot be performed |
Coordinate system setting or offset-type tool compensation was executed during synchronous control. Correct the program. |
| 0217 |
G51.2 commanded twice |
A G51.2 command was issued again in polygon mode. Correct the program. |
| 0218 |
P/Q not specified |
In a G51.2 block, P or Q was not specified, or a value out of range was specified. Correct the program. For inter-spindle polygon machining, details of this alarm cause are displayed in diagnosis data No. 0471. |
| 0219 |
Not an independent block |
G51.2 and G50.2 are in the same block as other commands. Place them in separate blocks to correct the program. |
| 0220 |
Synchronous axis has an axis movement command |
During synchronous operation, a movement command was issued to the synchronous axis by the NC program or the PMC axis control system. Correct the program or check the PMC ladder. |
| 0221 |
Invalid synchronous axis pointer |
An attempt was made to execute polygon cutting synchronous operation and Cs contour control or balanced cutting at the same time. Correct the program. |
| 0224 |
Return to the reference position |
Reference position return was not performed before starting automatic operation (only when parameter ZRNx, No. 1005 #0, is 0). Perform reference position return. |
How to Work With a P/S Alarm on the Floor
- Read the exact text on your screen first. Alarm messages vary by series and software version; the on-screen text is always authoritative over any list, including this one.
- Most P/S alarms are program errors, not hardware faults. Do not swap parts before you have read the program block the alarm points to.
- For program-related alarms, display the program at the block where the alarm occurred and check the G code, addresses, and modal state.
- For parameter-related alarms (G10, offsets, tool life), verify the setting against the machine builder’s original parameter sheet before changing anything, and back up parameters first.
- Check the alarm history (MESSAGE → alarm history) — a recurrent P/S alarm often leaves a trail that identifies the true cause.
For no-alarm hidden faults — where nothing appears on screen at all — see FANUC No-Alarm Fault Diagnosis: DGN000 / 003 / 005. For servo-side alarms see FANUC Servo Alarm Code Cross-Reference SV0301-SV0441.
Disclaimer: This article is a personal compilation organized from FANUC alarm documentation and field reference material, then translated and grouped by code range. Alarm messages, descriptions, and related parameter numbers vary by system model and software version. Always follow the text displayed on your machine and the corresponding official manual. Changing parameters can affect machine motion and safety — complete a parameter backup first.
Frequently Asked Questions (FAQ)
1. What does a FANUC P/S alarm mean?
P/S stands for Program or Setting. A P/S alarm means the CNC rejected something in the part program or in a data setting — an invalid G code, a bad offset number, a macro format error, a reference-position-return problem, and so on. It is not a hardware failure signal. Most P/S alarms are cleared by correcting the program or the setting, not by replacing parts.
2. My screen shows P/S alarm 0020 — what should I check?
Alarm 0020 means the arc radius difference is too large: in the arc command you issued, the difference between the radius values computed at the start point and the end point exceeds the value set in parameter 3410. Check the arc center commands I, J and K in the program. Note that if you increase parameter 3410 to suppress the alarm, the path becomes a spiral rather than a true arc — so fix the program rather than loosening the parameter.
3. Why do I keep getting alarm 0090 on reference position return?
Alarm 0090 means reference position return cannot be completed. The usual causes are: the start point is too close to the reference point, or the start speed is too slow, so the return cannot finish normally. Start the return from a position further away, or increase the start speed. The other common cause is that the initial position of the absolute position detector has not been established — in that case, manually rotate the motor at least one full turn, power the CNC and servo amplifier off and on again, then set the absolute position detector’s initial position.
4. Can I just raise a parameter to clear a P/S alarm?
Sometimes a parameter is genuinely set wrong and correcting it is the right fix. But raising a tolerance parameter to make an alarm go away usually hides the real error and changes the machined result. Two examples from this list: increasing parameter 3410 for alarm 0020 turns the arc into a spiral, and loosening settings for tool compensation alarms can produce overcutting. The right order is: read the on-screen alarm text, inspect the program block, verify the setting against the machine builder’s original parameter sheet, back up parameters, then change and verify.
暂无评论内容