Supported Axes: |
Position Control Axes |
Supported Control Modes: |
See the Commands Overview topic for basic command information and how to issue commands from PLCs, HMIs, etc.
Command Parameters
# |
Parameter Description |
Range |
1 |
Requested Position (position-units) |
any |
2 |
Requested Speed (position-units/s) |
≥0 |
3 |
Acceleration Rate (position-units/s2) |
>0 |
4 |
Deceleration Rate (position-units/s2) |
>0 |
5 |
Direction
* These options are intended for use with rotary axes. However, all options are available on linear axes, but have no effect. For more details, see the Using Rotary Motion topic. |
a valid integer as described |
Description
This command moves the axis in closed loop control from wherever the axis happens to be when the command is issued to the RequestedPosition using the RequestedSpeed, Acceleration Rate, and Deceleration Rate. The axis will stop at the Requested Position and hold that position in closed-loop control. If the axis is moving when this command is issued, it will start at that velocity and ramp to the requested velocity.
The Direction parameter is required only for rotary axes. For linear axes, it has no effect, and may be left at the default of Nearest (0).
The Move Absolute command generates a profile as shown in the plot below. The acceleration and deceleration are rounded, producing an "s-curve" velocity profile for smoother starts and stops.
Legend: — Target Position — Target Velocity — Target Acceleration
Special Notes
Do Not Send Move Absolute Commands in Rapid Succession
The Target Acceleration is reset to zero at the beginning of each move. Therefore, if the Move Absolute command is sent in rapid succession such that it is received when the axis is accelerating or decelerating, the Target Acceleration in that part of the move will suddenly by reset to zero, causing jerky motion or overshoot, as described in the S-Curves vs. Trapezoidal section below.
It is possible to send the Move Absolute command in rapid succession if the Requested Jerk Axis Parameter is set to zero, or if the Target Type is set to Trapezoidal.
If your axis must follow a reference input, do not constantly issue this command to the axis to make it follow the position of the reference axis, unless you first set the Requested Jerk Axis Parameter is set to zero. Or, use gearing instead.
Issuing Another Move Command Before Reaching Position
If you issue a Move command and, before it is completed, issue another Move command to the same position and the new Deceleration Rate is equal to or smaller than the first one, the target profile may have to overshoot the requested position in order to not exceed the Deceleration rate. In cases where this may be a problem, it is better to use the Speed at Position command with a Requested Velocity of zero. Then the target profile will not overshoot the Requested position.
Moving in a Given Time
Sometimes, you may wish specify the amount of time the move must take. One option is to use the Time Move Absolute or Time Move Relative command. However, the maximum velocity cannot be specified with the Time Move command. You can use the equations below to determine Speeds and Accelerations of the Move Absolute or Move Relative command so that it will complete in a given amount of time:
Given
Distance = Distance to move ( Command Position - current Target Position)
MoveTime = Desired total time for move
then,
Speed = 1.5 * Distance / MoveTime
Acceleration = Deceleration = ( 4.5 * Distance ) / ( MoveTime * MoveTime )
S-Curves vs. Trapezoidal
If the Requested Jerk Axis Parameter is non-zero, the axis will use s-curves. This is the default setting. If the Requested Jerk Axis Parameter is zero, then the axis will use a trapezoidal profile.
When using s-curves, if the move command is re-issued when the axis is decelerating, it may cause the axis to overshoot the requested position.
Starting Values When Command is Issued
When a closed-loop command is sent to an axis, the current target values are used as the starting point, such as Target Position and Target Velocity. Therefore, if the axis is in closed loop control when the command is received, it doesn't matter where the Actual Position and Actual Velocity are - the command will use the current Target Position and Target Velocity.
Note that in open loop control, there is no target and the Target Position and Target Velocity are set to be the same as the Actual Position and Actual Velocity.
Starting from Open Loop
If the axis is in open loop when this command is issued, it will use the Actual Position and Actual Velocity as the beginning Target Position and Target Velocity. Therefore, if the axis is stopped in open loop and the Actual Velocity is noisy (which is common), the initial Target Velocity may be large because the noise made it look large, even though it really isn't. If the requested acceleration is low, it can take a long time to change this initial Target Velocity to the requested velocity, which may cause the Target Position to move in the opposite direction before moving in the correct direction.
To avoid this problem, when starting from a stop in open loop, either use high acceleration and deceleration values, or issue a Hold Current Position (5) command before issuing the Move Absolute.
This also applies to other closed-loop position motion commands.
Status Bits
In Position Bit
When the Target Position reaches the Requested Position and the Actual Position is within the In Position Tolerance window, the In Position Status bit will be set. This bit indicates that the move is complete and the axis is at position.
Target Generator Bits
The Target Generator bits in the Status Bits register indicate which portion of the move the axis is currently in. These bits are useful when programming complex motion sequences.
Target Generator Done bit
This bit indicates that the Target Position has reached the Requested Position. Notice that this bit does not indicate whether the Actual Position has reached the Requested Position.
Target Generator State A and B bits
B |
A |
Description |
0 |
0 |
The target generator is complete |
0 |
1 |
Acceleration |
1 |
0 |
Constant Velocity |
1 |
1 |
Deceleration |
See Also
Move Relative (21) | List of Commands | Commands Overview
Copyright © 2024 Delta Computer Systems, Inc. dba Delta Motion