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 soft limit, X = 1828.30 mm |
X MIN Z. 2 |
183910 | Zone 2 soft limit, X = 1839.10 mm |
๐ด Neither of those is the zone boundary. From PLC version 3.82 the machine tests the mean of the two โ (1828.30 + 1839.10) / 2 = 1833.70 mm โ and that single number is the pendulum midline. See zones-and-loading.md ยง1.
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 panel limit. โ
Has no VP. symbol in MW310.PLC, so it is read by the interpreter/HMI only, never by the real-time logic. A program-acceptance limit, not an interlock. Nothing to port into HAL |
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 | โ
Explained (Grant, 3 Sep): the tool change happens at Z zero because an AIR RAM lifts the spindle head. The Z axis has no park height to travel to. toolchange.ngc now uses 0. Provisional until watched 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.
โ
Closed โ EN_CU_6 = 8 really is eight pockets¶
5 September 2026. The Panasonic carousel indexer's own EEPROM was read from its front panel. Its step data holds eight defined positioning points and twenty undefined ones, spaced at exactly 100000 pulses.
Two systems that share nothing but five wires agree on the number, and the PLC uses EN_CU_6 as a counter wrap rather than a flag:
J69_CMP_MAX_PINZE
CMP VPINZA_UTE,VAPP_CU_6 ;num.pinza attuale == max ?
JPNZ J69_INCR_POS ;salto se no
COPY 0,VPINZA_UTE ;se si'resetto VPINZA_UTE
Full capture in carousel-indexer.md.
Still open in this file¶
| The units of the jog velocities | Ratio is consistent with Syncro.prm, absolute scale is not confirmed |
EN_BARCODE = 2 |
A barcode reader is configured but does not appear in the I/O map |
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