Configuring CANopen Multi-Magnet Reading
CANopen configuration for multi-magnet (multi-block) measurement has one core constraint: a standard CAN data-frame payload is at most 8 bytes; the position value is INT32 occupying 4 bytes, so a single TPDO can carry the position values of at most two magnets. Three or more magnets must enable several TPDOs and report in batches, and the correspondence between magnet index and PDO byte offset must be handled. The measuring principle is given in two positions from one waveguide: the principle of multi-magnet measurement; product and wiring are in Series 194 CANopen.
How multi-magnet is represented in the object dictionary
Under the CiA DSP 406 profile, the position-value object sits in the 0x6000 region. A single-magnet model has only one position-value entry; a multi-magnet model represents the absolute position of the 1st, 2nd and Nth magnets as several sub-indexes under the same index (or as several groups of objects defined by the profile), still as INT32.
A semantic question must be settled first: magnet indexes are numbered in physical order, usually incrementing outwards from the sensor’s fixed end (electronics-head side). That is, the index corresponds to “how close to the electronics head”, not to “which physical magnet”. If two magnets overtake each other in service (which should not happen, but can if the mechanism is poorly designed), the readings swap indexes and the controller misreads two axes as jumping instantly. Mechanical design must guarantee that the relative order of the magnets cannot reverse.
A further prerequisite is that the Series 19 analogue dual-magnet minimum spacing is 76 mm: at ≥76 mm the two torsion-wave echoes are clearly distinguishable on the time axis. Do not use the old 78 mm figure. Once spacing is below the specified minimum the echoes overlap, the sensor cannot separate them, and the appearance is a position jump, a lost position value, or that channel reporting no position. Other series: confirm against that model’s catalogue. This is a structural lower bound, not a margin that can be bypassed by tuning parameters. At the mechanical-layout stage the magnets must be arranged to it, with installation-error margin left. Magnet selection requirements themselves are in how to choose the permanent magnet (position magnet).
PDO mapping: 8 bytes is a hard boundary
| Number of magnets | Total position data | TPDOs required | Configuration notes |
|---|---|---|---|
| 1 | 4 bytes | 1 (remaining 4 bytes can take a status word) | Default mapping is usually already usable |
| 2 | 8 bytes | 1 (full) | Confirm byte-offset order; status word arranged separately |
| 3 | 12 bytes | 2 | The second TPDO must be enabled and mapped by hand |
| 4 | 16 bytes | 2 | Two frames hold two position values each; same SYNC trigger recommended |
| N | 4N bytes | ⌈N/2⌉ | Bus load rises accordingly; the cycle must be re-calculated |
The configuration actions are completed via SDO: enter the PDO mapping parameters, first clear the number of mapping entries to zero (disable mapping), then write the object index/sub-index and bit length of each mapped item in turn, and finally write back the number of entries to make the mapping take effect. This “clear first, then write” order is required by the CANopen specification; skipping the first step causes the write to be rejected — on site this appears as “the mapping will not change”. The division of labour between PDO and SDO is given in CANopen basics: the object dictionary and the PDO/SDO division of labour.
Synchronous triggering: the time-consistency problem that multi-magnet must solve
When several position values are spread across two or more TPDO frames, event triggering or each frame’s own timed send can mean that the two frames the master receives come from different sampling instants. For applications such as synchronous pressing and dual-cylinder parallelism control, a time offset between the two position values converts directly into control error.
The remedy is to set the transmission type of all related TPDOs to SYNC-triggered: the master issues a SYNC telegram cyclically; after receiving it the slave samples together and then sends the frames in sequence. The position values then come from the same sampling instant; the send order between frames is only transmission queuing and does not affect data consistency.
A physical lower bound should also be noted: one magnetostrictive measurement must wait for the torsion wave to travel from the magnet back to the electronics head. The longer the measuring range, the longer a single measurement takes; update rate varies with range (of the order of 0.5 ms at a shorter range, up to several milliseconds at an extra-long range). The SYNC period should not be shorter than the sensor update rate, otherwise two consecutive reads return the same value and the controller misreads the position as stalled. The method of matching update rate to the control cycle is given in how to match response time / refresh rate to the control cycle.
Bus-load calculation and common problems
Multi-magnet means several extra frames per SYNC period. The calculation is direct: frames per period per node × number of nodes × period frequency, compared with the available frame rate at the chosen baud rate. When load is on the high side, the order of treatment is: lengthen the SYNC period → raise baud rate (constrained by cable length) → split the segment. The relation between baud rate and cable length is in CANopen node address and baud rate configuration in practice.
| Phenomenon | Possible cause | Treatment |
|---|---|---|
| Only the first magnet position is read | Second TPDO not enabled or not mapped | Check number of mapping entries and valid bits via SDO |
| A magnet position value stays at a fixed value | That magnet missing, out of range, or spacing to the adjacent magnet <76 mm | Measure adjacent-magnet spacing and confirm it is not less than 76 mm |
| Two position values swap occasionally | Physical order of the magnets has reversed | Check mechanism limits so that order cannot reverse |
| Two-axis synchronisation always has a fixed offset | PDOs not SYNC-triggered; sampling instants inconsistent | Change to SYNC triggering; sample together |
| Error frames rise after magnets are added | Bus load exceeds what the baud rate can carry | Lengthen the SYNC period or re-calculate the segment |
Overall wiring and commissioning practice is in the practical fieldbus guide; capacity assessment of a multi-axis system is in multi-axis synchronisation: how many axes can one fieldbus carry reliably?; product parameters are in Series 194 CANopen explained.
Practical tips for engineers
- The position magnet must not touch the sensor rod; the design gap between them must be maintained.
- Fix the magnet with parts of non-magnetic material — screws, spacers and the like — to avoid ferromagnetic parts disturbing the measurement.
- An M6 hexagon-socket setscrew is recommended for securing the magnet — this screw is not supplied with the sensor and must be prepared separately.
Frequently Asked Questions
Q: How many magnet position values can one TPDO hold?
At most two. The payload limit of a standard CAN data frame is 8 bytes; the position value as INT32 occupies 4 bytes, so a single frame holds at most two position values. Three or more magnets must enable several TPDOs; the number required is the number of magnets divided by 2, rounded up.
Q: How is the magnet index defined in a multi-magnet arrangement?
It is numbered in physical order, usually incrementing outwards from the sensor’s fixed end (electronics-head side). The index corresponds to distance from the electronics head, so mechanical design must guarantee that the relative order of the magnets cannot reverse; otherwise an overtake in service will displace the whole set of readings.
Q: Why will a PDO-mapping change not write?
The CANopen specification requires the number of mapping entries to be written to 0 first to disable mapping, then each mapping item written in turn, and finally the number of entries written back to make it take effect. Skipping the first step and writing mapping items directly is rejected by the slave; on site this appears as the mapping will not change.
Q: Why must multi-magnet use SYNC triggering?
When position values are spread across two or more frames, event or timed triggering can mean the frames come from different sampling instants, producing a fixed offset in synchronous pressing or dual-cylinder parallelism control. SYNC triggering makes the slave sample together after receiving the sync telegram, so the values share the same instant.
Q: Why does a particular magnet position value stay unchanged?
Common causes are that magnet missing, out of the valid range, or too close to an adjacent magnet so that the two echoes overlap on the time axis and cannot be separated. Check the actual magnet position against that model’s minimum-spacing requirement; use the selection data for the figure.







