How to do position correction “on the fly”¶
Sometimes it is required to have a position correction “on the fly”. For example, it can happen that a position is wrong due to mechanical slip and that a switch which is passed by during the movement is used to capture a position value.
In other cases, it is required to syncronize the position to a print mark, so an actual_position has to be corrected, but not the movement of the printed material.
For both applications, the Function Block MCA_SetPositionContinuous can be used. It will use ramps and a limited velocity for the correction, so it will be tolerable to execute it during an ongoing movement and while the axis is activated in a multi-axis movement.
MCA_Set PositionsContinuous
The block can be used in any axis state except ERRORSTOP and HOMING.
2 different operation modes are possible:
SUPER=FALSE
- The actual_position will be modified.
- The block will not cause any movement.
- If a PLCopen block in DISCRETE_MOTION (positioning) is active during the execution, this block will not reach DONE as the actual_position is modified.
- If a slave axis is coupled to an axis while MCA_SetPositionContinuous is executed (with SUPER=FALSE) it will follow.
- This mode is possible while the axis is in state DISABLED.
SUPER=TRUE
- The actual_position will stay constant.
- A mechanical movement is executed (without changing the axis state machine).
- A slave axis will not follow.
- This behavior is similar to a superimposed movement.
- It is not possible when the axis is in state DISABLED.
The block can just be aborted by another MCA_SetPositionContinuous.