MPI 04.00 Reference >> mpiMotion
MPIMotionVelocityAttrMask
Definition
typedef enum MPIMotionVelocityAttrMask { MPIMotionVelocityAttrMaskNONE = 0, MPIMotionVelocityAttrMaskBEHAVIOR = 1 << 1, MPIMotionVelocityAttrMaskDELAY = 1 << 2, MPIMotionVelocityAttrMaskID = 1 << 3, MPIMotionVelocityAttrMaskNO_HANDSHAKE = 1 << 4, MPIMotionVelocityAttrMaskEXPECTED_AXES = 1 << 5, MPIMotionVelocityAttrMaskHOLD = 1 << 6, MPIMotionVelocityAttrMaskOUTPUT = 1 << 7, MPIMotionVelocityAttrMaskAUTOSTART_NOTIFY = 1 << 8, MPIMotionVelocityAttrMaskNO_WAIT = 1 << 9, } MPIMotionVelocityAttrMask;
Required Header: stdmpi.h
Change History: Updated in 04.00.01.
Description
MPIMotionVelocityAttrMask is used to specify which motion attributes to use and what members of MPIMotionVelocityAttributes are valid.
BEHAVIOR | Used to modify the current motion. The behavior field of MPIMotionVelocityAttributes contains the behavior type information. |
---|---|
DELAY | Inserts a pause before the beginning of the move. The delay field of MPIMotionVelocityAttributes contains the length of the delay. |
ID | When starting the move, fills out the Move ID field of all of the commanded axes. The id field of MPIMotionVelocityAttributes contains the ID value to use. |
NO_HANDSHAKE | Does NOT wait for the handshake between the MPI and controller to begin the motion trajectory profile execution. This attribute is useful for faster function call return times, typically in single threaded or time critical applications. |
EXPECTED_AXES | Specify the number of expected axes. This is checked against the number of currently mapped axes, and if they don’t match an error results. The expectedAxes field of MPIMotionPointToPointAttributes contains the number of expected axes. |
HOLD | Prevents the move from executing until a specific trigger condition is met. The hold field of MPIMotionPointToPointAttributes contains the configuration data. |
OUTPUT | Set or clear bits during the move. The outputCount and output fields of MPIMotionVelocityAttributes contain the configuration data. |
AUTOSTART_NOTIFY | Specifies the address of an MPI_BOOL to have the MPI write if an MPIMotionVelocityBehaviorTypeMODIFY move takes effect while no motion is occurring. Uses the autostartNotify field if MPIMotionPointToPointAttributes contains the address. |
NO_WAIT | Does NOT wait for the controller to acknowledge the commanded move, does NOT wait for the controller to return an error code, and applies the conditions for NO_HANDSHAKE.
This attribute is useful for faster function call return times, typically in single threaded or time critical applications.
WARNING! NO_WAIT causse the MPI to ignore return codes from the controller during the move command profile calculation and loading. Your application will NOT know if the move profile failed to start due to a Profile Error, Frame Buffer Overflow, Illegal Delay time, or other error condition. To work around the missing error reporting, your application should check for a MOTION_START and MOTION_DONE event to determine if the axis moved. WARNING! NO_WAIT prevents the move command from reporting the auto-start condition if the AUTOSTART_NOTIFY is specified. |
Remarks
If you specify both NO_HANDSHAKE and NO_WAIT the MPI applies the NO_WAIT attribute, which includes the NO_HANDSHAKE logic.
If your application calls mpiMotionStatus(…) immediately after commanding a move with the NO_HANDSHAKE or NO_WAIT attribute, the state is reported as MPIStateIDLE until the controller begins the profile execution and the state transitions to MPIStateMOVING. It is strongly recommended to use notify/events, instead of polling motion/axis/motor status.