.

MPIMotionType and MEIMotionType

Definition: MPIMotionType

 
typedef enum {
    MPIMotionTypeINVALID,

    MPIMotionTypePT,
    MPIMotionTypePTF,
    MPIMotionTypePVT,
    MPIMotionTypePVTF,
    MPIMotionTypeSPLINE,
    MPIMotionTypeBESSEL,
    MPIMotionTypeBSPLINE,
    MPIMotionTypeBSPLINE2,

    MPIMotionTypeS_CURVE,
    MPIMotionTypeTRAPEZOIDAL,
    MPIMotionTypeS_CURVE_JERK,

    MPIMotionTypeVELOCITY,
    MPIMotionTypeVELOCITY_JERK,

MPIMotionTypeCAM_LINEAR, MPIMotionTypeCAM_CUBIC,
MPIMotionTypeMASK = 0xFF, } MPIMotionType;

Description

MPIMotionType is an enumeration of motion profile types. It specifies the motion profile to be generated with mpiMotionStart(...) and mpiMotionModify(...). The motion type also defines the trajectory parameters that must be passed to mpiMotionStart(...) and mpiMotionModify(...). For each MPIMotionType and MEIMotionType there is a corresponding element in the MPIMotionParams{...} or MEIMotionParams{...} structure. For example, when MPIMotionTypeS_CURVE is specified, the MPIMotionSCurve{...} structure must be filled in to specify the trajectory for the S-Curve profile.

The motion profile characteristics can be specified by bitwise OR-ing the MPIMotionType with one or more motion attribute masks. The MPIMotionAttrMask and MEIMotionAttrMask enumerations contain the attribute masks. Attribute masks can be used to enable special features or configure the motion profile calculation and execution properties.

Internally, the motion profile is calculated and broken up into smaller trajectory segments called frames. The frames contain position, time, velocity, acceleration, and jerk trajectory information. The controller buffers the frames in its memory and executes them by loading the values into its trajectory calculator. For simple MotionTypes, like VELOCITY, TRAPEZOIDAL, and S_CURVE, the frames are calculated by the controller. For complex, multi-point motions, like PT, PVT, SPLINE, etc. the frames are calculated in the MPI Library. MotionTypes that are calculated in the controller can be modified on-the-fly with mpiMotionModify(...).

The move types, MPIMotionTypeS_CURVE_JERK and MPIMotionTypeVELOCITY_JERK are only available with custom firmware (Option 21). In the custom firmware, the Velocity/Trapezoidal/S-Curve algorithm is replaced with the S-Curve Jerk algorithm. In the standard firmware, the MPIMotionTypeS_CURVE_JERK and MPIMotionTypeVELOCITY_JERK motion types are not supported and if specified, the MPI will return a "profile not supported" error.

Fore details, see S-Curve Jerk Algorithm and Attributes.

Example
Current Position = 2147483638 (231 - 10)
First Position in Point List = 2147483658 ((231 + 10)
or First Position in Point List = -2147483638 ((231 + 10) - 232)

From the controller's point of view, both first positions are the same value, but from the MPI's point of view, they are 232 apart. With the shortest path algorithm, -2147483638 is converted to 2147483658 so that the motion between the current position and the first position is smooth and does not cause excessive acceleration or velocity.

NOTE: The shortest path algorithm only applies to the delta between the current position and the first point in a points list (path motion). It DOES NOT apply to points within the points list.

 
MPIMotionTypePT

This type fits constant velocity profile segments through a list of position and time points. Not supported in motion sequences.

Please see MPIMotionPT for more information.
See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypePTF

PTF motion is identical to PT except host-calculated feedforward values can be specified for each PTF motion segment.

See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypePVT

This type fits jerk profile segments through a list of position, velocity and time points. Not supported in motion sequences.

Please see MPIMotionPVT for more information.
See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypePVTF

PVTF motion is identical to PVT except host-calculated feedforward values can be specified for each PVTF motion segment.

See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypeSPLINE

This type fits a Cubic spline through a specified list of position and time points.

Please see MPIMotionSPLINE data type for more information.
See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypeBESSEL

This type fits a Bessel spline through a specified list of position and time points.

Please see MPIMotionBESSEL data type for more information.
See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypeBSPLINE This type fits a 3rd order B spline through a list of position and time points. Please see MPIMotionBSPLINE data type for more information.
MPIMotionTypeBSPLINE2

This type fits a 2nd order B spline through a list of position and time points.

Please see MPIMotionBSPLINE data type for more information.
See Frame Buffer Management for Streaming Point Motion.

MPIMotionTypeS_CURVE This type specifies point to point motion using a S-Curve velocity profile. The profile is specified by acceleration, velocity, deceleration, jerkPercent, and final position. Please see MPIMotionSCurve data type for more information.
MPIMotionTypeS_CURVE_JERK This type specifies point to point motion using a S-Curve velocity profile. The profile is specified by acceleration, velocity, deceleration, accelerationJerk, decelerationJerk, and final position. Please see MPIMotionSCurve data type for more information.
MPIMotionTypeTRAPEZOIDAL This type specifies simple point to point motion using a trapezoidal velocity profile. The profile trajectory is specified by acceleration, velocity, deceleration and final position. Please see MPIMotionTrapezoidal data type for more information.
MPIMotionTypeVELOCITY This type specifies S-Curve acceleration to a constant velocity. The profile trajectory is specified by acceleration, velocity, and jerkPercent. Please see MPIMotionVelocity data type for more information.
MPIMotionTypeVELOCITY_JERK This type specifies S-Curve acceleration to a constant velocity. The profile trajectory is specified by acceleration, velocity, accelerationJerk and decelerationJerk. Please see MPIMotionVelocity data type for more information.
MPIMotionTypeCAM_LINEAR This type generates linear interpolated cam motion. See Camming.
MPIMotionTypeCAM_CUBIC This type generates cubic interpolated cam motion. See Camming.

 

Definition: MEIMotionType

 
typedef enum {
    MEIMotionTypeFRAME,
} MEIMotionType;

Description

MEIMotionType is an enumeration of the controller specific motion profile types. See MPIMotionType for details.

 
MEIMotionTypeFRAME This motion type is used to construct motion profiles at the frame level.

See Also

mpiMotionStart | mpiMotionModify | mpiMotionTYPE | MPIMotionParams | MEIMotionParams | MPIMotionAttr | MEIMotionAttr | Streaming Point Motion Type Calculations |
Frame Buffer Management for Streaming Point Motion

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2021 Motion Engineering