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.
Input |
Data type |
Description |
---|---|---|
i_etComponent |
Identifier of the auxiliary axis that must be moved for this motion job. Valid values are:
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 |
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 |
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 = 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. |
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. |
Enumeration name: |
AccDecDistanceRange |
Enumeration value: |
33 |
Description: |
The AccDec distance is out of range. |
The motion job was aborted.
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. |
Ensure that move commands are called one after another and not simultaneously. |
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: |
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. |
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. |
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. |
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. 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. |
Enumeration name: |
InitializationFailed |
Enumeration value: |
4 |
Description: |
The initialization was unsuccessful. |
The motion job was aborted.
Enumeration name: |
InterfaceInvalid |
Enumeration value: |
3 |
Description: |
An interface is invalid. |
The motion job was aborted.
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 a synchronous auxiliary motion job. |
Refer to No MoveSync motion before the end of a 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 synchronous auxiliary motion job. |
Refer to No MoveSync motion before the end of a 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 within a connected path. |
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. |
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(...). |
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. |
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: |
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(...). |
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. |
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(...). |
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. |
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. |
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. |