IF_RobotMotion - SetStopOnPath (Method)

Overview

Type:

Method

Available as of:

V2.3.1.0

This chapter provides information on:

Task

Stop the movement on a connected path

Description

With the method SetStopOnPath(...), a command can be issued for the robot to stop the movement at a certain position on an existing connected path.

The following criteria must be met in order to issue a stop-on-path:

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

  • The configuration of the robot must have been completed successfully (xConfigDone = TRUE and xConfigOk = TRUE).

  • At the time of the issuing, no other motion command can be processed.

  • There must be at least one valid connected path available.

  • The segment, the robot should stop in, must be known by the robot.

It is only possible to set a stop position in the last loaded connected path.

It is not possible to set a stop position if the robot has already passed the requested stop position, or if the robot would pass the position during the attempt to stop.

The method SetStopOnPath(…) returns a unique identifier for each stop-on-path.

The unique identifier for each stop-on-path is incremented by 1.

After GPL.Gc_udiMaxNumberOfStopsOnPath is reached, the unique identifier is reset to 1.

Also refer to Interaction with Stop-on-path.

Interface

Input

Data type

Description

i_udiStopSegmentId

UDINT

Id of the segment the robot should stop in.

The segment must be known by the robot.

i_lrStopOffset

LREAL

Position, where the robot should stop inside the given segment.

Positive values of i_lrStopOffset refer to the beginning of the segment, and negative values refer to its end.

The value 0.0 stops the robot at the beginning of the segment.

To stop the robot at the end of a segment, set i_lrStopOffset of the next segment to 0.0.

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 = GD.ET_Diag.Ok -> Status message

q_etDiag <> GD.ET_Diag.Ok -> Diagnostic message

q_sMsg

STRING[80]

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

Return Value

Data type

Description

UDINT

Unique Id of the stop command.

To reset the stop command, call the method ResetStopOnPath and submit the unique Id.

In case of an invalid configuration, the return value of the method is 0.

Diagnostic Messages

q_etDiag

q_etDiagExt

Enumeration value

Description

OK

Ok

0

Ok

ExecutionAborted

CommandRefused

10

The command has been denied.

ExecutionAborted

ConfigInvalid

1

The configuration is invalid.

ExecutionAborted

Disabled

51

Disabled

ExecutionAborted

NotReady

77

The robot is not ready.

ExecutionAborted

StopSegmentIdNotFound

186

The stop segment Id was not found.

ExecutionAborted

NoConnectedPathAvailable

9

There is no connected path available.

ExecutionAborted

NoMoreStopsOnPathAvailable

190

There are no more stops-on-path available.

ExecutionAborted

StopPositionAleadyPassed

188

The stop position was already passed.

ExecutionAborted

StopNotPossible

189

The stop is not possible.

ExecutionAborted

ExternalPositionSourceConfigured

205

The external position source is configured.

InputParameterInvalid

StopSegmentIdRange

185

The stop segment Id is out of range.

InputParameterInvalid

StopOffsetRange

187

The stop offset is out of range.

UnexpectedProgramBehavior

UnexpectedFeedback

13

A feedback value was invalid.

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 (for example, out of two separate tasks).

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

You can use only one task to send move commands.

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.

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.

Setting a stop-on-path is not possible when an external position source for the robot components is configured.

Do not set a stop-on-path.

NoConnectedPathAvailable

Enumeration name:

NoConnectedPathAvailable

Enumeration value:

9

Description:

There is no connected path available.

Issue

Cause

Solution

The motion job was aborted.

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

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

NoMoreStopsOnPathAvailable

Enumeration name:

NoMoreStopsOnPathAvailable

Enumeration value:

190

Description:

There are no more stops-on-path available.

Issue

Cause

Solution

The motion job was aborted.

No further stop requests can be issued. The maximum number of stop requests is reached.

Wait until requests to stop have been reset before sending further requests.

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.

StopNotPossible

Enumeration name:

StopNotPossible

Enumeration value:

189

Description:

The stop is not possible.

Issue

Cause

Solution

The motion job was aborted.

The robot would pass the specified stop position with the given motion parameters.

Ensure that the method SetStopOnPath(…) is issued early enough so that the robot can stop at the given position.

StopOffsetRange

Enumeration name:

StopOffsetRange

Enumeration value:

187

Description:

The stop offset is out of range.

Issue

Cause

Solution

The motion job was aborted.

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

The absolute value of i_lrStopPosition must be less or equal to the segment length selected via i_udiStopSegmentId.

NOTE: If the limitation of the resulting acceleration of space movements is initialized successfully, the arc length for blending zones and splines is calculated to get more precise approximation of the arc length.

StopPositionAleadyPassed

Enumeration name:

StopPositionAleadyPassed

Enumeration value:

188

Description:

The stop position was already passed.

Issue

Cause

Solution

The motion job was aborted.

The robot has already passed the specified stop position.

Ensure that the method SetStopOnPath(…) is issued before the stop position is passed.

StopSegmentIdNotFound

Enumeration name:

StopSegmentIdNotFound

Enumeration value:

186

Description:

The stop segment Id was not found.

Issue

Cause

Solution

The motion job was aborted.

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

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

StopSegmentIdRange

Enumeration name:

StopSegmentIdRange

Enumeration value:

185

Description:

The stop segment Id is out of range.

Issue

Cause

Solution

The motion job was aborted.

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

At the input i_udiStopSegmentId, 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.