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 the First instance of the type MC_MoveRelative is combined with the Second instance of the type MC_MoveSuperImposed. The signal curve of CommandAborted 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 for MC_MoveSuperimposed.
../../../_images/MoveSuperimposedExample.png
Use of MC_MoveSuperImposed and cam plate motion
The double line of the slave Velocity indicates the effect on the Axis, which is in synchronized motion of cam plate execution and MC_MoveSuperimposed. The same applies to the associated slave position.
../../../_images/MoveSuperimposedExampleDiagramm.png

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

AXIS_REF_SM3

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.