Configuration of IN_POSITION and DONE Events
after STOP or E-STOP Events

Two fields, settleOnStop and settleOnEstop are incorporated into the MPIAxisInPosition{} structure. These fields control the generation and use of IN_FINE_POSITION, and DONE status bits and events. A value of FALSE in these fields causes the IN_FINE_POSITION to be held false after STOP (or E-STOP) events and DONE to be based solely on command velocity (i.e. DONE is true as soon as the command velocity reaches 0). A value of TRUE in these fields causes IN_FINE_POSITION and DONE to be calculated in the same manner as that for normal motion, except that the position where the command velocity reaches zero is used for a target rather than the original Target Position.

The following table shows the generation of these status bits with settleOnStop (settleOnEstop) = FALSE (the default value):

Motion Status After S-curve or Trapezoidal Move During Velocity Move After STOP (E-STOP) After ABORT
IN_FINE_POSITION Based on target distance (see note 3) FALSE FALSE FALSE
IN_COARSE_POSITION Based on target distance FALSE FALSE FALSE
AT_TARGET TRUE when command = target FALSE FALSE FALSE
DONE TRUE if both TC and IN_FINE_POSITION are true FALSE TRUE when command velocity = 0 TRUE
The following table shows the generation of these status bits with settleOnStop (settleOnEstop) = TRUE:
Motion Status After S-curve or Trapezoidal Move During Velocity Move After STOP (E-STOP) After ABORT
IN_FINE_POSITION Based on target distance (see note 3) FALSE Based on position error (see note 1) FALSE
IN_COARSE_POSITION Based on target distance FALSE FALSE FALSE
AT_TARGET TRUE when command = target FALSE FALSE FALSE
DONE TRUE if both TC and IN_FINE_POSITION are true FALSE Same as IN_FINE_
POSITION
TRUE

NOTE 1: IN_FINE_POSITION is based on four criteria:

  • The trajectory has completed (see note 2).
  • |command position - actual position| < fine position tolerance.
  • Target velocity - actual velocity| < velocity tolerance (the default setting for velocity tolerance so large that this criteria is ignored).
  • The above 3 criteria have been satisfied for the duration specified by the settling time parameter.

NOTE 2: The reference to "TC" above refers to TRAJECTORY_COMPLETE, an internal status that is set when all of the current motion segments (frames) have completed.

NOTE 3: The criteria used for calculation of IN_FINE_POSITION after s-curve or trapezoidal motion has changed to the following: (This is the same as the MPI-1 criteria.)

  • The trajectory has completed (see note 2).
  • |target position - actual position| < fine position tolerance.
  • |command velocity - actual velocity| < velocity tolerance (the default setting for velocity tolerance so large that this criteria is ignored).
  • The above 3 criteria have been satisfied for a duration specified by the settling time parameter.

Return to MPIAxisInPosition