Arc, Arc3 Statements
Arc moves the arm to the specified point using circular interpolation in the XY plane.
Arc3 moves the arm to the specified point using circular interpolation in 3 dimensions.
These two commands are available for SCARA robots (including RS series) and 6-axis robots (including N series).
Syntax
(1) Arc midPoint, endPoint [ROT] [CP] [ searchExpr ] [!...!] [SYNC]
(2) Arc3 midPoint, endPoint [ROT] [ECP] [CP] [ searchExpr ] [!...!] [SYNC]
Parameters
- midPoint
- Specify point data or XY function. The middle point which the arm travels through on its way from the current point to endPoint.
- endPoint
- Specify point data or XY function. The end point which the arm travels to during the arc type motion. This is the final position at the end of the circular move.
- ROT
- Optional. :Decides the speed/acceleration/deceleration in favor of tool rotation.
- ECP
- Optional. External control point motion. (This parameter is valid when the ECP option is enabled.)
- CP
- Optional. Specifies continuous path motion.
- Till | Find
- Optional. A Till or Find expression.
Till | Find Till Sw(expr) = {On | Off} Find Sw(expr) = {On | Off}
- ! Parallel Processing !
- Parallel processing statements may be used with the Arc statement. These are optional. (Please see the Parallel Processing description for more information.)
- SYNC
- Reserves a motion command. The robot will not move until SyncRobots is executed. Optional.
Description
Arc and Arc3 are used to move the arm in a circular type motion from the current position to endPoint by way of midPoint. The system automatically calculates a curve based on the 3 points (current position, endPoint, and midPoint) and then moves along that curve until the point defined by endPoint is reached.
Also, for SCARA robots, U coordinate moves to move from current point to end point. However, for 6-Axis robot, U, V and W coordinates moves with the shortest posture for rotation to move from current point to end point. The posture (U, V, W) specified by the via coordinates is not passed through.
If using this, check the actual movement in advance.
Arc and Arc3 use the SpeedS speed value and AccelS acceleration and deceleration values. Refer to Using Arc3 with CP below on the relation between the speed/acceleration and the acceleration/deceleration. If, however, the ROT modifier parameter is used, Arc and Arc3 use the SpeedR speed value and AccelR acceleration and deceleration values. In this case SpeedS speed value and AccelS acceleration and deceleration value have no effect.
Usually, when the move distance is 0 and only the tool orientation is changed, an error will occur. However, by using the ROT parameter and giving priority to the acceleration and the deceleration of the tool rotation, it is possible to move without an error. When there is not an orientational change with the ROT modifier parameter and movement distance is not 0, an error will occur.
Also, when the tool rotation is large as compared to move distance, and when the rotation speed exceeds the specified speed of the manipulator, an error will occur. In this case, please reduce the speed or append the ROT modifier parameter to give priority to the rotational speed/acceleration/deceleration.
When ECP is used (Arc3 only), the trajectory of the external control point coresponding to the ECP number specified by ECP instruction moves circular with respect to the tool coordinate system. In this case, the trajectory of tool center point does not follow a circular line.
Setting Speed and Acceleration for Arc Motion
SpeedS and AccelS are used to set speed and acceleration for the Arc and Arc3 instructions. SpeedS and AccelS allow the user to specify a velocity in mm/sec and acceleration in mm/sec2.
Notes
Arc Instruction works in Horizontal Plane Only
The Arc path is a true arc in the Horizontal plane. The Z coordinate and attitude (U, V, W) specified by the via coordinate are not passed through, but the current point and target coordinate values are interpolated.
Arc3 allows for specifying a circular arc trajectory in 3D space. The Z coordinate specified by the via coordinate is passed through, but the attitude (U, V, W) is not, and the current point and target coordinate values are interpolated.Range Verification for Arc Instruction
The Arc and Arc3 statements cannot compute a range verification of the trajectory prior to the arc motion. Therefore, even for target positions that are within an allowable range, en route the robot may attempt to traverse a path which has an invalid range, stopping with a severe shock which may damage the arm. To prevent this from occurring, be sure to perform range verifications by running the program at low speeds prior to running at faster speeds.
Suggested Motion to Setup for the Arc Move
Because the arc motion begins from the current position, it may be necessary to use the Go, Jump or other related motion command to bring the robot to the desired position prior to executing Arc or Arc3.
Using Arc, Arc3 with CP
The CP parameter causes the arm to move to the end point without decelerating or stopping at the point defined by endPoint. This is done to allow the user to string a series of motion instructions together to cause the arm to move along a continuous path while maintaining a specified speed throughout all the motion. The Arc and Arc3 instructions without CP always cause the arm to decelerate to a stop prior to reaching the end point.
Potential Errors
Changing Hand (arm) Attributes
Pay close attention to the HAND attributes of the points used with the Arc instruction. If the hand orientation changes (from Right Handed to Left Handed or vice-versa) during the circular interpolation move, an error will occur. This means the arm attribute (/L Lefty, or /R Righty) values must be the same for the current position, midPoint and endPoint points.
Attempt to Move Arm Outside Work Envelope
If the specified circular motion attempts to move the arm outside the work envelope of the arm, an error will occur.
See Also
!Parallel Processing!, AccelS, Move, SpeedS
Arc, Arc3 Statements Example
The diagram below shows arc motion which originated at the point P100 and then moves through P101 and ends up at P102. The following function would generate such an arc:
Function ArcTest
Go P100
Arc P101, P102
Fend
Tip
When first trying to use the Arc instruction, it is suggested to try a simple arc with points directly in front of the robot in about the middle of the work envelope. Try to visualize the arc that would be generated and make sure that you are not teaching points in such a way that the robot arm would try to move outside the normal work envelope.