Aborting versus Buffered Modes¶
Some of the Function Blocks have an input called BufferMode. With this input, the Function Block can either work in a Non-buffered mode (default behavior) or in a Buffered mode. The difference between those modes is when they should start their action:
- A command in a non-buffered mode acts immediately, even if this interrupts another motion,
- A command in a buffered mode waits till the current Function Block sets its output Done (or InPosition, InVelocity…).
There are several options for the buffered mode. For this reason, this input is an ENUM of type MC_BUFFERMODE. The following modes have been identified:
- McAborting:Default mode without buffering. The next Function Block aborts an ongoing motion and the command affects the axis immediately.
- McBuffered:The next Function Block affects the axis as soon as the previous movement is Done There is no blending.
- McBlendingLow:The next Function Block controls the axis after the previous Function Block has finished (equivalent to MC_Buffered), but the axis will not stop between the movements. The velocity is blended with the lowest velocity of both commands (1 and 2) at the first end-position (1).
- McBlendingPrevious: Blending with the velocity of Function Block 1 at end-position of Function Block 1.
- McBlendingNext:Blending with velocity of Function Block 2 at end-position of Function Block 1.
- McBlendingHigh: Blending with highest velocity of Function Block 1 and Function Block 2 at end-position of Function Block 1.
ABB specific extensions are allowed after these defined Enums.
The following examples describe the different behavior of these modes:
Example 1: Standard behaviour of 2 following absolute Movements
Example 2: Aborting Motion
Example 3: Buffered Motion
The following table shows an overview of the effects on the defined Function Blocks:
Function Block | Can be specified as a buffered command | Can be followed by a buffered command | Relevant signal to activate the next buffered Function Block |
---|---|---|---|
MC_MoveAbsolute | Yes | Yes | Done |
MC_MoveRelative | Yes | Yes | Done |
MC_MoveAdditive | Yes | Yes | Done |
MC_MoveSuperimposed | Yes | Yes | – |
MC_MoveVelocity | Yes | Yes | In Velocity |
MC_Home | Yes | Yes | Done |
MC_Stop | Yes | Yes | Done AND NOT Execute |
MC_Power | Yes | Yes | Status |
MC_PositionProfile | Yes | Yes | Done |
MC_VelocityProfile | Yes | Yes | Done |
MC_AccelerationProfile | Yes | Yes | Done |
MC_CamIn | Yes | Yes - (in single mode) | EndOfProfile |
MC_CamOut | Yes | Yes | Done |
MC_GearIn | Yes | No | – |
MC_GearOut | Yes | Yes | Done |
MC_Phasing | Yes | Yes | – |
Note
The (administrative) Function Blocks not listed here are basically not buffered, nor can be followed by a buffered Function Block. However, the supplier may choose to support the various buffering / blending modes.
If an on-going motion is aborted by another movement, it can occur that the braking distance is not sufficient due to deceleration limits.
In rotary axis, a modulo can be added. A modulo axis could go to the earliest repetition of the absolute position specified, in cases where the axis should not change direction and reverse to attain the target position.
In linear systems, the resulting overshoot can be resolved by reversing, as each position is unique and therefore there is no need to add a modulo to reach the correct position..