APIs, concepts, guides, and more
Gearing

Link two or more axes such that the follower's command position tracks the master's position through a ratio, every sample, alongside any motion of the follower's own, achieved electronically without mechanical linkage.

🔹 What is Gearing?

Gearing or Electronic Gearing links two or more axes such that the position of the follower ("slave") axis is a function of the position of the master axis. Every sample, the firmware takes the master's movement since the previous sample, scales it by the gear ratio and adds it to the follower's command position.

🔹 Gearing Overview

Mechanical gearing consists of a master unit and a slave unit linked mechanically by a ratio determined by the number of teeth on the input gear and the output gear.

Image

Electronic gearing can achieve the same relationship without mechanical linkage. This can be useful in a variety of systems, such as:

1. In-feed systems where two pinch-rollers must rotate in an inverse relationship (-1:1)

Image

2. Conveying systems where the ratio between the pay-out and take-up spool continuously changes as product moves from one spool to the other (ratio of (1:4) at the start, ratio of (4:1) at the end)

Image

Note
Gearing arrangements:
– One master can drive several followers, e.g. axis 0 is the master of axes 1, 2, 3 and 4.
– Several master and follower pairs can run at once, e.g. axis 0 is master to axis 1 while axis 2 is master to axis 3.
– A follower can itself be the master of another axis, see Chained gearing below.

🔹 The follower's command position

While gearing is enabled, the follower's command position each sample is:

\[\text{command} = \text{profile} + \sum \frac{\text{numerator}}{\text{denominator}}\,\Delta\text{master} \]

where profile is whatever the follower's own trajectory commands (its rest position if it has no move of its own) and the sum is the master's scaled movement accumulated since the follower's current move was planned. The two parts are independent: the follower's own moves, stops and settling act on the profile, and the gearing adds the master's movement on top, sample by sample.

The master source is an RSIAxisMasterType. Use the master's command position for phantom axes and for chains, and its actual position for a real axis whose feedback should drive the follower.

🔹 Correction moves on a geared follower

Any move can be commanded on the follower while it is geared: point-to-point (MoveTrapezoidal, MoveSCurve, MoveRelative), velocity (MoveVelocity), streamed (MovePT, MovePVT), appended segments and modifies. The move superimposes on the gearing: the follower speeds up or slows down to execute its own profile while continuing to follow the master, and when the move completes it reports done at the move's target plus the master's scaled movement since the move was commanded, and keeps following from there.

A move's target is therefore a point in the follower's own profile, not an absolute position that the follower will hold. To move a geared follower to an absolute position and hold it there, disable gearing first:

follower.GearingDisable();
follower.MoveTrapezoidal(absoluteTarget, velocity, acceleration, deceleration);
follower.MotionDoneWait();
Note
Superposition on planned moves requires RMP 11.1.1 or later. After upgrading, a point-to-point move on a geared follower no longer finishes at the absolute target passed in. It finishes at that target plus the master's scaled movement since the move was commanded. An application that needs the absolute target should call GearingDisable before commanding the move.
See also
Point-to-Point Motion, Velocity Motion, Settling

🔹 Stopping actions on a geared follower

A stopping action ends the follower's own move. It does not end the coupling. While the follower decelerates, and after it has stopped, the firmware keeps adding the master's scaled movement to its command position, in whatever motion state the action leaves it in. See Stopping Actions for how each action decelerates and which state it leaves the axis in.

Actions Follower's own move Gearing afterwards
Stop, TriggeredModify, EStop, EStopModify Decelerates to a stop Continues following
Abort, EStopAbort, EStopModifyAbort Stops, amplifier disabled Ends: the command is pinned to the actual position

An e-stopped follower is still moving with its master. That is deliberate: gearing usually models a physical coupling, such as a 1:1 Gantry pair or a chain of rollers, and holding one axis while its master runs would drive the coupled mechanism apart. To actually hold a geared follower, use an abort action, which disables the amplifier, or GearingDisable. The same applies to the actions configured for limits and faults through HardwareNegLimitActionSet and its siblings.

Note
Following through a stop or e-stop of a point-to-point move requires RMP 11.1.1 or later.

After a stop or e-stop, ClearFaults returns the follower to RSIStateIDLE, still geared and still following, and a move commanded then behaves as in Correction moves. After an abort, re-enabling the amplifier resumes following from the follower's current position; the master's movement while the amplifier was off is not made up.

See also
Stopping Actions, Stopping Rates

🔹 Disabling gearing

GearingDisable stops adding the master's movement from that sample on. The follower's command position holds where it is: the master's contribution already accumulated is kept, not removed, so the follower does not jump back to the position its own profile alone would have reached. A move commanded after disabling gearing starts from that held position.

GearingRatioChange changes the ratio for the master's movement from that sample on; the contribution already accumulated is kept.

🔹 Chained gearing

A follower geared to the command position of another follower sees that axis's whole command position, its own gear contribution included. In a chain A → B → C, C follows B's profile and B's share of A's movement, every sample, including while B executes a move of its own. Each link is a coupling to the axis before it, and a stopping action on one axis does not break the links on either side.

Note
Carrying the middle axis's gear contribution through a move of its own requires RMP 11.1.1 or later.

🔹 API methods

Method Description
GearingEnable Enable this Axis to be follower (slave) using electronic gearing.
GearingRatioChange Change the electronic gearing ratio.
GearingDisable Disable the electronic gearing.
GearingEnableGet Get the state of the gearing feature. If true, this Axis is a geared slave.
GearingNumeratorGet Get the numerator of the gearing ratio.
GearingDenominatorGet Get the denominator of the gearing ratio.
GearingMasterAxisNumberGet Get a Slave's Master Axis Number.
GearingSourceGet Get the Source used to slave to the Master Axis.

❓ FAQ

How quickly does a geared follower react to its master?

Every sample. The follower's command is recomputed each sample from the master's position for that sample. With a real master and actual position as the source, add the network cycle: one cycle for the master's feedback to reach the RMP and one for the follower's demand to reach its drive.

See Gearing 📖 for how the follower's command is formed.

Which master source should I use?

RSIAxisMasterType lists them. Use the master's command position for phantom axes and for chains of geared axes, and its actual position when a real master's feedback should drive the follower.

Can I command a move on a geared follower?

Yes. Any move superimposes on the gearing: the follower executes its own profile while it keeps following, and it completes at the move's target plus the master's movement since the move was commanded. To reach an absolute position and hold it, call GearingDisable first.

See the correction moves section of Gearing 📖 .

Does a stop or e-stop stop the gearing?

Should I use gearing or Post Trajectory Gearing?

Standard Gearing 📖 folds the master's movement into the follower's command and actual positions: the follower reports where it really is, and a move on it lands at its target plus the master's movement. Post Trajectory Gearing 📖 applies the master's movement after the trajectory, outside the positions the follower reports: the follower appears stationary while the master moves, and a move on it lands at its absolute target in that frame. Choose by which positions your application wants to read and target.

🔹 RMP Motion Controller Gearing Notes

  • Cyclic Data is Exchanged with Network (including Gearing Master Axis Actual Position [One possible Gearing Source])
  • EtherCAT Master updates RMP Gearing Master's Actual Position.
  • RMP Motion Control processes <<What to do Next>>. While processing the Gearing Follower, it takes the Master Axis's position change this sample, multiplies it by the numerator, divides the result by the denominator, and adds the value to the Command Position for the Gearing Follower, on top of the follower's own trajectory.
  • EtherCAT Master takes Position Demand for all Axes.
  • Cyclic Data is Exchanged with Network (including Gearing Follower Axis's Scaled Position Demand).
Warning
Electronic gearing will only work when both, the Master and Followers are in Position Mode.

📜 Sample Code