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.
Operating the MW310 โ the file model, tool numbering, and how a job runs¶
5 September 2026. From the machine's own disk: PROG\, Utensili\, Defs\, tabuten.tmp, English\ISO.TXT, English\messaggi.txt, and the MW310.PLC comments.
โ ๏ธ This is not a manual and there isn't one on the box โ the only English document on the machine is MSystem\EN - Working with DXF.doc, which is about DXF import. What follows is reconstructed from the machine's own files, including two real working job programs left by a previous owner. Where I am inferring rather than reading, it says so.
โ ๏ธ Nothing here is an instruction to run anything. Running a program moves the head and rotates a loaded carousel.
1. The file model¶
Four kinds of file, and they stack:
| Where | What it is | |
|---|---|---|
| Tool | Utensili\*.utn |
One file per cutter or bit โ diameter, length, speed, description |
| Program | PROG\*.PRG |
The actual toolpath, in Masterwood ISO |
| Sequence | PROG\*.seq |
Assigns programs to the machine's fields, with the panel size |
| Tool table | tabuten.tmp |
The live list of what is loaded where. Generated, not hand-edited |
A job is: tools defined โ program written โ program placed in a sequence โ sequence run.
The tool file, .utn¶
Thirteen lines, no labels. Decoded by comparing several:
1 type: 1 = router cutter, 0 = drill
0
950 diameter, hundredths of a mm -> 9.50 mm
8180 length, hundredths of a mm -> 81.80 mm
18000 spindle speed, rpm (0 for drills)
0
9.5 Finishing Cutter <- description, this is what shows on screen
Fresa 1.bmp <- icon
1
20
0
0
โ ๏ธ Lines 2, 9, 10, 11 and 12 are not identified. Line 10 varies (20, 5, 25, 0) and is not the carousel pocket โ see below.
โ ๏ธ The filenames lie. 6mm router.utn contains the description "9.5 Finishing Cutter". Trust the description inside the file and the tool table, not the filename.
The sequence file, .seq¶
PROG\Singolo.seq, complete:
C1 to C4 are the four fields โ the machine's A/B/C/D. On this machine only C1 (zone 1) and C4 (zone 2) correspond to real hardware; B and C have no stops or clamps fitted (see zones-and-loading.md).
The three numbers after the program name are length, thickness, width โ 800 16 500. Confirmed because they match the |4 |5 |6 header of P20000.PRG exactly.
R1 is the repeat count.
The program header¶
Every .PRG opens with a numbered block:
Read off Window Box Facia no holes.PRG (2700 ร 1215 ร 6.10) and P20000.PRG (800 ร 500 ร 16). The other header lines are not identified.
2. ๐ด The tool numbering, from this machine's own table¶
tabuten.tmp is the live tool table, and it decodes the T word completely:
1 : 4mm vertical drill bit
2 : 8 mm vertical drill bit
4 : 35mm vertical drill bit
5 : 10 mm vertical drill bit
6 : 5 mm vertical drill bit
7 : 5 mm vertical drill bit
8 : 5 mm vertical drill bit
9 : 5 mm vertical drill bit
10 : 5 mm vertical drill bit
25/1 : 80 mm router
25/2 : 9.5mm MDF Cutter
25/3 : J Pull
25/4 : 6mm Cutter
25/5 : 9.5 Finishing Cutter
Two different things share the T word:
| Form | Means |
|---|---|
T1 โฆ T10 |
A fixed drill spindle. No tool change โ the PLC just fires that spindle's output |
T25/n |
The router, with carousel pocket n. This is what triggers a tool change |
So 25 is the router head and the number after the slash is the pocket. That matches ISO.TXT, which describes the T word as "Tool number (T),(Tn,m,..),Tool changer (Tn/m)" โ the Tn/m form is the tool-changer form.
โ This is the machine's own working data, not a guess. Five tools were loaded in pockets 1 to 5.
โ ๏ธ Whether those five are still physically in those pockets is unknown. Check the carousel against this list before running anything โ the tool table is software state, and if it disagrees with the metal, the tool change will fault (see atc-operation.md).
3. ๐ด How a tool change is actually commanded¶
Not by an M-code. The tool is declared in the routing setup block, and both real programs on the machine do exactly this:
G172 |
Selection of start point, tool, speed, entry speed |
X Y Z |
Start point |
S18 |
Routing speed |
E1 |
Entry (penetration) speed |
T25/2 |
Router, carousel pocket 2 โ the 9.5 mm MDF cutter |
When the interpreter meets a G172 (or G173) asking for a tool that is not the one mounted, it raises OS.51, and that is what starts the PLC's tool-change cycle. M60 unloads a tool without loading another, taking K as the spindle number.
โ ๏ธ S18 is unexplained. The tool file for a 9.5 mm cutter carries 18000 rpm, so S18 is most likely thousands of rpm โ but that is inference. Do not rely on it.
4. How a job runs, start to finish¶
Reconstructed from the PLC's own comments plus the zone logic:
1. Choose the sequence / program
2. Press F5 = ESECUZ (Execution)
-> runs JOB 54, which loads the program into the field(s)
-> starts JOB 5, the supervisor
3. JOB 5 enables that zone's pedal and lights its lamp
4. Clamp the panel with the pedal
press+release once -> stops up, table floats, vacuum off
press+release again -> panel set down, vacuum on, lamp steady
5. Press that zone's START button (IF.1 zone 1, IF.2 zone 2)
6. The program runs. Each G172 with a new T25/n fires a tool change.
F5 is the execution key. MW310.PLC names it three times:
;*** JOB #54 INIZIALIZZAZIONE PROGRAMMA NEI 2 CAMPI (CON TASTO F5-ESECUZ) ***
;*** FINE INIZIALIZZAZIONE JOB 5 CON TAST F5-ESECUZ
;*** (SIA PER TASTO F5-ESECUZ CHE PER BAR CODE)
๐ด Step 2 is the one that is easy to miss. Nothing arms โ not the pedal, not the start button, not the tool changer โ until a program has been loaded with F5. Until then the machine is inert by design, and the pedal genuinely does nothing.
5. There are two working programs already on the machine¶
Both left by a previous owner, both in English, and both perform tool changes:
PROG\Window Box Facia no holes.PRG |
2700 ร 1215 ร 6.10. Several G172 โฆ T25/2 blocks with G41/G42 cutter compensation and G102/G103 arcs |
PROG\P20000.PRG |
800 ร 500 ร 16. Simpler โ two rectangles, both on T25/2 |
P20000.PRG is the better one to read, and probably the better one to study before writing anything: it is short, it is a plain rectangle, and it shows the whole structure.
What the programs show about the coordinate convention¶
DX and DY are the panel dimensions from the header. Every Y coordinate is computed as DY โ offset, so the programs are written from the far Y edge, not from zero. Worth knowing before reading any coordinate in them, and worth reproducing or deliberately not reproducing when the CAM post is written.
G101 is linear, G102/G103 are arcs, G41/G42 are cutter compensation left/right, G40 cancels it, G120 K1 opens the working face.
6. The setup screens, with their real labels¶
The Defs\*.def files are the HMI screen layouts. Each field points at an index into messaggi.txt, so the English labels can be recovered exactly:
Tool magazine (Magazzino.def) โ the carousel itself:
| Field | Screen label |
|---|---|
TIPO |
Tool magazine type |
QUOTA_CARICO |
Coupling value |
QUOTA_SCARICO |
Releasing value |
Carousel tool (UtensileCU.def) โ one row per pocket:
| Field | Screen label |
|---|---|
NUMERO |
Number |
TIPO |
Type |
QUOTA1 / QUOTA2 |
Value 1 / Value 2 |
ANGOLO |
Ref. t. |
EN_BAND |
Enable finger curtain |
LANCIO |
Projection |
Router spindle (MandrinoCU.def):
| Field | Screen label |
|---|---|
OFF_U / OFF_V / OFF_W |
Offset U / V / W |
VMAX |
Rot.spd. |
V10V |
VRot.10V โ the rpm at 10 V, i.e. the analog spindle scaling |
TIPO_CU |
T.C. |
TIPO_LAN |
Projection |
๐ด VRot.10V is worth finding on screen. It is the machine's own record of how many rpm the spindle turns for a 10 V command โ which is exactly the number the LinuxCNC spindle scaling needs, and it is sitting in a settings screen rather than having to be measured.
7. ๐ด Running without a vacuum pump¶
Short answer: yes, you can, and the machine has a designed switch for it.
The vacuum check is CHK_VUOTO, and it is gated three ways. It fires only when all of these hold:
| Gate | |
|---|---|
MCHK_VUOTO |
Armed by OS.24 at program start and disarmed by the same bit at program end. Outside a running program the check does not exist at all |
MFLAG_VUOTO_A (or _D) |
The per-field Vacuum toggle. Off for that field โ skipped entirely |
MPRGCAMPOA (or _D) |
That field must be the one executing |
not MEND_CYCLE_PARK |
No check during end-cycle or park |
Plus a 2 second grace period (DEL1 โฆ DUESECONDI) after it arms, so a pump still spinning up is not an instant fault.
CHK_VUOTO_04
AND MAPPOGGIO,MFLAG_VUOTO_A,MPRGCAMPOA
TEST MAPPOGGIO ;vacuum A ON *and* A executing ?
JPNZ CHK_VUOTO_GENERALE ;only then is IF.9 tested
If it does fire and IF.9 is low, the fault is 1006.
The switch to use¶
Turn the field's Vacuum toggle OFF on the clamping setup screen โ the same screen that carries PEDALE / AUTO for the stops (zones-and-loading.md ยง10). It writes bit 0 (field A) or bit 3 (field D) of VTIPO_VUOTO, VV.33.
That is the machine's own mechanism for a job that does not use vacuum โ a jig, a template, a mechanically clamped part โ not a workaround.
ISO.TXT also lists M203 VACUUM CONTROL MANAGEMENT, taking K as a parameter list, so a program can manage it too. The parameter list is not documented on the box.
What is unaffected either way¶
- Jogging, homing, setup and manual moves โ no program running, so no check
- Clamping and START โ
MBLOCCO_PEZZOis set by the pedal cycle and never readsIF.9 - The tool change โ JOB 48 does not test vacuum anywhere
And what the per-field sensors would have done¶
IF_VUOTO_AEI and IF_VUOTO_DHL are both on the OF.254 not-present sentinel. The only real vacuum input on this machine is the general one, IF.9. So there is a single check to satisfy or disable, not three.
โ ๏ธ The obvious caveat¶
Disabling the check does not hold the panel down. It only stops the controller complaining.
For proving the ATC, the motion and the program structure, run with nothing on the table at all โ no panel, no cutting, nothing to throw. The pedal cycle still has to be performed to set MBLOCCO_PEZZO and permit START, but it can be performed against an empty bed.
Cutting without hold-down is a different matter entirely and is not what this section is licensing.
8. What is still unknown¶
| The menu navigation | Which softkey opens which screen. F5 is established; the rest is not. This needs someone in front of the machine, or Masterwood's manual |
S18 โ units of the speed word |
Almost certainly thousands of rpm, from the tool file's 18000. Unconfirmed |
.utn lines 2, 9, 10, 11, 12 |
Not identified. Line 10 is not the pocket number |
Posizioni.dat |
40-odd rows keyed 1-22, 98-100, 200-224, 301-305, 400+. Rows 201-224 all carry 25 in column 2 โ the router โ so they are probably carousel-related, but the columns are not decoded |
The .PRG header lines other than 4/5/6 |
Not identified |
Related¶
atc-operation.mdโ the tool-change cycle itself, its timings and its faultszones-and-loading.mdโ the pedal, the lamps, and what F5 armsplc-fault-codes.mdโ all 95 fault codes in English