MC_MoveCircularAbsolute

MC_MoveCircularAbsolute 1:

FUNCTION_BLOCK MC_MoveCircularAbsolute

This function block commands a circular interpolated movement starting from the actual position of the TCP.The end point as well as the auxiliary point are defined absolutely in the specified coordinate system.

The speed of the robot is calculated with both

The final robot speed is set by the most limiting of these parameters.When the speed of the object, carried by the robot, does not need to be handled with special care, parameters related to Tool Center Point can be ignored (kept to default values). The speed along the trajectory may changed depending on the robot position in the space.

On the contrary, if a constant speed is required for the Tool Center Point, it shall be set with CartesianVel parameter.

Example: The speed of the object carried by the robot shall be 100mm/s.

Set the CartesianVel parameter to 100.However, axes related speed/acceleration parameters are still active.If you set the Velocity parameter too low (e.g 10%), the objet may not reach 100mm/s.

Syntax

Definition:

FUNCTION_BLOCK MC_MoveCircularAbsolute
VAR_INPUT
    Execute          : BOOL := FALSE;
    CircMode         : INT := 3;
    AuxPoint         : T_CartesianPos;
    EndPoint         : T_CartesianPos;
    Velocity         : REAL := REAL#100;
    Acceleration     : REAL := REAL#100;
    Deceleration     : REAL := REAL#100;
    CartesianVel     : REAL := REAL#99999;
    RotationalVel    : REAL := REAL#99999;
    CoordSystem      : UINT := 0;
    ToolNumber       : UINT := 0;
    BufferMode       : eMC_BUFFER_MODE := Buffered;
    TransitionMode   : UINT := 0;
    TransitionParam  : MC_TransitionParameter;
END_VAR
VAR_OUTPUT
    Busy                : BOOL := FALSE;
    Done                : BOOL := FALSE;
    Active              : BOOL := FALSE;
    CommandTransferred  : BOOL := FALSE;
    CommandAborted      : BOOL := FALSE;
    Error               : BOOL := FALSE;
    ErrorID             : UDINT := 0;
    MovementID          : INT := -1;
END_VAR
VAR_IN_OUT
    AxesGroup  : T_StaeubliRobot;
END_VAR

MC_MoveCircularAbsolute 2: Inputs

Name

Type

Description

Execute

BOOL

Rising edge triggers function execution

CircMode

INT

Specifies the meaning of the input signals 'AuxPoint' and 'CircDirection'. Only 'BORDER' mode is supported.

AuxPoint

T_CartesianPos

Coordinates of the intermediate position in the specified coordinate system.

EndPoint

T_CartesianPos

Coordinates of the end point in the specified coordinate system.

Velocity

REAL

Joint velocity. Percentage of the nominal speed of the robot. Range [0.01 .. 500]

Acceleration

REAL

Joint acceleration. Percentage of the nominal acceleration of the robot. Range [0.01 .. 500]

Deceleration

REAL

Joint deceleration. Percentage of the nominal deceleration of the robot. Range [0.01 .. 500]

CartesianVel

REAL

Optional: Maximum cartesian velocity at Tool Center Point in mm/s

RotationalVel

REAL

Optional: Maximum rotational velocity at Tool Center Point in degree/s

CoordSystem

UINT

Number of the coordinate system (located in the database) in which the AuxPoint and EndPoint variables are applicated

ToolNumber

UINT

Index of the Tool in the bank that shall be used for the movement.

BufferMode

eMC_BUFFER_MODE

0 = aborting / 1= buffered / 6-7 = blending

TransitionMode

UINT

Defines the profile of the robot trajectory nearby the set points. 0 = None / 3 = Corner distance / 10 = blending distances

TransitionParam

MC_TransitionParameter

MC_MoveCircularAbsolute 3: Outputs

Name

Type

Description

Busy

BOOL

Set when function block is executing. Reset when Done or Error is set

Done

BOOL

This output is set when function block has terminated with success

Active

BOOL

Set when commanded movement is currently executed by the robot

CommandTransferred

BOOL

Commanded motion is successfully buffered inside robot controler

CommandAborted

BOOL

Command is aborted by another command

Error

BOOL

This output is set when function block has terminated with error

ErrorID

UDINT

Error code

MovementID

INT

Identifier for this commanded movement

MC_MoveCircularAbsolute 4:/MC_MoveCircularAbsolute 5: Inputs/Outputs

Name

Type

Description

AxesGroup

T_StaeubliRobot

Data block for a robot