Some function blocks have a BufferMode input. These function blocks can be blended into each other in order to execute faster motions without stopping at the transitions.
- A command in the "mcAborting" BufferMode is executed immediately. The current motion and all the following ones are aborted as fast as possible. Afterwards, the programmed motion is executed. Blending is not supported in this BufferMode.
- A command in the "mcBuffered" BufferMode is only executed after all previously programmed motions have been completed.
- The BufferMode always needs to be set for the next (following) FB and affects the previous (current) FB.
- For the BufferMode input, the following options are available which define the transition to the next command. The selection is made via the MC_BUFFER_MODE enumeration type of the "L_MC1P_MotionControlBasic" function library for which the following constants (INT) are defined:
|
Name |
Initial value |
Info |
|---|---|---|
|
mcAborting |
0 |
" Non-buffered mode " (standard behaviour): The next motion command aborts the running motion command.
|
|
mcBuffered |
1 |
The next motion command is only executed if the previous motion command has been completed (status output Done = TRUE). |
|
Modes for blending |
||
|
In the following modes, the next motion command is also only executed if the previous motion command has been completed (status output Done = TRUE). In contrast to the " Buffered " mode, the axis does not stop between the two motion commands but "passes through" the first target position with a velocity as described in the following: |
||
|
mcBlendingLow |
2 |
The transition to the next motion command is done with the lower velocity of the two motion commands. |
|
mcBlendingPrevious |
3 |
The transition to the next motion command is done with the velocity of the running motion command. |
|
mcBlendingNext |
4 |
The transition to the next motion command is done with the velocity of the next motion command. |
|
mcBlendingHigh |
5 |
The transition to the next motion command is done with the higher velocity of the two motion commands. |
|
Note!
For FBs that coordinate the motion assignment of an axis (L_MC1P, L_MC2P), a buffer size of "2" is supported, i.e. a function block can be executed simultaneously and a second function block can wait in addition for its activation. If during this time, a third FB is started, the second FB is aborted and the third FB is executed immediately after the first FB. |
The following table provides an overview of the function blocks which support the "B uffered mode " and the function blocks which provide for a successive command in the " Buffered mode ":
|
Function block |
" Buffered mode " possible |
Successive command in the " Buffered mode " is possible |
Relevant signal for activating the successive command |
|---|---|---|---|
|
l |
l |
InSync |
|
|
l |
l |
InSync |
|
|
l |
l |
InGear |
|
|
l |
l |
InSync |
|
|
l |
l |
Done |
|
|
l |
l |
Done |
|
|
l |
l |
Done |
|
|
l |
l |
Done |
|
|
l |
l |
InEndVelocity |
|
|
l |
l |
InEndVelocity |
|
|
l |
l |
Done |
|
|
l |
l |
InVelocity |
|
|
l |
l |
Done |
|
|
l |
l |
Done |
|
|
- |
l |
Status |
|
|
- |
l |
Done AND NOT Execute |
The following subchapters contain examples of the different modes.