### MC_MoveAdditive, MCP_MoveAdditive –  Move to position (relative to previous motion)

Block SymbolsLicensing group: MOTION CONTROL

Function Description

The MC_MoveAdditive and MCP_MoveAdditive 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_MoveAdditive block moves an axis to specified position as fast as possible. The final position is determined by adding the value of Distance parameter to final position of previous motion block which was controlling the axis. 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.

Inputs

 uAxis Axis reference (only RM_Axis.axisRef–uAxis or yAxis–uAxis connections are allowed) Reference Execute The block is activated on rising edge Bool Distance Requested target distance (relative to start point) [unit] Double (F64) Velocity Maximal allowed velocity [unit/s] Double (F64) Acceleration Maximal allowed acceleration [unit/s${}^{2}$] Double (F64) Deceleration Maximal allowed deceleration [unit/s${}^{2}$] Double (F64) Jerk Maximal allowed jerk [unit/s${}^{3}$] 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)

Outputs

 yAxis Axis reference (only RM_Axis.axisRef–uAxis or yAxis–uAxis 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

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