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.

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

The tool-change job contains:

CMP  0,EN_CU_6         ;EN_CU_6 < 0 ?
JPLT J50_INVERTI       ;jump if so - send 29 minus the pocket number

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:

;*** 2.69 SE IL BIT 4 DI SWITCH_PLC E'SETTATO, ATTENDO IF_PIST_CAMBIO_SU 0

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
  • plc-sequences.md - the logic these parameters steer
  • mw310-recon.md - Syncro.prm, the axis parameters, and the stale-copy warning
  • control-logic-spec.md - the functional inventory
  • ../linuxcnc-sim/ - where these values land