Working documentation
This page is generated from the project's working notes. It records a real retrofit in progress, corrections included. Anything marked ๐ด or โ ๏ธ is unresolved or carries a caveat - read those before acting.
PLC fault codes, in English¶
3 September 2026. The machine's own fault dictionary, recovered by joining the error constants in MW310.PLC to the English message file Mw310/English/error.txt.
95 of the 103 defined codes are actually raised somewhere in the PLC. They are all here.
Why this is worth having¶
๐ด These are the faults the machine knows how to detect, in the words the operator has been reading for 24 years. When LinuxCNC replaces the PLC it should raise the same faults with the same meanings โ an operator who has run this machine will recognise "Error: check general vacuum" and know exactly what to do.
It is also a checklist: every code here is a condition the original thought worth detecting. Anything the LinuxCNC build cannot detect is a capability quietly lost.
How the codes are built¶
EQU ERR7, 020103EEH ;1006 err check VUOTO GENERALE
โ โ โโ 03EE hex = 1006 decimal
โ โโโโโ 02 01 = section 02 (PLC), subsection 01
โโโโโโโโโโโ the constant the code uses
So the operator sees 2.1.1006 and the PLC source says COPY ERR7,V_ERRPLC.
๐ด The ones that matter most for this machine¶
These are raised by conditions this machine actually has, and each is an interlock the LinuxCNC build should reproduce:
| Code | Means | Reproduce with |
|---|---|---|
| 1000-1002 | Axis U / V / W against overtravel | IF.22/IF.23/IF.24 โ LinuxCNC limit inputs |
| 1003 | Inverter speed-reached went low during a cut | IF.25 โ spindle.0.at-speed, and watch it while running |
| 1004 | Tool presence / piston-up check failed | IF.17 + IF.20, in the M6 remap |
| 1006 | General vacuum check | IF.9, gated on program running - see plc-sequences.md ยง2d |
| 1011 | Insufficient oil level | IF.45 |
| 1029 | Hold with axes in tolerance | The HOLD chain, IF.7 + photocells |
| 1042 | Carousel position wrong - commanded bits โ echoed bits | Implemented in toolchange.ngc as an abort |
| 1043-1045 | Gripper / carousel timeouts | The M66 timeouts in toolchange.ngc |
โ ๏ธ 1003 is worth singling out. The original does not merely wait for the spindle to reach speed โ it keeps watching, and faults if speed is lost mid-cut. A naive LinuxCNC config waits once at M3 and never looks again. Wire IF.25 to spindle.0.at-speed and leave it connected.
Every code raised in the PLC¶
โ ๏ธ Many of these are for hardware this machine does not have - loaders, bar feeders, tie rods, tool changers 1-5 and 7-11, sensor probes, Anuba hinge units. They are listed because the PLC is a generic multi-model program; the presence of a code is not evidence the hardware is fitted. Check the I/O map before assuming.
| Code | Const | Uses | Message |
|---|---|---|---|
| 1000 | ERR1 |
1 | Axis U against emergency limit switch. |
| 1001 | ERR2 |
1 | Axis V against emergency limit switch. |
| 1002 | ERR3 |
1 | Axis W against emergency limit switch. |
| 1003 | ERR4 |
1 | Input 'inverter 1 speed reached' came down during execution. |
| 1004 | ERR5 |
3 | Error: check input "Tool presence" and "Piston up". |
| 1005 | ERR6 |
26 | Error: check "Tool presence" and the routing bit fitted. |
| 1006 | ERR7 |
2 | Error: check general vacuum. |
| 1007 | ERR8 |
4 | Error: check vacuum in area A. |
| 1008 | ERR9 |
2 | Error: check vacuum in area D. |
| 1009 | ERR10 |
1 | Incorrect blade direction. |
| 1010 | ERR11 |
1 | Boring unit microswitch NOT backward or screwing unit forward. |
| 1011 | ERR12 |
2 | Insufficient oil level. |
| 1016 | ERR17 |
1 | Error: check vacuum in area B. |
| 1017 | ERR18 |
1 | Error: check vacuum in area C. |
| 1018 | ERR19 |
1 | Pressure control in area 1. |
| 1019 | ERR20 |
1 | Pressure control in area 2. |
| 1020 | ERR21 |
1 | Tool present in tool changer in reset phase. |
| 1021 | ERR22 |
1 | Workpiece missing during sensor operation on axes X/Y. |
| 1023 | ERR24 |
6 | Tie rod 1 OK went down after 5 retries, T.C.4. |
| 1024 | ERR25 |
6 | Tie rod 2 OK went down after 5 retries, T.C.4. |
| 1025 | ERR26 |
1 | Error: T.C.1 clamps forward before a reset. |
| 1026 | ERR27 |
1 | Error: T.C.2 clamps forward before a reset. |
| 1027 | ERR28 |
1 | Error: T.C.3 clamps up before a reset. |
| 1028 | ERR29 |
1 | Error: finger curtain input down during execution. |
| 1029 | ERR30 |
1 | Error: Hold with axes in tolerance. |
| 1030 | ERR31 |
1 | Overloaded pin in reset phase. |
| 1031 | ERR32 |
1 | Workpiece not positioned against stop within TIME42. |
| 1032 | ERR33 |
1 | Loader bar off stroke limit. |
| 1033 | ERR34 |
2 | Pin not set in within 7 seconds |
| 1035 | ERR36 |
1 | IF_RALLEDX or IF_RALLESX or IF_PEZZOENT or IF_PEZZOUSC high |
| 1036 | ERR37 |
2 | Bar moved manually using the selectors unless the bar |
| 1037 | ERR38 |
1 | Bar not positioned when switching over from "loader off" |
| 1038 | ERR39 |
1 | Sensor operation error. |
| 1039 | ERR40 |
1 | Aggregated tool inputs low during manual workpiece unloading. |
| 1040 | ERR41 |
1 | Jogger not backward during manual workpiece unloading. |
| 1041 | ERR42 |
6 | Tie rod 3 OK went down after 5 retries, T.C.4. |
| 1042 | ERR43 |
2 | Control of position in T.C.6: results erroneous. |
| 1043 | ERR44 |
4 | Control of position in T.C.7: results erroneous. |
| 1044 | ERR45 |
4 | Control of position in T.C.8: results erroneous. |
| 1045 | ERR46 |
1 | Clamp not down during circular T.C.6 rotation. |
| 1046 | ERR47 |
1 | Clamp not down during circular T.C.7 rotation. |
| 1047 | ERR48 |
1 | Clamp not down during circular T.C.8 rotation. |
| 1048 | ERR49 |
1 | T.C.7 recalled while already in use (M16). |
| 1049 | ERR50 |
1 | T.C.8 recalled while already in use (M16). |
| 1050 | ERR51 |
1 | Boring head down while spindle is tilting. |
| 1051 | ERR52 |
1 | Axis I against emergency limit switch. |
| 1052 | ERR53 |
2 | Control of position in T.C.9: results erroneous. |
| 1053 | ERR54 |
1 | Clamp carriage not home during T.C.9 rotation. |
| 1054 | ERR55 |
1 | T.C.9 recalled while tool change is being performed (M16). |
| 1055 | ERR56 |
1 | Check error: Routing bit fitted on RIGHT-locking clamp when |
| 1056 | ERR57 |
1 | Check error: Routing bit fitted on LEFT-locking clamp when |
| 1057 | ERR58 |
1 | Safety enclosure micro. tripped |
| 1058 | ERR59 |
3 | Machine in duty (one or more loader photo-cells are up) |
| 1059 | ERR60 |
1 | 7 sec. timeout tie-rod OK in T.C. with Colombo spindle 1 |
| 1060 | ERR61 |
1 | 7 sec. timeout tie-rod OK in T.C. with Colombo spindle 2 |
| 1061 | ERR62 |
1 | 7 sec. timeout tie-rod OK in T.C. with Colombo spindle 3 |
| 1063 | ERR64 |
6 | Non-CE manual T.C. confirmed unless the tool was unloaded. |
| 1064 | ERR65 |
1 | Axis U parking position in area 1 beyond machine centre line, |
| 1065 | ERR66 |
1 | Axis U parking position in area 2 beyond machine centre line, |
| 1066 | ERR67 |
7 | Tool 1 presence after 5 tries, for HSK cones |
| 1067 | ERR68 |
7 | Tool 2 presence after 5 tries, for HSK cones |
| 1068 | ERR69 |
7 | Tool 3 presence after 5 tries, for HSK cones |
| 1069 | ERR70 |
1 | Input 'inverter 2 speed reached' came down during execution. |
| 1070 | ERR71 |
1 | Input 'inverter 3 speed reached' came down during execution. |
| 1071 | ERR72 |
1 | Input 'inverter 4 speed reached' came down during execution. |
| 1072 | ERR73 |
3 | T.C.9 tool-holder is occupied and clamp is full. |
| 1073 | ERR74 |
3 | Tool change not admitted with CE manual tool changer. |
| 1074 | ERR75 |
3 | Non-pertinent angle with CE manual tool changer. |
| 1075 | ERR76 |
1 | Impossible to release area 1 |
| 1076 | ERR77 |
1 | Impossible to release area 2 |
| 1077 | ERR78 |
1 | Malfunction of input WORKPIECE FED OUT (photocell came up and down in less then 1 sec) |
| 1078 | ERR79 |
1 | Section A emergency output came down |
| 1079 | ERR80 |
1 | Section B emergency output came down |
| 1080 | ERR81 |
1 | Section C emergency output came down |
| 1081 | ERR82 |
1 | Section D emergency output came down |
| 1082 | ERR83 |
1 | Section E emergency output came down |
| 1083 | ERR84 |
1 | Section F emergency output came down |
| 1084 | ERR85 |
1 | Section G emergency output came down |
| 1085 | ERR86 |
1 | Section H emergency output came down |
| 1086 | ERR87 |
1 | Section I emergency output came down |
| 1087 | ERR88 |
1 | Section L emergency output came down |
| 1088 | ERR89 |
1 | Input GREASER PRESSURE OK came down after 7 sec. |
| 1089 | ERR90 |
1 | Low GREASER level |
| 1090 | ERR91 |
1 | Input TOOL 1 PRESENCE came down after 5 tries, for T.C.9 |
| 1091 | ERR92 |
1 | Input TOOL 2 PRESENCE came down after 5 tries, for T.C.9 |
| 1092 | ERR93 |
1 | Input TOOL 3 PRESENCE came down after 5 tries, for T.C.9 |
| 1093 | ERR94 |
1 | Cooler fluxgauge input came down |
| 1094 | ERR95 |
1 | Conditioner fault input came down |
| 1095 | ERR96 |
1 | Safety mats occupied |
| 1096 | ERR97 |
4 | Value zero (0) in axis S JOG |
| 1097 | ERR98 |
3 | Hold with SWITCH_PLC set on Bit 7 |
| 1098 | ERR99 |
2 | JOG on TC6 with carriage not back or clamp not down |
| 1103 | ERR104 |
1 | Timeout for hinge sensing |
| 1104 | ERR105 |
1 | (no English text) |
| 1105 | ERR106 |
1 | (no English text) |
TOTAL referenced in code: 95 of 103 defined
Related¶
plc-sequences.md- the logic that raises thesecontrol-logic-spec.md- where each function lands in LinuxCNCio-map.md- the inputs behind each check