With the method MoveC(...), a motion job can be issued in order to move to a target position in three-dimensional space via a defined circular arc.
The definition of the circular arc results from the target position and the circular position. They describe points of the circular arc.
In order to describe the full circular arc, the position at which the robot is located at the start of the MoveC motion job is used as the start position.
Input |
Data type |
Description |
---|---|---|
i_stTarget |
Target position coordinates of the motion job in three-dimensional space. |
|
i_stCircular |
Specification of a point in space on the circular path. |
|
i_lrMaxZone |
LREAL |
Configuration of the maximum size of the blending zone of the motion job. Value range: i_lrMaxZone ≥ 0.0 |
i_udiSegmentId |
UDINT |
Id of the motion job. The Id of a motion job in a connected path must be unique. Value range: i_udiSegmentId > 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 = 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 |
NewConnectedPath |
43 |
A new connected path is established. |
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 |
NoMoreConnectedPathsAvailable |
87 |
There are no more connected paths available. |
ExecutionAborted |
NoMoreSegmentsAvailable |
86 |
There are no more segments available. |
ExecutionAborted |
NoMoreZonesAvailable |
88 |
There are no more zones available. |
ExecutionAborted |
NotReady |
77 |
The robot is not ready. |
ExecutionAborted |
StartOffsetRange |
116 |
The start offset is out of range. |
ExecutionAborted |
WorkEnvelope |
159 |
Diagnostic message concerning the work envelope is active. |
ExecutionAborted |
NoMoreArmConfigurationEventsAvailable |
201 |
The maximum number of available arm configuration events is reached. |
ExecutionAborted |
ExternalPositionSourceConfigured |
205 |
The external position source is configured. |
InputParameterInvalid |
CircularInvalid |
44 |
The circular position is invalid. |
InputParameterInvalid |
MaxZoneRange |
12 |
The maximum zone is out of range. |
InputParameterInvalid |
NotACircle |
76 |
It is not a circle. |
InputParameterInvalid |
PositionDeltaTooLow |
75 |
The delta between two positions is too low. |
InputParameterInvalid |
SegmentIdAlreadyExists |
21 |
The segment Id already exists. |
InputParameterInvalid |
SegmentIdRange |
15 |
The segment Id is out of range. |
InputParameterInvalid |
TargetInvalid |
91 |
The target is invalid. |
UnexpectedProgramBehavior |
InitializationFailed |
4 |
The initialization was unsuccessful. |
UnexpectedProgramBehavior |
InterfaceInvalid |
3 |
An interface is invalid. |
UnexpectedProgramBehavior |
UnexpectedFeedback |
13 |
A feedback value was invalid. |
Enumeration name: |
CircularInvalid |
Enumeration value: |
44 |
Description: |
The circular position is invalid. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
In case of a two-dimensional robot, for example IF_RobotConfiguration.Cartesian2Ax, a working plane ET_WorkingPlane has to be defined. A cartesian component that is not part of the working plane of the input i_stCircular is not 0. |
ET_WorkingPlane.XY - i_stCircular.Z has to be 0. ET_WorkingPlane.XZ - i_stCircular.Y has to be 0. ET_WorkingPlane.YZ - i_stCircular.X has to be 0. |
The motion job circular position transferred at the input i_stCircular is outside the valid work envelope of the robot. |
Ensure that the circular position transferred at the input i_stCircular is inside the valid work envelope of the robot. |
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: |
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_stTarget 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 than the 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: |
MaxZoneRange |
Enumeration value: |
12 |
Description: |
The maximum zone is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The value transferred at the input i_IrMaxZone lies outside the valid range. |
At the input i_lrMaxZone, a value greater than or equal to 0 must be transferred. |
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 path are invalid. At least one of the motion parameters (Velocity, Acceleration, Deceleration, Ramp) is invalid. |
Ensure that the used motion parameters for each ET_RobotComponent are valid. |
Enumeration name: |
NewConnectedPath |
Enumeration value: |
43 |
Description: |
A new connected path is established. |
The motion job was transferred successfully.
A new connected path is established.
Enumeration name: |
NoMoreArmConfigurationEventsAvailable |
Enumeration value: |
201 |
Description: |
The maximum number of available arm configuration events is reached. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
No more arm configuration events can be issued for this motion. |
Wait until move commands with arm configuration modifications have been executed before sending new move commands. |
Enumeration name: |
NoMoreConnectedPathsAvailable |
Enumeration value: |
87 |
Description: |
There are no more connected paths available. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
No further motion jobs can be issued. The maximum number of connected paths has been reached. |
Wait until move commands for path movements have been executed before sending new move commands. |
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 circular motion. |
Wait until move commands for circular movements have been executed before sending new move commands. |
Enumeration name: |
NoMoreZonesAvailable |
Enumeration value: |
88 |
Description: |
There are no more zones available. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
No further motion jobs can be issued. The maximum number of blending zones has been reached. |
Wait until move commands for path movements have been executed before sending new move commands. |
Enumeration name: |
NotACircle |
Enumeration value: |
76 |
Description: |
It is not a circle. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The target position transferred at the input i_stTarget and the circular position transferred at the input i_stCircular, together with the target position of the last motion job, do not describe a circular path. |
Ensure that the target position transferred at the input i_stTarget and the circular position transferred at the input i_stCircular, together with the target position of the last motion job, describe a circular path. |
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: |
PositionDeltaTooLow |
Enumeration value: |
75 |
Description: |
The delta between two positions is too low. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The distance between the target position transferred at the input i_stTarget and the circular position transferred at the input i_stCircular, as well as the target position of the last motion job is too small. |
Ensure that the position delta between the target position transferred at the input i_stTarget and the circular position transferred at the input i_stCircular is greater than IF_ConfigurationAdvanced.lrMinPositionDelta. Ensure that the position delta between the target position of the last motion job and the circular position transferred at the input i_stCircular is greater than IF_ConfigurationAdvanced.lrMinPositionDelta. Ensure that the position delta between the target position of the last motion job and the target position transferred at the input i_stTarget is greater than IF_ConfigurationAdvanced.lrMinPositionDelta. |
Enumeration name: |
SegmentIdAlreadyExists |
Enumeration value: |
21 |
Description: |
The segment Id already exists. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The Id transferred at the input i_udiSegmentId already exists in the latest connected path. |
Ensure that the segment Id is unique in the latest connected path. |
Enumeration name: |
SegmentIdRange |
Enumeration value: |
15 |
Description: |
The segment Id is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The value transferred at the input i_udiSegmentId lies outside the valid range. |
At the input i_udiSegmentId, a value greater than or equal to 1 must be transferred. |
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 of the method IF_RobotMotion.ChangeCoordinateSystem was negative. The start position for changing the coordinate system is calculated from the end of the circular move command. The length of the circular move command is too short. |
Ensure that the length of the circular move command is long enough. Ensure that the start offset fits to the length of the circular move command. |
Enumeration name: |
TargetInvalid |
Enumeration value: |
91 |
Description: |
The target is invalid. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The transformation IF_RobotConfiguration.Cartesian2Ax is selected but all cartesian components of the target position transferred at the input i_stTarget are used. |
Ensure that the cartesian component that is not selected in the plane is 0. For example, ET_WorkingPlane.XY is selected, then i_stTarget.lrZ has to be 0. |
The motion job target position transferred at the input i_stTarget is outside the valid work envelope of the robot. |
Ensure that the target position transferred at the input i_stTarget is inside the valid work envelope of the robot. |
Enumeration name: |
UnexpectedFeedback |
Enumeration value: |
13 |
Description: |
A feedback value was invalid. |
The motion job was aborted.
Enumeration name: |
WorkEnvelope |
Enumeration value: |
159 |
Description: |
Diagnostic message concerning the work envelope is active. |
Issue |
Cause |
Solution |
---|---|---|
The motion job was aborted. |
The TCP position of the robot is outside of the valid work envelope. |
Bring the robots TCP position back to the valid work envelope. |