Registration Moves
Registration moves are also known as "indexing on the fly." In a registration move, a digital input interrupts a running motion task and starts a new one. The start position of the new motion task is latched at the time the digital input is activated. The target position of the new motion task is calculated based on the latched position value, for a very accurate target position.
Typical applications for using the registration move are feed-to-length applications, which must guarantee proper positioning with respect to special mark or index. If this mark is reached, an external trigger signal aborts the current move and starts the registration move.
Each axis can support up to 2 registration moves. Setting up a registration move requires several motion tasking (MT) and capture (CAP#) keywords to be set in a coordinated manner:
- AXIS#.MT.CAP specifies the capture channel used for the registration move for the specified motion task. The values 1 & 2 indicate a user capture channel: either CAP1 or CAP2 can be used. The default value 0 prevents the motion task from being used as a registration move. Each non-zero value may be used for at most one motion task on the same axis.
- AXIS#.MT.CNTL is a per-task keyword. It has a couple of bits that are relevant to registration moves:
- Bit 13 specifies whether a motion task can be interrupted by a registration move. Note that this bit is used for both registration and non-registration tasks. If the bit is 0 (default value), the task can be interrupted to start a registration move. If the bit is 1, the task cannot be interrupted. Generally, the default value 0 is used for non-registration tasks, to allow preemption by registration moves. For registration tasks, the question of whether interruption by new registration moves should be allowed is application-specific.
- Bit 14 specifies whether a motion task can be started from zero velocity. If the bit is 0 (default value), the task can start from zero velocity. If the bit is 1, the task cannot start from zero velocity. For registration tasks, value 1 effectively means that the registration move must interrupt an already running task, and value 0 means that the registration move can start even if no task is currently running.
- CAP#.ARM arms both the capture channel and the corresponding registration move.
- CAP#.REARM specifies whether to automatically rearm the capture channel and corresponding registration move.
- CAP#.TRIGGER selects the digital input trigger source for the capture channel and corresponding registration move.
- CAP#.EDGE selects the trigger edge for the capture channel and corresponding registration move.
Under this scheme, a registration move begins when the corresponding capture channel triggers. This means that if the capture channel is configured to trigger based on a precondition, the registration move depends on the precondition being satisfied as well.
On the other hand, a registration move does not necessarily begin when the corresponding capture channel triggers. The AXIS#.MT.CNTL bits allow for a couple of situations where the registration move may not begin:
- when the running task cannot be interrupted
- when the registration move cannot start from zero velocity
Effectively AXIS#.MT.CNTL imposes a set of preconditions on the registration move, and these preconditions must be met prior to the capture channel preconditions. There is a sequence of events that must be satisfied for the registration move to start:
- first the AXIS#.MT.CNTL preconditions
- the capture channel preconditions
- the capture channel trigger condition
If the capture channel triggers when the registration move is not allowed to start (due to AXIS#.MT.CNTL preconditions), the capture time/position will update but will not affect a running or not-yet-started registration move.