Skip to content

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

  • plc-sequences.md - the logic that raises these
  • control-logic-spec.md - where each function lands in LinuxCNC
  • io-map.md - the inputs behind each check