With the method MoveAsync(...), a motion job for an auxiliary axis can be issued in order to move to a target position asynchronously to the path motion.
The following criteria must be met in order to issue asynchronous auxiliary axis motions:
The robot must be initialized and ready to operate (FB_Robot.xEnable = TRUE and FB_Robot.xActive = TRUE and FB_Robot.xReady = TRUE).
The auxiliary axis has to be configured.
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.
If the start of an asynchronous auxiliary axis movement should be at a specific position on a connected path, the space motion has to be configured first.
The path position of the robot must be before (less than) the start position requested. (Refer to input parameters i_udiStartSegmentId and i_lrStartOffset below).
An asynchronous motion of an auxiliary axis over multiple connected paths is possible.
Input |
Data type |
Description |
---|---|---|
i_etComponent |
Identifier of the auxiliary axis that must be moved for this asynchronous motion job. Valid values are:
For further information, refer to ET_RobotComponent. |
|
i_udiMovementId |
UDINT |
Id of the asynchronous motion job of the auxiliary axis. The Id of a motion job (synchronous or asynchronous) of an auxiliary axis in a connected path must be unique. |
i_etMode |
Type of the asynchronous auxiliary axes motion (absolute or relative). |
|
i_lrTarget |
LREAL |
Target position of the asynchronous 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 cases:
|
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. |
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 |
MotionParameterInvalid |
130 |
The motion parameters are invalid. |
ExecutionAborted |
MovementIdRange |
133 |
The movement Id is out of range. |
ExecutionAborted |
NotReady |
77 |
The robot is not ready. |
ExecutionAborted |
MoveSyncTriggered |
179 |
A synchronous auxiliary motion job is triggered. |
ExecutionAborted |
MoveSyncActive |
178 |
A synchronous auxiliary motion job is active. |
ExecutionAborted |
MoveAsyncTriggered |
181 |
An asynchronous auxiliary motion job is triggered. |
ExecutionAborted |
MoveAsyncActive |
180 |
An asynchronous auxiliary motion job is already active. |
ExecutionAborted |
StartSegmentIdNotFound |
31 |
The start segment Id was not found. |
ExecutionAborted |
NoConnectedPathAvailable |
9 |
There is no connected path available. |
ExecutionAborted |
NoMoreMoveAsyncEventsAvailable |
177 |
There are no more asynchronous motion events available. |
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 |
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 |
OrientationNotAvailable |
199 |
The orientation is not available. |
ExecutionAborted |
PathPositionStartAlreadyPassed |
81 |
The robot already passed the start position on the path. |
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. |
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: |
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. |
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. |
Sending a motion job is not possible when an external position source for the robot components is configured. Do not send a motion job. |
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. |
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. |
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. |
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 an asynchronous auxiliary motion job. |
Refer to No second MoveAsync motion before the end of the first MoveAsync motion.
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 asynchronous auxiliary motion job. |
Refer to No second MoveAsync motion before the end of the first MoveAsync motion.
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 for auxiliary axis movements. |
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 is outside the valid range. |
At the input i_udiMovementId, a value greater than or equal to 1 must be transferred. |
Enumeration name: |
MoveSyncActive |
Enumeration value: |
178 |
Description: |
A synchronous auxiliary motion job is active. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
A synchronous auxiliary motion job is active. |
Ensure that synchronous auxiliary motion jobs are finished before issuing an asynchronous auxiliary motion job. Ensure that an asynchronous auxiliary motion job starts after a synchronous auxiliary motion job is finished. |
Refer to No MoveAsync motion before the end of a MoveSync motion.
Enumeration name: |
MoveSyncTriggered |
Enumeration value: |
179 |
Description: |
A synchronous auxiliary motion job is triggered. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
A synchronous auxiliary motion job is triggered. |
Ensure that synchronous auxiliary motion jobs are finished before issuing an asynchronous auxiliary motion job. Ensure that an asynchronous auxiliary motion job starts after a synchronous auxiliary motion job is finished. |
Refer to No MoveAsync motion before the end of a MoveSync motion.
Enumeration name: |
NoConnectedPathAvailable |
Enumeration value: |
9 |
Description: |
There is no connected path available. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
MoveAsync(...) called but no connected path is available. |
Create a connected path before calling MoveAsync(...). |
Enumeration name: |
NoMoreMoveAsyncEventsAvailable |
Enumeration value: |
177 |
Description: |
There are no more asynchronous motion events available. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
No further coordinate system change requests can be issued. The maximum number of change requests is reached. |
Wait until requests to change the coordinate system have been executed before sending other 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: |
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. |
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 MoveAsync(...) is called early enough to make sure that the robot has not passed the start position on the path yet. |
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 is outside the valid range. |
In case of the input i_udiStartSegment is unequal 0, at the input i_lrStartOffset a value less than or equal to the length of the selected segment (i_udiStartSegmentId) must be transferred. |
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. |