Approaching a relative Cartesian position with a circular motion

Description

The function block MC_MoveCircularRelative executes a circular motion to a Cartesian end position. In order for the robot controller to be able to calculate the circular motion, an auxiliary position must be specified in addition to the end position.

The coordinates of the auxiliary position and end position are relative to the current position (= start position of the circular motion). The auxiliary position cannot be approximated. The motion always stops exactly at this point.

Approaching a relative Cartesian position with a circular motion 1:

This statement always refers to the current position of the robot. If the motion is interrupted and then re-executed, the robot executes the entire motion again, starting from the position at which it was interrupted.

Approaching a relative Cartesian position with a circular motion 2:
Function block MC_MoveCircularRelative

Inputs

Parameter

Type

Description

AxisGroupIdx

INT

Index of axis group

  • 1 … 5

Execute

BOOL

Starts/buffers the motion in the case of a rising edge of the signal.

Position

E6POS

Distance from the target position to the current position. The target position is based on the current position.

(>>> E6POS)

The data structure E6POS contains all components of the end position (= position of the TCP relative to the origin of the BASE coordinate system).

CircHP

E6POS

Coordinates of the Cartesian auxiliary position (relative to the current position)

(>>> E6POS)

The data structure E6POS contains all components of the auxiliary position (= position of the TCP relative to the origin of the BASE coordinate system).

Angle

REAL

Circular angle (= overall angle of the circular motion)

The circular angle makes it possible to extend the motion beyond the programmed end point or to shorten it. The actual end point thus no longer corresponds to the programmed end point.

The circular angle is not limited, i.e. a circular angle greater than ±360° can be specified:

  • > 0.0°: In the case of a positive angle, the motion is carried out from the start point via CircHP towards Position.
  • < 0.0°: In the case of a negative angle, the motion is carried out from the start point via Position towards CircHP.
  • = 0.0°: The circular angle is ignored. End position is Position. The radius of the circle is calculated on the basis of the start position, CircHP and Position.

Default: 0.0°

Velocity

REAL

Velocity for the path motion

  • 0 … 2 m/s

The maximum value is dependent on the robot type and refers to the value of DEF_VEL_CP of the robot system.

Default: 0 m/s (= velocity is not changed)

Acceleration

REAL

Acceleration for the path motion

  • 0 … 2.3 m/s2

The maximum value is dependent on the robot type and refers to the value of DEF_ACC_CP of the robot system.

Default: 0 m/s2 (= acceleration is not changed)

CoordinateSystem

COORDSYS

Coordinate system to which the Cartesian coordinates of the auxiliary or end position refer

(>>> COORDSYS)

OriType

INT

Orientation control of the TCP

  • 0: VAR
  • 1: CONSTANT
  • 2: JOINT

(>>> OriType)

CircType

INT

Orientation control during the circular motion

  • 0: BASE
  • 1: PATH

(>>> CircType)

Approximate

APO

Approximation parameter

(>>> APO)

QueueMode

INT

Mode in which the statement is executed

  • 1: ABORTING
  • 2: BUFFERED

(>>> QueueMode)

Outputs

Parameter

Type

Description

ComAcpt

BOOL

TRUE = statement was completely transferred and confirmed by the robot controller.

ComBusy

BOOL

TRUE = statement was transferred and confirmed by the robot controller, but has not yet been executed completely.

Busy

BOOL

TRUE = function block has not yet been executed completely.

Active

BOOL

TRUE = motion is currently being executed

Done

BOOL

TRUE = motion has stopped

CommandAborted

BOOL

TRUE = statement/motion has been aborted

Error

BOOL

TRUE = error in function block

ErrorID

DINT

Error number