IF_RobotMotion - MoveSync (Method)

Overview

Type:

Method

Available as of:

V1.0.0.0

This chapter provides information on:

Task

Synchronous motion of an auxiliary axis.

Description

With the method MoveSync(...), a motion job for an auxiliary axis can be issued, in order to move to a target position synchronously to the path motion.

The following criteria must be met in order to issue synchronous auxiliary axis motions:

  • The robot is initialized and ready to operate (FB_Robot.xEnable = TRUE AND FB_Robot.xActive = TRUE AND FB_Robot.xReady = TRUE).

  • The configuration of the robot has completed successfully (xConfigDone = TRUE AND xConfigOk = TRUE).

  • At the time of the issuing, no other motion command is being processed.

  • The space motion is configured within which the synchronous auxiliary axis motion will occur.

  • The start position on the path lies beyond the end position of the path of the last auxiliary axis motion.

  • The start position on the path is greater than the robot path position.

  • The end position on the path of an auxiliary axis motion is greater than the start position on the path.

A synchronous motion of an auxiliary axis over multiple connected paths is not possible.

An issued auxiliary axis motion is only executed if the input parameter xStart of the robot is set to TRUE.

If xStart is set to FALSE during a running auxiliary axis motion, then the path motion is decelerated. Thereby the issued synchronous auxiliary axis motions also come to a standstill.

If xStart is set back to TRUE, then the path motion and the incomplete auxiliary axis motion are continued.

Interface

Input

Data type

Description

i_etComponent

ET_RobotComponent

Identifier of the auxiliary axis that must be moved for this motion job.

Valid values are:

  • ET_RobotComponent.OrientationX

  • ET_RobotComponent.OrientationY

  • ET_RobotComponent.OrientationZ

  • ET_RobotComponent.AuxAx1 ... AuxAx10

For further information, refer to ET_RobotComponent.

i_udiMovementId

UDINT

Id of the motion job of the auxiliary axis.

The Id of a motion job of an auxiliary axis in a connected path must be unique.

i_etMode

ET_PositioningMode

Type of the auxiliary axes motion.

i_lrTarget

LREAL

Target position of the motion job.

i_udiStartSegmentId

UDINT

Id of the segment of the path motion in which the auxiliary axis motion starts.

i_lrStartOffset

LREAL

Position of the path motion within the segment with the i_udiStartSegmentId Id where the auxiliary axis motion starts.

Positive values of i_IrStartOffset refer to the segment start and negative values refer to the segment end.

Special case: i_lrStartOffset = 0.0 -> In this case the motion of the auxiliary axis starts at the start of the segment with the i_udiStartSegmentId Id.

i_udiEndSegmentId

UDINT

Id of the segment of the path motion in which the auxiliary axis motion ends.

i_lrEndOffset

LREAL

Position of the path motion within the segment with the i_udiEndSegmentId Id where the auxiliary axis motion ends.

Positive values of i_lrEndOffset refer to the segment start and negative values refer to the segment end.

Special case: i_lrEndOffset = 0.0 -> In this case the motion of the auxiliary axis ends at the end of the segment with the i_udiEndSegmentId Id.

i_xAccMinimized

BOOL

If xAccMinimized = TRUE then the auxiliary axis motion is moved with as little acceleration as possible.

If xAccMinimized = FALSE then the auxiliary axis motion is moved with as little velocity as possible.

Output

Data type

Description

q_etDiag

GD.ET_Diag

General library-independent statement on the diagnostic.

A value not equal to GD.ET_Diag.Ok corresponds to a diagnostic message.

q_etDiagExt

ET_DiagExt

POU-specific output on the diagnostic.

q_etDiag = ET_Diag.Ok -> Status message

q_etDiag <> ET_Diag.Ok -> Diagnostic message

q_sMsg

STRING[80]

Event-triggered message that gives additional information on the diagnostic state.

Diagnostic Messages

q_etDiag

q_etDiagExt

Enumeration value

Description

OK

IdenticalTarget

14

A move command has been sent to an identical target position.

OK

Ok

0

Ok

ExecutionAborted

CommandRefused

10

The command has been denied.

ExecutionAborted

ConfigInvalid

1

The configuration is invalid.

ExecutionAborted

Disabled

51

Disabled

ExecutionAborted

EndSegmentIdNotFound

32

The end segment Id was not found.

ExecutionAborted

MotionParameterInvalid

130

The motion parameters are invalid.

ExecutionAborted

MovementIdRange

133

The movement Id is out of range.

ExecutionAborted

NoConnectedPathAvailable

9

There is no connected path available.

ExecutionAborted

NoMoreSegmentsAvailable

86

There are no more segments available.

ExecutionAborted

NotReady

77

The robot is not ready.

ExecutionAborted

PathPositionEndInvalid

25

The end position on the path is invalid.

ExecutionAborted

PathPositionStartAlreadyPassed

81

The robot already passed the start position on the path.

ExecutionAborted

PathPositionStartInvalid

24

The start position on the path is invalid.

ExecutionAborted

StartSegmentIdNotFound

31

The start segment Id was not found.

ExecutionAborted

MoveAsyncTriggered

181

An asynchronous auxiliary motion job is triggered.

ExecutionAborted

MoveAsyncActive

180

An asynchronous auxiliary motion job is already active.

ExecutionAborted

ExternalPositionSourceConfigured

205

The external position source is configured.

InputParameterInvalid

AuxiliaryAxisNotConfigured

127

The auxiliary axis is not configured.

InputParameterInvalid

ComponentInvalid

132

The component is invalid.

InputParameterInvalid

EndOffsetRange

78

The end offset is out of range.

InputParameterInvalid

EndSegmentIdRange

28

The end segment Id is out of range.

InputParameterInvalid

ModeInvalid

26

The mode is invalid.

InputParameterInvalid

MovementIdAlreadyExists

123

The movement Id already exists.

InputParameterInvalid

StartOffsetRange

116

The start offset is out of range.

InputParameterInvalid

StartSegmentIdRange

27

The start segment Id is out of range.

InputParameterInvalid

OrientationNotAvailable

199

The orientation is not available.

UnexpectedProgramBehavior

AccDecDistanceRange

33

The AccDec distance is out of range.

UnexpectedProgramBehavior

InitializationFailed

4

The initialization was unsuccessful.

UnexpectedProgramBehavior

InterfaceInvalid

3

An interface is invalid.

UnexpectedProgramBehavior

UnexpectedFeedback

13

A feedback value was invalid.

AccDecDistanceRange

Enumeration name:

AccDecDistanceRange

Enumeration value:

33

Description:

The AccDec distance is out of range.

The motion job was aborted.

AuxiliaryAxisNotConfigured

Enumeration name:

AuxiliaryAxisNotConfigured

Enumeration value:

127

Description:

The auxiliary axis is not configured.

Issue

Cause

Solution

The motion job was aborted.

The auxiliary axis transferred at the input i_etComponent is not configured.

Ensure that the axis is configured before using an auxiliary axis.

CommandRefused

Enumeration name:

CommandRefused

Enumeration value:

10

Description:

The command has been denied.

Issue

Cause

Solution

The motion job was aborted.

A positioning command is already being processed. Two move commands, for example MoveL(...), MoveC(...), MoveS(...) or MoveSync(...), are called simultaneously.

Ensure that move commands are called one after another and not simultaneously.

ComponentInvalid

Enumeration name:

ComponentInvalid

Enumeration value:

132

Description:

The component is invalid.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_etComponent is invalid.

Ensure that at the input i_etComponent a valid component has been transferred.

ConfigInvalid

Enumeration name:

ConfigInvalid

Enumeration value:

1

Description:

The configuration is invalid.

Issue

Cause

Solution

The motion job was aborted.

The robot configuration is invalid.

Call the method ConfigDone(...) to complete the configuration of the robot.

Disabled

Enumeration name:

Disabled

Enumeration value:

51

Description:

Disabled

Issue

Cause

Solution

The motion job was aborted.

FB_Robot.xEnable = FALSE -> The robot is not active.

Set FB_Robot.xEnable :=TRUE to enable the robot.

EndOffsetRange

Enumeration name:

EndOffsetRange

Enumeration value:

78

Description:

The end offset is out of range.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_lrEndOffset lies outside the valid range.

At the input i_lrEndOffset, a value less than or equal to the length of the selected segment (i_udiEndSegmentId) must be transferred.

EndSegmentIdNotFound

Enumeration name:

EndSegmentIdNotFound

Enumeration value:

32

Description:

The end segment Id was not found.

Issue

Cause

Solution

The motion job was aborted.

The segment with the Id transferred at the input i_udiEndSegmentId was not found in the latest connected path.

Ensure that the segment with the Id i_udiEndSegmentId is contained in the latest connected path.

EndSegmentIdRange

Enumeration name:

EndSegmentIdRange

Enumeration value:

28

Description:

The end segment Id is out of range.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_udiEndSegmentId lies outside the valid range.

At the input i_udiEndSegmentId, a value greater than or equal to 1 must be transferred.

ExternalPositionSourceConfigured

Enumeration name:

ExternalPositionSourceConfigured

Enumeration value:

205

Description:

The external position source is configured.

Issue

Cause

Solution

The motion job was aborted.

An external position source for the robot components cartesian, orientation and auxiliary axes is configured.

Sending a motion job is not possible when an external position source for the robot components is configured.

Do not send a motion job.

IdenticalTarget

Enumeration name:

IdenticalTarget

Enumeration value:

14

Description:

A move command has been sent to an identical target position.

Issue

Cause

Solution

The motion job was aborted.

The motion job target position transferred at the input i_lrTarget is identical to the target position of the previously issued motion job.

A corresponding entry is created in the logger.

Ensure that the target position is different to last target position of the previously issued motion job.

Decrease the value of IF_RobotConfigurationAdvanced.lrMinPositionDelta, if necessary.

InitializationFailed

Enumeration name:

InitializationFailed

Enumeration value:

4

Description:

The initialization was unsuccessful.

The motion job was aborted.

InterfaceInvalid

Enumeration name:

InterfaceInvalid

Enumeration value:

3

Description:

An interface is invalid.

The motion job was aborted.

ModeInvalid

Enumeration name:

ModeInvalid

Enumeration value:

26

Description:

The mode is invalid.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_etMode is invalid.

Ensure that the value of i_etMode is contained in ET_PositioningMode.

If the value of i_etComponent does not represent a periodic auxiliary axis, the mode ET_PositioningMode.PeriodicShort is not available.

MotionParameterInvalid

Enumeration name:

MotionParameterInvalid

Enumeration value:

130

Description:

The motion parameters are invalid.

Issue

Cause

Solution

The motion job was aborted.

The motion parameters of the auxiliary axis are invalid.

At least one of the motion parameters (Velocity, Acceleration, Deceleration, Ramp) is invalid.

Ensure that the motion parameters used for each ET_RobotComponent are valid.

MoveAsyncActive

Enumeration name:

MoveAsyncActive

Enumeration value:

180

Description:

An asynchronous auxiliary motion job is already active.

Issue

Cause

Solution

The motion job was aborted.

An asynchronous auxiliary motion job is already active.

Ensure that asynchronous auxiliary motion jobs are finished before issuing a synchronous auxiliary motion job.

Refer to No MoveSync motion before the end of a MoveAsync motion.

MoveAsyncTriggered

Enumeration name:

MoveAsyncTriggered

Enumeration value:

181

Description:

An asynchronous auxiliary motion job is triggered.

Issue

Cause

Solution

The motion job was aborted.

An asynchronous auxiliary motion job is triggered.

Ensure that asynchronous auxiliary motion jobs are finished before issuing another synchronous auxiliary motion job.

Refer to No MoveSync motion before the end of a MoveAsync motion.

MovementIdAlreadyExists

Enumeration name:

MovementIdAlreadyExists

Enumeration value:

123

Description:

The movement Id already exists.

Issue

Cause

Solution

The motion job was aborted.

The Id transferred at the input i_udiMovementId already exists for an auxiliary axis motion.

Ensure that unique Ids are used within a connected path.

MovementIdRange

Enumeration name:

MovementIdRange

Enumeration value:

133

Description:

The movement Id is out of range.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_udiMovementId lies outside the valid range.

At the input i_udiMovementId, a value greater than or equal to 1 must be transferred.

NoConnectedPathAvailable

Enumeration name:

NoConnectedPathAvailable

Enumeration value:

9

Description:

There is no connected path available.

Issue

Cause

Solution

The motion job was aborted.

MoveSync(...) called but no connected path is available.

Create a connected path before calling MoveSync(...).

NoMoreSegmentsAvailable

Enumeration name:

NoMoreSegmentsAvailable

Enumeration value:

86

Description:

There are no more segments available.

Issue

Cause

Solution

The motion job was aborted.

No more motion jobs can be issued for a synchronous auxiliary motion.

Wait until move commands for synchronous auxiliary movements have been executed before sending new move commands.

NotReady

Enumeration name:

NotReady

Enumeration value:

77

Description:

The robot is not ready.

Issue

Cause

Solution

The motion job was aborted.

The robot is not ready.

Ensure that the configuration of the robot is finished, the robot is enabled and the drives are ready.

Ok

Enumeration name:

Ok

Enumeration value:

0

Description:

Ok

The motion job was transferred successfully.

OrientationNotAvailable

Enumeration name:

OrientationNotAvailable

Enumeration value:

199

Description:

The orientation is not available.

Issue

Cause

Solution

The motion job was aborted.

The orientation transferred at the input i_etComponent is not available.

Ensure that the transformation used supports the orientation.

PathPositionEndInvalid

Enumeration name:

PathPositionEndInvalid

Enumeration value:

25

Description:

The end position on the path is invalid.

Issue

Cause

Solution

The motion job was aborted.

The end position of the auxiliary axis motion on the path lies in front of the start position of the auxiliary axis motion on the path.

Ensure that the path position start is greater than the path position end.

Verify the values of i_udiStartSegmentId, i_lrStartOffset, i_udiEndSegmentId, and i_lrEndOffset of MoveSync(...).

PathPositionStartAlreadyPassed

Enumeration name:

PathPositionStartAlreadyPassed

Enumeration value:

81

Description:

The robot already passed the start position on the path.

Issue

Cause

Solution

The motion job was aborted.

The robot has already passed the specified start position of the auxiliary axis motion on the path.

Ensure that MoveSync(...) is called early enough to make sure that the robot has not passed the start position on the path yet.

PathPositionStartInvalid

Enumeration name:

PathPositionStartInvalid

Enumeration value:

24

Description:

The start position on the path is invalid.

Issue

Cause

Solution

The motion job was aborted.

The start position of the auxiliary axis motion on the path lies in front of the end of the previously issued auxiliary axis motion.

Ensure that the path position start is greater than the path position end of the previously issued auxiliary axis movement.

Verify the values of i_udiStartSegmentId and i_lrStartOffset of MoveSync(...).

StartOffsetRange

Enumeration name:

StartOffsetRange

Enumeration value:

116

Description:

The start offset is out of range.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_lrStartOffset lies outside the valid range.

At the input i_lrStartOffset, a value less than or equal to the length of the selected segment (i_udiStartSegmentId) must be transferred.

StartSegmentIdNotFound

Enumeration name:

StartSegmentIdNotFound

Enumeration value:

31

Description:

The start segment Id was not found.

Issue

Cause

Solution

The motion job was aborted.

The segment with the Id transferred at the input i_udiStartSegmentId was not found in the latest connected path.

Ensure that the segment with the Id i_udiStartSegmentId is contained in the latest connected path.

StartSegmentIdRange

Enumeration name:

StartSegmentIdRange

Enumeration value:

27

Description:

The start segment Id is out of range.

Issue

Cause

Solution

The motion job was aborted.

The value transferred at the input i_udiStartSegmentId lies outside the valid range.

At the input i_udiStartSegmentId, a value greater than or equal to 1 must be transferred.

UnexpectedFeedback

Enumeration name:

UnexpectedFeedback

Enumeration value:

13

Description:

A feedback value was invalid.

The motion job was aborted.