MC_MoveAbsolute, MCP_MoveAbsolute –  Move to position (absolute coordinate)

Block SymbolsLicensing group: MOTION CONTROL
Qt SVG Document Exported by REXYGEN Studio uAxis Execute Position Velocity Acceleration Deceleration Jerk BufferMode Direction yAxis Done CommandAborted Busy Active Error ErrorID MC_MoveAbsolute Qt SVG Document Exported by REXYGEN Studio uAxis Execute yAxis Done CommandAborted Busy Active Error ErrorID MCP_MoveAbsolute

Function Description
The MC_MoveAbsolute and MCP_MoveAbsolute blocks offer the same functionality, the only difference is that some of the inputs are available as parameters in the MCP_ version of the block.

The MC_MoveAbsolute block moves an axis to specified position as fast as possible. If no further action is pending, final velocity is zero (axis moves to position and stops) otherwise it depends on blending mode. For blending purposes, start and stop velocity of this block is maximum velocity with direction respecting current and final position. If start velocity of next pending block is in opposite direction, then blending velocity is always zero.

If next pending block is executed too late in order to reach requested velocity the generated output depends on jerk setting. If no limit for jerk is used (block input Jerk is zero or unconnected) block uses maximum acceleration or deceleration to reach the desired velocity as near as possible. If jerk is limited it is not possible to say what is the nearest velocity because also acceleration is important. For this reason, the axis is stopped and moved backward and blending velocity is always reached. Although this seems to be correct solution, it might look confusing in a real situation. Therefore, it is recommended to reorganize execution order of the motion blocks and avoid this situation.

The MC_MoveRelative block act almost same as MC_MoveAbsolute. The only difference is the final position is computed adding input Distance to current (when rising edge on input Execute occurred) position.

The MC_MoveAdditive block act almost same as MC_MoveRelative. The only difference is the final position is computed adding input Distance to final position of the previous block.

The MC_MoveSuperimposed block acts almost the same as the MC_MoveRelative block. The only difference is the current move is not aborted and superimposed move is executed immediately and added to current move. Original move act like superimposed move is not run.

The following table describes all inputs, parameters and outputs which are used in some of the blocks in the described block suite.

Inputs

uAxis

AAxis reference (only RM_Axis.axisRefuAxis or yAxisuAxis connections are allowed)

Reference

Execute

The block is activated on rising edge

Bool

Position

Requested target position (absolute) [unit]

Double (F64)

Velocity

Maximal allowed velocity [unit/s]

Double (F64)

Acceleration

Maximal allowed acceleration [unit/s2]

Double (F64)

Deceleration

Maximal allowed deceleration [unit/s2]

Double (F64)

Jerk

Maximal allowed jerk [unit/s3]

Double (F64)

BufferMode

Buffering mode

Long (I32)

1 ....

Aborting (start immediately)

2 ....

Buffered (start after finish of previous motion)

3 ....

Blending low (start after finishing the previous motion, previous motion finishes with the lowest velocity of both commands)

4 ....

Blending high (start after finishing the previous motion, previous motion finishes with the lowest velocity of both commands)

5 ....

Blending previous (start after finishing the previous motion, previous motion finishes with its final velocity)

6 ....

Blending next (start after finishing the previous motion, previous motion finishes with the starting velocity of the next block)

Direction

Direction of movement (cyclic axis or special case only)

Long (I32)

1 ....

Positive

2 ....

Shortest

3 ....

Negative

4 ....

Current

Outputs

yAxis

Axis reference (only RM_Axis.axisRefuAxis or yAxisuAxis connections are allowed)

Reference

Done

Algorithm finished

Bool

CommandAborted

Algorithm was aborted

Bool

Busy

Algorithm not finished yet

Bool

Active

The block is controlling the axis

Bool

Error

Error occurred

Bool

ErrorID

Result of the last operation

Error

i ....

REXYGEN general error

Example
image/svg+xmlvelocity2 15 velocity1 30 position2 150 position1 100 mode2 2 mode1 2 direction2 1 direction1 1 deceleration2 10 deceleration1 20 acceleration2 25 acceleration1 50 MC_MoveAbsolute − block 2 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID MC_MoveAbsolute − block 1 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID Execute2 [execute2] Execute1 [execute1] Axis [axis]

image/svg+xml0 5 10 15 0 0.5 1 Execute − block 1 bool 0 5 10 15 0 0.5 1 Active − block 1 bool 0 5 10 15 0 0.5 1 Done − block 1 bool 0 5 10 15 0 0.5 1 Execute − block 2 bool 0 5 10 15 0 0.5 1 Active − block 2 bool 0 5 10 15 0 0.5 1 Done − block 2 bool 0 5 10 15 0 50 Commanded velocity velocity velocity2velocity1 0 5 10 15 0 100 200 Commanded positionTime [s] position

2024 © REX Controls s.r.o., www.rexygen.com