About Movement Functions
(Original Document)
Structure of a MOVE Function
The basic structure of a movement function is as follows:
<Move function>(<movement type>, <target position>, <speed to target>)
where:
Functioning
The MOVE function initiates movement. The movement function will return to the application before the movement profile is complete. The application program uses the axis status bits (%I) to determine the movement profile status. (See the SERCOS language objects).
ABS_MOVE functions that specify a target position that is beyond the maximum or minimum position for the movement axis generate a MovementError since the movement axis cannot reach the target. INCR_MOVE move functions that generate a target beyond the limits do not generate a MovementError since the calculation of the target point may be delayed due to the movement queuing mechanism. Such INCR_MOVE movements are converted into a target position to reach the limit and will generate an AXIS_SUMMARY_FAULT when the limit is reached. Approach speeds that are greater than the maximum speed limit for a movement axis are converted into approach speeds at the speed limit.
Movement Status
The IN_POSITION and AXIS_AT_TARGET bits are set to 0 at the start of a movement. The RAMPING bit is set when the movement axis is commanded to accelerate or decelerate. The STEADY bit is set to 1 when the movement axis is commanded to move at a constant speed. STOPPING is set to 1 at the start of the deceleration to the target position. IN_POSITION is set to 1 when the actual position and the target position are within the in-position band after STOPPING has been set to 1. PROFILE_END is set to 1 when the controller commands the servo to remain at the target position. AXIS_AT_TARGET is set when the actual position and the target position are within the in-position band after PROFILE_END is set to 1. STOPPING will be set to 0 when the axis has reached the PROFILE_END and is IN_POSITION.