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 ofMC_MoveSuperImposedThe following illustration shows how theFirstinstance of the typeMC_MoveRelativeis combined with theSecondinstance of the typeMC_MoveSuperImposed. The signal curve ofCommandAbortedis 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 of Use ofMC_MoveSuperImposedand cam plate motionThe double line of the slaveVelocityindicates 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 reached- Busy- BOOL- TRUE: Function block is in operation.- CommandAborted- BOOL- TRUE: Execution has been interrupted by another function block instance operating on- Axis.- 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.