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.