MPI 04.00 Reference >> mpiMotion
MPIMotionPointToPointAttrMask
Declaration
typedef enum MPIMotionPointToPointAttrMask { MPIMotionPointToPointAttrMaskNONE = 0, MPIMotionPointToPointAttrMaskBEHAVIOR = 1 << 1, MPIMotionPointToPointAttrMaskDELAY = 1 << 2, MPIMotionPointToPointAttrMaskRELATIVE_MOVE = 1 << 3, MPIMotionPointToPointAttrMaskID = 1 << 4, MPIMotionPointToPointAttrMaskNO_HANDSHAKE = 1 << 5, MPIMotionPointToPointAttrMaskEXPECTED_AXES = 1 << 6, MPIMotionPointToPointAttrMaskHOLD = 1 << 7, MPIMotionPointToPointAttrMaskOUTPUT = 1 << 8, MPIMotionPointToPointAttrMaskAUTOSTART_NOTIFY = 1 << 9, MPIMotionPointToPointAttrMaskNO_WAIT = 1 << 10, } MPIMotionPointToPointAttrMask;
Required Header: stdmpi.h
Change History: Updated in 04.00.01.
Description
MPIMotionPointToPointAttrMask is used to specify which motion attributes to use and what members of MPIMotionPointToPointAttributes are valid.
BEHAVIOR | Used to select a non-default behavior for the motion. The behavior field of MPIMotionPointToPointAttributes contains the type information. |
---|---|
DELAY | Inserts a pause before the beginning of the move. The delay field of MPIMotionPointToPointAttributes contains the length of the delay. |
RELATIVE_MOVE | The position values for the move are interpreted relative to the current position. |
ID | When starting the move, fill out the Move ID field of all of the commanded axes. The id field of MPIMotionPointToPointAttributes 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 | Specifies the number of expected axes. This will be checked against the number of currently mapped axes, and if they don’t match an error will result. The expected Axes 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 | Sets or clear bits after the move. The output field of MPIMotionPointToPointAttributes contains the configuration data. |
AUTOSTART_NOTIFY | Specifies the address of an MPI_BOOL to have the MPI write if an MPIMotionPointToPointBehaviorTypeMODIFY 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 causes 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.