|
APIs, concepts, guides, and more
|
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.
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.
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.
.png)
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)
.png)
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)
.png)
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.
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:
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.
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.
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.
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.
| 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. |
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?
No. Stop, TriggeredModify, EStop and EStopModify end the follower's own move and leave it following its master. Only GearingDisable, or an abort action, which disables the amplifier, ends the following.
See the stopping actions section of Gearing 📖 and Stopping Actions.
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.