mpiMotionStart changes a Motion object (motion) from the idle state (MPIStateIDLE) to the moving state (MPIStateMOVING), by initiating a motion of the given type using the specified parameters (params).If params is Null, then the motion parameters that were set by the most recent call to mpiMotionParamsSet(...) will be used to define the motion.
The coordinate system is defined by the ordered list of Axis object(s) that have been associated with the Motion object (motion). There must be at least one Axis in the coordinate system.
Each axis has a 128 frame buffer (FIFO). mpiMotionStart and mpiMotionModify calls will load up to 10 frames. No provision has been made to check if the new frames will overwrite the currently executing frames. This could happen after about 12 Start/Modify calls are made with the APPEND attribute.
If E-stop deceleration rates are not set high enough to stop within the number of frames specified by the empty frame limit, the axis jumps on a frame underflow. The axis will E-stop along the path of the last frames in the buffer, then continue onto the next frames (which are the frames from 128 frames ago). This can potentially cause a dangerous condition.
When successive non-integer length relative motions are commanded, the fractional portion is truncated and discarded. This may cause problems if the fractional value needs to be summed over multiple moves.
The XMP firmware frame execution time cannot exceed 16,384,000 samples. With the sample rate configured for 2000 (default), the maximum velocity time is 2.27 hours. If the commanded frame exceeds the maximum frame time, the axes will stop abruptly after 16,384,000 samples. The motors will still maintain servo control and no errors are reported.
In trapezoidal or s-curve moves, a frame is a section of motion with constant jerk, constant acceleration, or constant velocity.
In point list motion (PT, PVT, spline, etc), a frame is an individual point in the point list.
For high speed point streaming applications, low-overhead versions of mpiMotionModify and mpiMotionStart are available. See Fast Versions of mpiMotionStart(...) and mpiMotionModify(...).
Examples below are shown for Trapezoidal, S-Curve, and Velocity motions.
|| | Copyright © 2001-2010 Motion Engineering|