Approaching a relative Cartesian position with a circular motion
Description
The function block KRC_MoveCircRelative executes a circular motion to a Cartesian end position. In order for the robot controller to be able to calculate the circular motion, an auxiliary position must be specified in addition to the end position.
The coordinates of the auxiliary position and end position are relative to the current position (= start position of the circular motion). The auxiliary position cannot be approximated. The motion always stops exactly at this point.
This statement always refers to the current position of the robot. If the motion is interrupted and then re-executed, the robot executes the entire motion again, starting from the position at which it was interrupted. |
If the motion is executed as a spline motion, the following must be taken into consideration: If the motion is approximated and there is no further motion instruction in the buffer, the output “Done” is not set for the spline motion. In this case, the motion is not ended at the end point, but at the approximate positioning point. |
Inputs
Parameter |
Type |
Description |
---|---|---|
AxisGroupIdx |
INT |
Index of axis group
|
ExecuteCmd |
BOOL |
Starts/buffers the motion in the case of a rising edge of the signal. |
Position |
E6POS |
Distance between end position and current position. The end position is based on the current position. (>>> E6POS) The data structure E6POS contains all components of the end position (= position of the TCP relative to the origin of the BASE coordinate system). |
CircHP |
E6POS |
Coordinates of the Cartesian auxiliary position (relative to the current position) (>>> E6POS) The data structure E6POS contains all components of the auxiliary position (= position of the TCP relative to the origin of the BASE coordinate system). |
Angle |
REAL |
Circular angle (= overall angle of the circular motion) The circular angle makes it possible to extend the motion beyond the programmed end point or to shorten it. The actual end point thus no longer corresponds to the programmed end point. The circular angle is not limited, i.e. a circular angle greater than ±360° can be specified:
Default: 0.0° |
Velocity |
INT |
Velocity
Refers to the maximum value specified in the machine data. The maximum value is dependent on the robot type and refers to the value of DEF_VEL_CP of the robot system. Default: 0% (= velocity is not changed) |
Acceleration |
INT |
Acceleration
Refers to the maximum value specified in the machine data. The maximum value is dependent on the robot type and refers to the value of DEF_ACC_CP of the robot system. Default: 0% (= acceleration is not changed) |
CoordinateSystem |
COORDSYS |
Coordinate system to which the Cartesian coordinates of the auxiliary or end position refer (>>> COORDSYS) |
OriType |
INT |
Orientation control of the TCP
(>>> OriType) |
CircType |
INT |
Orientation control during the circular motion
(>>> CircType) |
Approximate |
APO |
Approximation parameter (>>> APO) |
BufferMode |
INT |
Mode in which the statement is executed
(>>> BufferMode) |
SplineMode |
BOOL |
TRUE = motion is executed as a spline motion. FALSE = motion is executed as a conventional circular motion. |
Outputs
Parameter |
Type |
Description |
---|---|---|
Busy |
BOOL |
TRUE = statement is currently being transferred or has already been transferred |
Active |
BOOL |
TRUE = motion is currently being executed |
Done |
BOOL |
TRUE = motion has stopped |
Aborted |
BOOL |
TRUE = statement/motion has been aborted |
Error |
BOOL |
TRUE = error in function block |
ErrorID |
DINT |
Error number |