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