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.
The machine's own configuration - pargen.prm¶
3 September 2026. Param/pargen.prm is the machine's general parameter file, captured from the rp5800. It is short, plain text, and it settles several questions that were open, including one that was blocking the tool-change subroutine.
⚠️ Values are the machine's own convention: linear distances in hundredths of a millimetre.
🔴 What it resolves¶
1. The carousel bit inversion - EN_CU_6 = 8¶
The tool-change job contains:
EN_CU_6 = 8 is positive, so the branch is not taken: the pocket number goes out as-is, not inverted.
✅ #<invert_bits> = 0 in linuxcnc-sim/nc_subs/toolchange.ngc is correct - it was a default, and it is now confirmed from the machine's own configuration rather than assumed.
⚠️ 8 most likely means the carousel has 8 pockets. The other changers (EN_CU_123, EN_CU_4, EN_CU_5, EN_CU_7, EN_CU_8) are all 0, which confirms C.U. 6 is the only tool changer fitted - the eleven cycles in the PLC, only one applies. Treat the pocket count as probable rather than proven until a tool table or a look at the carousel confirms it.
2. SWITCH_PLC = 0 - the optional waits are NOT taken¶
The tool-change cycle is littered with conditionals like:
All bits of SWITCH_PLC are clear, so none of those optional waits apply to this machine. That removes a whole class of "does this branch run?" from the ATC translation.
3. Double pressure - confirmed not fitted¶
EN_DOPPIA_P = 0. This was already inferred from the absence of an output in the I/O map; the machine's own configuration now says so directly.
4. No rotary or auxiliary axes¶
EN_ASSEB, EN_ASSEC, EN_ASSEJ, EN_ASSEH, EN_ASSEP are all 0. X, Y, Z and the spindle. Nothing else. POS. ASSE S = 4 confirms again that AXIS 4 is the spindle.
⚠️ POS. ASSE C = 5 is defined but EN_ASSEC = 0, so a C axis position exists in the configuration and is disabled. Do not read it as fitted.
5. Three I/O cards¶
N.SCHEDE I/O = 3 ✅ matches the three daisy-chained I/O card assemblies found in the device list.
🔴 The zone split, found¶
| Parameter | Value | Means |
|---|---|---|
X MAX Z. 1 |
182830 | Zone 1 ends at X = 1828.30 mm |
X MIN Z. 2 |
183910 | Zone 2 starts at X = 1839.10 mm |
A 10.80 mm dead band between the two working zones. That is the boundary the two-zone logic works to, and it will be needed for pendulum working in phase 5.
| Also | Value | |
|---|---|---|
L.MAX.PAN.Z1 / Z2 |
120000 | Max panel length per zone, 1200.00 mm |
MAX.P.Z1.N.P / Z2 |
90000 | 900.00 mm - a second, smaller limit. Purpose not yet identified |
Useful for the LinuxCNC configuration¶
Jog velocities - straight into the INI¶
| Axis | Min | Max |
|---|---|---|
| U (X) | 30 | 500 |
| V (Y) | 30 | 300 |
| W (Z) | 30 | 200 |
⚠️ Units unconfirmed. The ratio X : Y : Z of 500 : 300 : 200 is consistent with the Syncro.prm velocity ceilings (30000 : 25000 : 13000), so these are plausibly mm/s or a scaled equivalent. Better than the placeholders currently in the sim INI, but confirm before trusting them for real motion.
Park positions¶
| Parameter | Value | |
|---|---|---|
Q.PARK X Z.1 |
280000 | X park = 2800.00 mm |
Q.PARK V / Q.PARK W |
0 | Y and Z park at zero |
Q.W C.U.GEN. |
0 | ⚠️ The Z height for a general tool change. Zero. The sim's toolchange.ngc currently uses 200 as a placeholder - either this parameter is unused on this machine and the height comes from elsewhere, or the change happens at Z zero. Settle before running the ATC on the machine |
Other values worth having¶
| Parameter | Value | |
|---|---|---|
TIPO INVERT. |
2 | Inverter type 2 |
EN_BARCODE |
2 | A barcode reader is configured - unexpected, and not seen in the I/O map. Worth a look |
EN_BARRIERA |
0 | No light barrier |
EN_SCHED_ANA |
0 | The "new analogue card" branch in the PLC does not apply |
EN_CAMPO_INT |
1 | Internal field enabled |
DIS.SPEC. |
20000 | 200.00 mm |
Q_ANTICOLL_V |
265 | 2.65 mm anti-collision allowance |
NUM.ATT.PU |
3 | 3 - probably a drill-related count |
RALL.FV.IN. / USC. |
100 | Feed ramp in / out |
⚠️ There is a second, older copy¶
Mw310-Copy-backup/Param/pargen.prm also exists and differs. mw310-recon.md records that the stale copy has faster axis parameters. Always read the live tree, Mw310/Param/, not the backup.
Still open in this file¶
Whether EN_CU_6 = 8 really means 8 pockets |
Probable, not proven |
| The units of the jog velocities | Ratio is consistent with Syncro.prm, absolute scale is not confirmed |
Q.W C.U.GEN. = 0 |
Is the tool change really at Z zero, or is the parameter unused? |
EN_BARCODE = 2 |
A barcode reader is configured but does not appear in the I/O map |
MAX.P.Z1.N.P = 90000 |
A second panel limit whose purpose is not identified |
Related¶
plc-sequences.md- the logic these parameters steermw310-recon.md-Syncro.prm, the axis parameters, and the stale-copy warningcontrol-logic-spec.md- the functional inventory../linuxcnc-sim/- where these values land