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.
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 |
General library-independent statement on the diagnostic. A value not equal to GD.ET_Diag.Ok corresponds to a diagnostic message. |
|
q_etDiagExt |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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(...). |
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. |
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. |
Enumeration name: |
Ok |
Enumeration value: |
0 |
Description: |
Ok |
The motion job was transferred successfully.
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. |
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.
|
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. |
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. |
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. |