MC_MoveSuperImposed (FB)ΒΆ
FUNCTION_BLOCK FINAL MC_MoveSuperImposed
The function block causes an additional movement, on top of an ongoing (original) movement of the axis. The original movement is not aborted, instead the movement by the given distance is superimposed.
If MC_MoveSuperImposed
is active, a further aborting command on the
same axis interrupts both commands, i.e. MC_MoveSuperImposed
and the
original command. A further buffered or blending command does _not_
interrupt the superimposed movement. The superimposed movement is
continued in parallel.
The function block MC_MoveSuperImposed
must be called after the
function block of the original movement. If a movement command is called
after MC_MoveSuperImposed
, the error SMC_MSI_INVALID_EXECUTION_ORDER
is returned.
If an instance of MC_MoveSuperImposed
is active and a second instance
of type MC_MoveSuperImposed
is called, an error is reported by the
second instance.
If an instance of MC_MoveSuperImposed
is active and is started again
(with possibly different inputs) with a new rising edge on Execute
,
the active superimposed movement is aborted and replaced by the new
superimposed movement, while the original motion function block
remains active. The new distance is relative to the start of the
first superimposed movement. This means that a new distance of 0
will result in a slowdown that cancels the effect of the first
superimposed movement.
To halt a superimposed movement, use the function block
MC_HaltSuperImposed. While MC_HaltSuperImposed
is active,
no further superimposed movement can be started.
In the standstill state of the axis, MC_MoveSuperImposed
behaves
like MC_MoveRelative.
The Acceleration
, Deceleration
and Jerk
inputs are
additional values (not absolute values), which are added to the
original movement.
The original function block will always complete its movement
within the same duration and with no consideration for any instance of
MC_MoveSuperImposed
acting at the same time.
MC_MoveSuperImposed
acts on the slave axis while MC_Phasing operates
on the master axis.
- Example
- Use of
MC_MoveSuperImposed
The following illustration shows how theFirst
instance of the typeMC_MoveRelative
is combined with theSecond
instance of the typeMC_MoveSuperImposed
. The signal curve ofCommandAborted
is not shown because the new command works on the same instance. The end position lies between 7000 and 8000 depending on the time behavior of the abortion of the second command set forMC_MoveSuperimposed
.Use ofMC_MoveSuperImposed
and cam plate motionThe double line of the slaveVelocity
indicates the effect on theAxis
, which is in synchronized motion of cam plate execution andMC_MoveSuperimposed
. The same applies to the associated slave position.
Slave Velocity
with MC_Superimposed
: Slave Velocity
under
the influence of MC_SuperImposed
.
Slave Position
with MC_Superimposed
: Slave Position
under
the influence of MC_SuperImposed
.
- InOut:
Scope
Name
Type
Comment
Inout
Axis
Reference to the axis
Input
Execute
BOOL
A rising edge starts the superimposed movement.
Abort
BOOL
Aborts an ongoing movement and resets all outputs. If set during an active movement, then the axis position will jump back to the position it would have had without the superimposed movement.
Distance
LREAL
Additional distance in technical units [u]. If the FB interrupts itself, a superimposed movement aborted by a new superimposed movement, then the distance is relative to the start position of the interrupted superimposed movement.
VelocityDiff
LREAL
Maximum velocity of the superimposed movement
Acceleration
LREAL
Maximum acceleration of the superimposed movement
Deceleration
LREAL
Maximum deceleration of the superimposed movement
Jerk
LREAL
Maximum jerk of the superimposed movement
Output
Done
BOOL
TRUE
: Distance is reachedBusy
BOOL
TRUE
: Function block is in operation.CommandAborted
BOOL
TRUE
: Execution has been interrupted by another function block instance operating onAxis
.Error
BOOL
TRUE
: Error has occurred.ErrorID
SMC_ERROR
Error identification
DistanceTravelled
LREAL
The superimposed distance travelled so far. Only set if Busy or Done.
SuperImposedVelocity
LREAL
The current superimposed velocity. Only set if Busy or Done.
SuperImposedAcceleration
LREAL
The current superimposed acceleration. Only set if Busy or Done.