1. Overview: Masterdrive MC to SIMOTION Migration of a Modulo Print Axis
When a Masterdrive MC controller that drives a print cylinder through a 1FK6 servomotor is migrated to SIMOTION, the engineer must reproduce the original electronic gearing and modulo behavior with a comparable set of parameters. The original machine uses a virtual master inside the drive as the line-speed reference; all print stations of the production line follow this master with high precision.
The mechanical load is a print cylinder (exchangeable, circumferences of 1000 mm, 1200 mm, and 1500 mm) driven through a fixed gearbox from the motor shaft. The original Masterdrive MC configuration expresses the load position in length units (LU), where 1 000 000 LU corresponds to 1000 mm on the cylinder surface, and the virtual master runs as a continuous rotary reference.
Two engineering questions must be answered before commissioning:
- Should the SIMOTION axis be configured as linear with modulo or as rotary with modulo?
- Does the choice of axis type affect long-term absolute positioning accuracy after a very large number of turns in the same direction?
Both questions are answered below, with the parameter mapping, the floating-point math, and the load-gear configuration that determine the result.
2. Linear Modulo vs. Rotary Modulo in SIMOTION
SIMOTION technology objects (TO) for a speed-/position-controlled axis can be configured in two modulo-capable ways:
| Axis Type | Position Unit | Modulo Range | Typical Use | Note |
|---|---|---|---|---|
| Linear, modulo | LU (e.g. mm) | 0 ≤ s < modulo_value | Conveyor belts, print cylinders, linear axes that wrap | Position is wrapped every turn; the unit remains a length |
| Rotary, modulo | Degrees | 0° ≤ φ < 360° (or any custom value) | Rotary tables, virtual masters, gearing to circular loads | Default modulo is 360°; can be changed (e.g. 1000°/rev) |
A linear axis with a modulo of 1000 mm behaves, from the controller's point of view, exactly like a rotary axis that has been configured to 1000 length units per revolution. The internal representation is bounded, the position counter is wrapped, and the controller never accumulates an arbitrarily large setpoint.
3. The Floating-Point Resolution Question
The concern raised in the migration discussion is the following: if a linear axis with modulo runs continuously in the same direction, will its position eventually drift because the floating-point representation of position is finite?
3.1 SIMOTION position type
SIMOTION stores axis positions as LREAL (IEEE 754 double precision, 64-bit). The mantissa has 52 explicit bits plus an implicit leading 1, giving roughly 15–17 significant decimal digits. A continuous setpoint that is integrated without modulo wrapping will indeed lose sub-LSB resolution as the absolute position grows: the smallest representable increment at a position of 10^10 LU is approximately 10^-6 LU; at 10^14 LU it is approximately 10^-2 LU.
3.2 Why modulo wrapping defeats the problem
The TO axis configuration activates the modulo evaluator every IPO/Servo tick. The actual position value is mapped into the range
s_wrapped = s_actual − floor(s_actual / modulo) · modulo
After the wrap, the absolute value of the position variable is bounded between 0 and the modulo value, regardless of how many revolutions have been performed. The LREAL precision window is therefore the same on revolution 1 and on revolution 10 000 000. As long as the wrap is performed in the controller, accumulated position is not the variable that is used for setpoint generation; only the wrapped position is.
3.3 Where π actually enters the calculation
The irrational number π only enters the calculation if the controller derives a linear position from a rotational feedback using the formula s = φ · r with r = D / 2. In that case an irrational factor sits between the position variable and the actual circumference. SIMOTION's load gear ratio accepts integer numerator and denominator (so the resulting scaling factor is always rational), which removes the π factor from the closed loop:
s = φ · (D · numerator / denominator)
When the load gear is configured with integer ratios and the mechanical chain is rigid (timing belt, chain, gearbox — never v-belt), the linear position is a rational multiple of the motor revolution. The π term is only needed if you compute the radius from a diameter in floating point; SIMOTION lets you bypass that by using a measured or tabulated length-per-revolution value with rational scaling.
4. Parameter Mapping from Masterdrive MC to SIMOTION
The Masterdrive MC parameters of the original installation map cleanly to SIMOTION technology-object parameters.
| Masterdrive MC | Meaning (Masterdrive) | SIMOTION equivalent | Location in SCOUT/TIA |
|---|---|---|---|
| p171 | Position resolution (bits per LU) | Modulo length and LU definition; Position resolution factor | TO Axis → Configuration → Units |
| p180.1 / p180.2 | AVWF numerator / denominator (Antriebs-Wickelfaktor — load gear between motor and load) | Load gear ratio (numerator/denominator) | TO Axis → Mechanics → Load gear |
| U601 | MasterAxisCycle (LU per master revolution) | Modulo value of the master / virtual master | TO Axis → Modulo → Modulo value |
| U501.11 | SlaveAxisCycle (LU per slave revolution) | Modulo value of the slave | TO Axis → Modulo → Modulo value |
| U604.1 / U604.2 | Gearbox numerator / denominator (synchronization gearing to the master) | Synchronous operation gear ratio | TO SynchronousOperation → Gear |
For a 1000 mm print cylinder with the same Masterdrive scaling, the SIMOTION parameter set becomes:
- Modulo value of the slave axis:
1000.0 LU(1 000 000 LU in the old machine / 1000 scaling factor, or 1 000 000 LU directly if the new internal resolution is set to 1000 LU/mm). - Load gear ratio: 1:1 from motor to load shaft, plus the mechanical gearbox ratio. The combined ratio must be entered as integer numerator/denominator, e.g.
numerator = 10000, denominator = 10000for 1:1, or10000/12000and10000/15000for 1000/1200/1500 mm cylinders. - Master axis (virtual master): modulo
1000.0 LUon a rotary TO or, equivalently, on a linear TO with modulo 1000. - Synchronous operation gear between master and slave:
1:1(all print stations run at the line speed set by the virtual master).
5. Configuring a Linear Modulo Axis in SIMOTION
The following configuration sequence applies to SCOUT / SCOUT TIA (SIMOTION V4.4 / V5.x project) and to the TIA Portal integration of SIMOTION.
- Insert a TO Axis of type Speed-/position-controlled and select the linear with modulo variant.
- Configure the mechanics:
- Load gear: numerator/denominator. For a 1000 mm cylinder, with a known gearbox ratio, enter the integer ratio that converts motor revolutions to load revolutions. Example:
numerator = 1000, denominator = 1000for 1:1 mechanical gearing; multiply by the gearbox ratio (e.g. 5:1 ⇒5000/1000). - Position resolution: set the LU so that 1 mm = 1000 LU if you want to keep the 1 000 000 LU / 1000 mm convention.
- Load gear: numerator/denominator. For a 1000 mm cylinder, with a known gearbox ratio, enter the integer ratio that converts motor revolutions to load revolutions. Example:
- Configure the modulo:
- Modulo value:
1000.0LU (one cylinder circumference). - Modulo mode: shortest path for relative moves and positioning with modulo for absolute moves, depending on the HMI logic.
- Enable Position-related synchronization on the synchronous operation TO so that the slave phase follows the master within ±0.5° of the cylinder.
- Modulo value:
- Insert a TO SynchronousOperation for the slave. The synchronous setpoint is the master position multiplied by the gearing factor
U604.1 / U604.2. With all print cylinders synchronized to the same virtual master at 1:1, this factor stays at10000/10000; for cylinders of differing circumference it is set to the integer ratio of the circumferences (e.g. 1000/1200 = 5/6). - Configure the virtual master as a TO Axis in rotary with modulo, or as an external setpoint from the line PLC. The virtual master is the only source of the line speed; it must be generated with a ramp-limited velocity so the entire line ramps together.
6. Synchronization to the Virtual Master
The original Masterdrive MC synchronizes the print cylinder to the virtual master using a phase-locked loop: the master's current modulo position is multiplied by the slave gear ratio (1:1 for a same-diameter cylinder) and fed as the position setpoint to the current controller. The SIMOTION equivalent uses the _setSynchronousMotion or the graphical Synchronous Operation editor.
Key configuration values that determine print-registration accuracy:
| Parameter | Effect | Typical value |
|---|---|---|
| IPO cycle (T_ip) | Master / slave position update rate | 1.0 ms to 4.0 ms (servo cycle is typically 0.5 ms) |
| Position controller Kp | Following-error stiffness | Tuned to a critically damped step response, typically Kp · T_servo = 30…100 s⁻¹ |
| Synchronous operation window | Phase-error tolerance (0.5° default) | 0.5° of cylinder, or 0.5° / 360° × circumference in mm |
| Lead time for registration | Pre-compensation for print-mark sensor latency | Mechanical transit time of cylinder between sensor and print nip |
For 1 m/s line speed and a 0.5° (≈1.4 mm) phase window, the maximum position error budget is 1.4 mm at the print nip. The following error must therefore be substantially less than 1.4 mm; in practice the controller is tuned for ±0.1 mm or tighter.
7. Print-Cylinder Specific Considerations
7.1 Exchangeable cylinders
The original machine supports 1000/1200/1500 mm cylinders. Each changeover must update the load-gear numerator/denominator of the affected slave so that one motor revolution maps to exactly one cylinder revolution. The SIMOTION project should expose this as a parameter set with three presets; a recipe function or HMI selection writes the new numerator/denominator into the TO and the synchronous-operation gearing.
7.2 Mechanical chain
Modulo positioning of a print cylinder is only valid if the mechanical chain between motor encoder and cylinder is non-slip. V-belts and timing belts with tensioner play are not acceptable for absolute modulo synchronization. A timing belt with steel tensioner, a chain with idler, or a gearbox with zero backlash is required. The Masterdrive MC parameter set already implies this — the gearbox ratio is an integer pair (10000/10000, 10000/12000, 10000/15000) which only makes sense for a non-slip drivetrain.
7.3 Homing
After every cold start, the slave must be homed to a known angular position. A typical approach:
- Slow jog toward the reference-mark sensor (incremental encoder zero pulse or external proximity).
- Stop on the rising edge of the reference signal.
- Set the actual position to a known LU value, e.g.
0.0for the print-mark reference. - Enable synchronous operation only after homing is complete on every slave.
The Masterdrive MC does the same with its p171 position reference; in SIMOTION the equivalent is a _homeAxis call inside the startup sequence (MotionTask at priority ≥ 12).
8. Long-Term Stability and SIMOTION Warnings
SIMOTION monitors the load-gear scaling and issues a warning if the resulting fractional part is too small to be represented over the expected axis lifetime. The warning text is approximately "Long-term axis stability cannot be guaranteed". It is raised when the load-gear ratio produces a position increment that approaches the LREAL resolution at the expected maximum position.
To avoid the warning with a linear modulo axis, the configuration must satisfy:
max_position < 2^52 · load_gear_increment
For a 1000 mm modulo and a 1:1 load gear, the increment is 1000/2^52 ≈ 2.2·10^-13 mm per LSB. The position can therefore grow to about 2^52 · 1000 ≈ 4.5·10^18 mm before the resolution degrades. A user-level requirement of one print-registration accuracy (≈0.1 mm) is satisfied indefinitely.
The warning is most often raised when the load gear uses a non-integer ratio that the user entered as a real number (e.g. 0.000123456) instead of an integer pair (123456/1000000000). Always enter integer numerators and denominators.
9. Verification Procedure After Commissioning
-
Static positioning: command the slave to
0.0,250.0,500.0,750.0,999.9mm and verify that the actual position reaches each setpoint within the position-controller tolerance (default ±0.5 LU). -
Modulo wrap: command
0.0→900.0→200.0. The second transition must take the shortest path (700 mm in the negative direction), not 300 mm in the positive direction, because the position wraps through 0. -
Continuous run-up: run the virtual master at the production line speed (e.g. 200 m/min) for 60 minutes while monitoring
actualPositionon the slave. The actual position must remain in the range0.0to1000.0mm at all times. The trace should be flat modulo 1000. - Phase-error monitoring: capture the synchronous-operation following error and the phase-error signal on a 30-minute trace. The phase error must remain within ±0.5° of the cylinder and have a zero mean.
-
Multi-turn repeatability test: command the master to a fixed index, then command the slave to
0.0modulo, then run the master for 10 000 000 modulo cycles (this is 10 000 000 · 1000 mm = 10^7 m of travel). Stop the master and command the slave to0.0again. The actual position must be within the homing-accuracy window of the reference mark.
10. Recommended Configuration Summary
| Item | Recommended value | Reason |
|---|---|---|
| Axis type (slave) | Linear with modulo | Matches the 1000/1200/1500 mm circumference of the print cylinder; HMI is naturally in mm |
| Modulo value | Cylinder circumference in LU (e.g. 1000.0 mm) | Equivalent to one cylinder revolution |
| Load gear | Integer numerator/denominator matching the gearbox and the cylinder circumference | Avoids the irrational-π scaling; satisfies the SIMOTION long-term-stability check |
| Synchronous operation | 1:1 from virtual master to slave (or 5:6 / 5:7 for 1200/1500 mm cylinders) | Phase-locked to the line-speed master |
| Master | Virtual master in the drive (or a TO virtual axis in SIMOTION) | Maintains a single source of line speed |
| Mechanical chain | Timing belt / chain / gearbox — never v-belt | Required for absolute modulo positioning |
11. Frequently Asked Questions
Does a SIMOTION linear axis with modulo drift after many revolutions in the same direction?
No, as long as the modulo evaluator in the TO axis is active. The position is wrapped into the range [0, modulo) every IPO cycle, so the LREAL (double-precision) value of the position never grows. The floating-point resolution concern applies only if the wrap is disabled or if the position is exported as a non-wrapped (unbounded) value.
Where does the irrational number π enter the calculation, and how is it avoided?
π enters only if a linear position is derived from a rotational angle using a radius. SIMOTION's load gear accepts an integer numerator/denominator, so the conversion from motor revolutions to load length is a rational scaling. When the load circumference is known from a measurement rather than computed from a diameter, π does not appear in the closed loop.
Can I keep the Masterdrive MC parameter values (p171, p180, U601, U501.11, U604) as they are in SIMOTION?
Not directly — the parameter numbers differ — but the semantics map 1:1: p171 becomes the position resolution in the TO axis, p180.1/180.2 becomes the load-gear numerator/denominator, U601 and U501.11 become the modulo values of the master and slave, and U604.1/604.2 becomes the synchronous-operation gear ratio. Keep the same numerical ratios; only the parameter addresses change.
What does the SIMOTION warning "long-term axis stability cannot be guaranteed" mean?
It is raised when the LREAL representation of the position increment, multiplied by the expected total travel of the axis, approaches the floating-point resolution of 2^53. To clear the warning, enter the load gear as an integer numerator/denominator pair (e.g. 5/6, 5/7) instead of a real number, and verify that the mechanical chain has zero slip.
Is a rotary axis with 1000°/rev modulo equivalent to a linear axis with a 1000 mm modulo?
Functionally yes. Both wrap the position once per cylinder revolution, both accept the same load-gear numerator/denominator, and both can be synchronized to a virtual master at 1:1. The choice is engineering preference: choose linear if the HMI and commissioning dialogs are in millimetres, choose rotary if the diagnostics and synchronous-operation editor are clearer in degrees.