MC_MoveSuperImposed
A relative motion is commanded with the MC_MoveSuperImposed FB, in addition to motion already active. The active motion is not interrupted but is superimposed with the commanded one. The motion is always executed jerk-limited with the constant set input ‘jerk’. This value is valid for both ‘acceleration’ and ‘deceleration’.
If the axis is already in a motion state and receives a command by means of this FB, this leads to a superimposed interpolation and thus to a speed change and a change in the target position of the active motion.
If the axis is in the ‘Standstill’ state, a command by the MC_MoveSuperImposed FB acts like a command by an MC_MoveRelative FB.
As ‘acceleration’ values are also superimposed in the case of superimposed interpolation, corresponding axis parameters must be defined to ensure that the axis is not dynamically overtaxed.
Block diagram
Parameters of the FB
VAR_IN_OUT | |||
| Axis | AXIS_REF | Axis reference. |
VAR_INPUT | |||
| Execute | BOOL | Start the motion at rising edge. |
| Distance | LREAL | Additional Distance that is to be superimposed. Range [-2147483648.0, 2147483647.0] |
| VelocityDiff | LREAL | Value of the maximum velocity difference to the ongoing motion (always positive, not necessarily reached). Range [1.0, 2147483647.0] |
| Acceleration | LREAL | Value of the acceleration (always positive, increasing energy of the motor). Range [1.0, 2147483647.0] |
| Deceleration | LREAL | Value of the deceleration (always positive, decreasing energy of the motor). Range [1.0, 2147483647.0] |
| Jerk | LREAL | Value of the Jerk (always positive). Range [1.0, 2147483647.0] |
VAR_OUTPUT | |||
| Done | BOOL | The relative distance of the active movement is superimposed. |
| CommandAborted | BOOL | Command is aborted by another command. |
| Error | BOOL | Indicates if an error has occurred. |
| ErrorID | WORD | Error identification. |
Behavior of the FB
- This motion is commanded only when the axis is in the ‘Standstill’ or ‘Continuous Motion’ or ‘Discrete Motion’ or ‘Synchronized Motion’ state. If this is not the case, the ‘Error’ output is set to FALSE and ‘ErrorID’ indicates an error value that designates the state the axis is currently in.
- Within the FB, the ‘distance’, ‘velocitydiff’, ‘acceleration’, ‘deceleration’ and ‘jerk’ input variables are monitored only for their value range. If they are exceeded, an error number referring to the variable is output at the ‘ErrorID’ output and ‘Error’ is set to TRUE. Moreover, the maximum speed and acceleration data is limited within the motion controller. If speed values more than getriebe[0].dynamik.vb_max or ‘acceleration’ or ‘deceleration’ values more than getriebe[0].dynamik.a_max are commanded, the motion nevertheless takes place. The values are limited to the defined values and a warning, 60211 or 60188 to 60194, is issued.
- Values that correspond to a minimum ramp time of TA (cycle time of the IPO, e.g. 2 ms) and a maximum ramp time of 100s make sense as the ‘jerk’. The limit transition to non-jerk-limited speed realization lies at the minimum ramp time of TA. In the case of a value of 0, the maximum ramp time from the axis MDS is used to determine the ‘jerk’.
- With this function block, active commands can be modified by an additional, superimposed motion. The following rules apply to command assertion and command aborting:
If no interpolation is active, i.e. if the axis is in the ‘Standstill’ state, a command by the MC_MoveSuperImposed FB acts like a command by an MC_MoveRelative FB.
If interpolation is already active, i.e. the axis is in one of the ‘Continuous Motion’, ‘Discrete Motion’ or ‘Synchronized Motion’ states, a command by the MC_MoveSuperImposed FB starts a further, superimposed interpolation.
If a superimposed interpolation (cf. 2.) is already active, a new command by the MC_MoveSuperImposed FB ensures that only the currently superimposed interpolation is replaced by the new MC_MoveSuperImposed command, while the subordinate interpolation is not affected.
If a superimposed interpolation (cf. 2.) is already active, and a new command is issued with any MC_Move*** except MC_MoveSuperImposed, this results in aborting of both active interpolations, i.e. both the superimposed and the subordinate interpolations are replaced by the new MC_Move*** command.
- If a non-referenced axis is commanded by this FB, the axis travels at the speed defined by the getriebe[...].vb_reflow parameter of the axis machine data.
- The positions of the software limit switches (kenngr.swe_pos, kenngr.swe_neg, kenngr.swe_toleranz) are monitored if the axis has been defined either as a linear or a rotary axis. This means that the kenngr.achs_typ of the axis machine data has the value 0x0001 or 0x0002. If the target position exceeds the position of the software limit switches as a result of commanding, the axis nevertheless starts off. If a software limit switch position is reached, the axis is braked, keeping to the defined acceleration.