MC_MoveAbsoluteCA

MC_MoveAbsoluteCA 1:

This function block instructs a single axis to move to the absolute position defined in the function block, based on collision avoidance. Collision Avoidance has higher priority than the motion command. Therefore, the axis may slow down or wait while the motion command is executed to avoid a collision. The function block does not output the signal Done until the axis has reached its target position.

MC_MoveAbsoluteCA 2: VAR_INPUT

VAR_INPUT
    Execute               : BOOL;
    ContinuousUpdate      : BOOL;
    Position              : MC_LREAL := MC_INVALID;
    Velocity              : MC_LREAL := MC_INVALID;
    Acceleration          : MC_LREAL := MC_DEFAULT;
    Deceleration          : MC_LREAL := MC_DEFAULT;
    Jerk                  : MC_LREAL := MC_DEFAULT;
    Gap                   : MC_LREAL := MC_DEFAULT;
    BufferMode            : MC_BUFFER_MODE := mcAborting;
    Direction             : Tc3_Mc3Definitions.MC_DIRECTION;
    Options               : ST_MoveAbsoluteCAOptions;
END_VAR

Name

Type

Description

Execute

BOOL

The command is triggered by a rising edge at this input.

ContinuousUpdate

BOOL

In this version, continuous updating is only available for the Gap.

Position

MC_LREAL

Specified absolute target position for the command.

From TF5400 V3.1.10.30:
If positioning is performed using modulo (Direction != mcDirectionNonModulo), the target position must be in the Interval[0, ModuloFaktor]. Additional turns are commanded via the parameter ST_MoveAbsoluteCAOptions.AdditionalTurns.

If the target position is within the Tolerance Window, then the Direction = mcDirectionPositive and Direction = mcDirectionNegative for the position will be ignored without additional turns.

Up to TF5400 V3.1.10.14 additional turns are commanded by commanding larger target positions than the ModuloFaktor.

Further details in the notes to Modulo positioning.

Velocity

MC_LREAL

The velocity (>0) is limited by the maximum axis velocity. If no value (0) is entered, an error occurs because there is no standard velocity.

Acceleration

MC_LREAL

The acceleration (≥1) is limited by the maximum axis acceleration. If no value (0) is entered, the standard axis acceleration is used.

Deceleration

MC_LREAL

The deceleration (≥1) is limited by the maximum axis deceleration. If no value (0) is entered, the standard axis deceleration is used.

Jerk

MC_LREAL

If no value (0) is entered, the standard axis jerk is used. The minimum jerk must be ≥100, the maximum jerk is not limited.

Gap

MC_LREAL

This value determines the minimum distance to the predecessor for Collision Avoidance. If no value is entered, the default value of the group is used.

Notice When using geo-compensation, special attention must be paid to the distance. The mover distance for Collision Avoidance always relates positionally and dynamically to the offset path geometry. Since the distance refers to the offset path when using geo-compensation, adjacent movers in the curves can collide if it is set too low. Ensure that there is sufficient distance.

BufferMode

MC_BUFFER_MODE

In this version only mcAborting and mcBuffered are available (see MC_BUFFER_MODE).

Direction

(available from V3.1.10.1)

Tc3_Mc3Definitions.MC_DIRECTION

Defines the direction of the movement (default mcDirectionNonModulo), see MC_DIRECTION.

Options

ST_MoveAbsoluteCAOptions

For more information about the available options (from V3.1.2.47) see the documentation for ST_MoveAbsoluteCAOptions.

MC_MoveAbsoluteCA 3:

The axis does not reach the target velocity, acceleration or deceleration

The values for velocity, acceleration or deceleration may be automatically limited to the maximum axis velocity, acceleration and deceleration. Check the parameters Maximum Dynamics and Default Dynamics of the axis. It is also possible that the values of Maximum Dynamics are smaller than the Default Dynamics.

MC_MoveAbsoluteCA 4: MC_MoveAbsoluteCA 5: VAR_IN_OUT

VAR_IN_OUT
    Axis                  : AXIS_REF;
END_VAR

Name

Type

Description

Axis

AXIS_REF

Reference to an axis (see AXIS_REF).

MC_MoveAbsoluteCA 6: VAR_OUTPUT

VAR_OUTPUT
    Done                  : BOOL;
    Busy                  : BOOL;
    Active                : BOOL;
    CommandAborted        : BOOL;
    Error                 : BOOL;
    ErrorId               : UDINT;
END_VAR

Name

Type

Description

Done

BOOL

This output becomes TRUE when the command was successfully executed.

Busy

BOOL

This output becomes TRUE when the command is started with Execute and remains so as long as the function block executes the command. If Busy becomes FALSE again, the function block is ready for a new command. At the same time, one of the outputs Done, CommandAborted or Error is set.

Active

BOOL

If Active is TRUE, the function block controls the axis.

CommandAborted

BOOL

This output becomes TRUE if the command was interrupted by another command.

Error

BOOL

This output becomes TRUE if an error has occurred during command execution.

ErrorId

UDINT

Contains the command-specific error code of the last executed command. Details of the error code can be found in the ADS error documentation or in the NC error documentation (error codes 0x4nnn and 0x8nnn).

Requirements

Development environment

Target system type

PLC libraries to be linked

TwinCAT V3.1.4018.26

TF5400 Advanced Motion Pack V3.1.1.17

PC or CX (x86 or x64)

Tc3_McCollisionAvoidance, Tc3_McCoordinatedMotion, Tc2_MC2