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
Arc
(1) Arc midPoint, endPoint [ROT] [CP] [Till | Find] [!Parallel Processing!] [SYNC]
(2) Arc endPoint, radius, path, direction [ROT] [ CP ] [Till | Find] [, !Parallel Processing!] [, SYNC]
(3) Arc endPoint, angle [ROT] [ CP ] [Till | Find] [, !Parallel Processing!] [, SYNC]
(4) Arc endPoint, centerPoint [ROT] [ CP ] [Till | Find] [, !Parallel Processing!] [, SYNC]

Arc3
(1) Arc3 midPoint, endPoint [ROT] [ECP] [CP] [Till | Find] [, !Parallel Processing!] [, SYNC]
(2) Arc3 endPoint, centerPoint [ROT] [ECP] [ CP ] [Till | Find] [, !Parallel Processing!] [, 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.
centerPoint
Specify point data or XY function. Center coordinates of the arm’s arc motion. The Z coordinate and orientation (U,V,W) are not used for the Arc command. For the Arc3 command, the arm moves on a circular arc path on a plane passing through the X, Y, and Z coordinates of the current location, endPoint, and center coordinates. In this case, the orientation (U, V, W) of the center coordinates is not used.

radius
Specify the radius of the arc motion as a real number or an expression (unit: mm).
path
Specify whether the arc takes the shorter or longer path from the current position towards the target coordinates. Specify ARC_SHORT when the tool moves through the shorter path and ARC_LONG when the tool moves through the longer path.
direction
Specify the direction of rotation for arc motion. Specify ARC_PLUS for the counterclockwise direction in the Z-axis direction relative to the XY plane of the base coordinate system, or ARC_MINUS for the clockwise direction.
angle
Specify the rotation angle of the arc motion as a real number or as an expression (unit: degree).
Specify a value less than 360 degrees and greater than -360 degrees. Specify a plus value for the counterclockwise direction in the Z-axis relative to the XY plane of the base coordinate system, or a minus value for the clockwise direction.
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. This value is 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 the arc interpolation trajectory based on given 3 points (current position, mid-point coordinates, and target coordinates) or given 2 points (current position and target coordinates) and parameters such as radius, rotation angle, and center coordinates, and then moves the arm along that trajectory towards the target coordinates.

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 mid-point 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.

If the robot attempts to change only the tool orientation rotation while keeping the tool tip position fixed at a specific coordinate, or if the tool orientation rotation is large relative to the distance traveled by the tool tip, the tool orientation rotation speed may become significantly faster. To prevent this, the operation speed is automatically limited when the speed of tool orientation rotation is too high.

If you wish to manually set the upper limit of the tool orientation rotation speed during CP motion, turn on SpeedRLimitation. When SpeedRLimitation is turned on, if the tool orientation rotation speed exceeds the set SpeedR during CP motion, the motion speed is limited so that the tool orientation rotation speed equals to SpeedR. If the tool orientation rotation speed does not exceed the set SpeedR, it moves at the set speed (SpeedS). Set the upper limit of the tool orientation rotation speed in advance using SpeedR.

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 mid-point 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 mid-point 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.

  • When using Arc and Arc3 commands for conveyor tracking

    The Arc or Arc3 command syntax that do not specify mid point coordinates cannot be used with point data obtained from Cnv_QueGet. Use the Arc or Arc3 command syntax that specifies the mid point.

  • When the arc angle is around ±180° or ±360°

    For the Arc or Arc3 command syntax that do not specify mid point coordinates, an arc angle around ±180 degrees or ±360 degrees may not result in the expected trajectory. If the center and target coordinates are specified so that the arc angle is ±180 degrees in Arc3, an error will occur because the arc cannot be determined. For arc angle around ±180 degrees or ±360 degrees, use the Arc or Arc3 command syntax that specifies the mid point.

  • Restrictions on Arc commands that specify the radius

    The radius must be at least 1/2 of the distance from the current location to the target coordinates. If the specified radius is too short, an error occurs because the arc cannot be drawn.

  • Restrictions on Arc commands that specify the rotation angle

    Specify a value less than 360 degrees and greater than -360 degrees. If 0 degrees is specified, an error occurs because an arc cannot be drawn.


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.

  • When trying to move the arm almost linearly

    If the specified arc motion is almost linear, an error occurs. Use the Move command instead.

See Also
!Parallel Processing!, AccelS, Move, SpeedS

Example of using Arc and Arc3 (specifying the mid point)
Shown below is an example of a program that draws the trajectory shown in the figure.
The arm starts moving from P100 and takes a arc motion trajectory through P101 to arrive at P102.

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.

Example of using Arc (specifying radius)
Shown below is an example of a program that draws the trajectory shown in the figure.
The arm starts moving from P100 and takes a arc motion trajectory with radius R [mm] (500.0 mm in the example below) to arrive at P102.

Function ArcTest
   Go P100
   Arc P102, 500.0, ARC_SHORT, ARC_MINUS
Fend


If the radius R [mm] is equal to 1/2 of the distance from the current location P100 to the target coordinates P102, the arm moves as follows: If the radius R [mm] is even shorter, an error occurs because the arc cannot be drawn.

Example of using Arc (specifying angle)
Shown below is an example of a program that draws the trajectory shown in the figure.
The motion starts at P100, rotates by the specified rotation angle (unit: degree), and takes an arc motion trajectory to arrive at P102. If the rotation angle is negative, the rotation is clockwise in the Z-axis direction relative to the XY plane of the base coordinate system, as in the example below.

Function ArcTest
   Go P100
   Arc P102, -123.4
Fend


Example of using Arc and Arc3 (specifying center coordinates)
Shown below is an example of a program that draws the trajectory shown in the figure.
The arm takes a arc motion trajectory starting from P100 and arriving at P102, with P103 as the center.

Function ArcTest
   Go P100
   Arc P102, P103, ARC_SHORT
Fend


Tip

  • If the center coordinates are misaligned

    If the center coordinate P103 is specified at a position where the distance R1 between the center coordinate P103 and the current location P100 is different from the distance R2 between the center coordinate P103 and the target coordinates P102, the arc operation is performed with the center coordinate at the position where the distance between the current location and the target coordinate is equal, not P103. In this case, the trajectory may not be as expected, so please specify the center coordinates equidistant from the current location and target coordinates.

  • If coordinates around ±180 degrees are specified with the Arc command specifying the center coordinates

    If the center coordinate P103 is specified with the Arc command so that the arc angle is ±180 degrees, specifying ARC_LONG causes clockwise rotation in the Z axis direction relative to the XY plane of the base coordinate system. Specifying ARC_SHORT causes counterclockwise rotation in the Z axis direction relative to the XY plane of the base coordinate system.
    If the angle of the arc deviates even slightly from ±180 degrees, it will rotate along the path of the length specified by ARC_LONG or ARC_SHORT. Specify the mid-point coordinates to draw the arc as expected around ±180 degrees.