MPIAxisSettleParams
Definition: MPIAxisSettleParams
typedef struct MPIAxisSettleParams {
struct {
double distance;
double speed;
} tolerance;
double time; /* seconds */
MPI_BOOL onStop;
MPI_BOOL onEStop;
MPI_BOOL onEStopCmdEqAct;
} MPIAxisSettleParams;
Change History: Modified in 04.00 and 03.03.00.
| tolerance.distance | Value, in counts, from the move target position at which the controller sets the "in fine position" status flag. This parameter is used as part of the Axis settling criteria to determine when a point-to-point motion is complete and when MPIEventTypeMOTION_DONE and MPIEventTypeSETTLEDevents are generated. |
|---|---|
| tolerance.speed | Value, in counts/second, from the final move velocity at which the controller sets the "at velocity" status flag. This parameter is used as part of the Axis settling criteria to determine when:
Note: Always enter a Tolerance Velocity value that is a multiple of the controller sample rate. The controller will then receive velocity in counts/controller sample. 1 Counts/second = (1 counts/second) * (1/sample rate(Hz)) = (1/sample rate) counts/controller sample. Note: Value is truncated to the next smallest integer. Example: With a sample rate of 2000Hz:
|
| time | Duration in seconds that an axis must satisfy the distance and/or speed tolerance, before the respective status flag is set. |
| settleOnStop | If TRUE, the controller will use settle on stop mode. If FALSE, the controller will not use the settle on stop mode.When in settleOnStop mode and a STOP event has occurred, the axis will stay in an MPIStateSTOPPING state until:
The value to look for is (MPIState) status.state. If settleOnStop = FALSE, the axis will stay in an MPIStateSTOPPING state only until the stop duration for the axis' Motion Supervisor has elapsed. |
| settleOnEstop | If TRUE, the controller will use settle on Estop mode. If FALSE, the controller will not use the settle on Estop mode.When in settleOnEstop mode and a ESTOP event has occurred, the axis will stay in an MPIStateSTOPPING_ERROR state until:
The value to look for is (MPIState) status.state. If settleOnEStop = FALSE, the axis will stay in an MPIStateSTOPPING_ERROR state only until the Estop duration for the axis' Motion Supervisor has elapsed. |
| settleOnEstopCmdEqAct | If TRUE, the controller will use settle on EstopCmdEqAct mode. If FALSE, the controller will not use the settle on EstopCmdEqAct mode.***settleOnEstopCmdEqAct mode is not recommended***SettleOnEstopCmdEqAct is an alternative to Estop mode. When this mode is enabled, the following things happen:
|
Description

Sample Code
/*
Set the settling time of an axis. Sample usage:
returnValue =
setAxisSettlingTime(axis, 0.05);
*/
int32_t setAxisSettlingTime(MPIAxis axis, double settlingTime)
{
MPIAxisConfig config;
int32_t returnValue;
returnValue =
mpiAxisConfigGet(axis, &config, NULL);
if (returnValue == MPIMessageOK)
{
config.inPosition.settlingTime = settlingTime;
returnValue =
mpiAxisConfigSet(axis, &config, NULL);
}
return returnValue;
}
See Also
MPIAxisConfig
Axis Tolerances and Related Events: How Motion Related Events are Generated
Configuration of IN_POSITION and Done Events after STOP or E_STOP Events
