MC_MoveRelative_SML (FB)

FUNCTION_BLOCK FINAL MC_MoveRelative_SML

Commands a controlled motion of a specified distance relative to the position at the time of the execution.

Note

The motion completes with velocity zero.

The following figure shows the example of the combination of two instances of MC_MoveRelative_SML:

  1. The left part of the timing diagram illustrates the case if the second FB is called after the first one. If first reaches the commanded distance 6000 (and the velocity is 0), then the output Done causes the second FB to move the commanded distance 4000 to the resulting absolute position 10000.

  2. The right part of the timing diagram illustrates the case if the second FB starts the execution while the first FB is still executing. In this case, the first motion is interrupted and aborted by the Test signal during the constant velocity phase of the first FB. The second FB adds the distance 4000 to the actual position of 3250 to the resulting absolute position of 7250.

../_images/MC_MoveRelative_Example.png
InOut:

Scope

Name

Type

Comment

Inout

Axis

Axis_REF_SML

Reference to the axis

Input

Execute

BOOL

Rising edge: The motion is started

Distance

LREAL

Relative distancefor the motion (in technical units [u])

Velocity

LREAL

Value of the maximum velocity (always positive) (not necessarily reached) [u/s]

Acceleration

LREAL

Value of the acceleration (always positive) (increasing energy of the motor) [u/s²]

Deceleration

LREAL

Value of the deceleration (always positive) (decreasing energy of the motor) [u/s²]

Output

Done

BOOL

Commanded distance reached

Busy

BOOL

The motion is not finished and new output values are to be expected

CommandAborted

BOOL

The motion was interrupted by a motion command acting on the same axis

Error

BOOL

Signals that an error has occured

ErrorID

SML_ERROR

Error number