Go Statement

Moves the arm using point to point motion from the current position to the specified point or X, Y, Z, U, V, W position. The Go instruction can move any combination of 1-6 joints at the same time.

Syntax
Go destination [CP] [LJM [orientationFlag]] [searchExpr] [!...!] [SYNC]

Parameters

destination
Specify the target position with point data.
CP
Optional. Specifies continuous path motion.
LJM
Optional. Convert the target destination using LJM function.
orientationFlag
Optional. Specifies a parameter that selects an orientation flag for LJM function.
Till | Find
Optional. A Till or Find expression.

Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...!
Optional. Parallel Processing statements can be added to execute I/O and other commands during motion.
SYNC
Reserves a motion command. The robot will not move until SyncRobots is executed.

Description
Go simultaneously moves all joints of the robot arm using point to point motion. The destination for the Go instruction can be defined in a variety of ways:

  • Using a specific point to move to. For example: Go P1
  • Using an explicit coordinate position to move to. For example: Go XY(50, 400, 0, 0)
  • Using a point with a coordinate offset. For example: Go P1 +X(50)
  • Using a point but with a different coordinate value. For example: Go P1 :X(50)

The path is not predictable because each joint interpolates between the current point and the target point. Be careful of the interference with peripherals.

The Speed instruction determines the arm speed for motion initiated by the Go instruction. The Accel instruction defines the acceleration.

With CP parameter, the arm can accelerate for the next motion command while the arm starts decelerating to a stop. In this case, the arm is not positioned at the target point.

With LJM parameter, the arm moves to the point into where the target point is converted using LJM function, with the current point as reference point.

Go LJM (P1, Here, 1) can be Go P1 LJM 1.

At this point, the original point data P1 does not change.

LJM parameter is available for the 6-axis (including N series) and RS series robots.

When using orientationFlag with the default value, it can be omitted.

  Go P1 LJM

Notes


  • Difference between Go and Move

    The Move instruction and the Go instruction each cause the robot arm to move. However, the primary difference between the 2 instructions is that the Go instruction causes point to point motion whereas the Move instruction causes the arm to move in a straight line. The Go instruction is used when the user is primarily concerned with the orientation of the arm when it arrives on point. The Move instruction is used when it is important to control the path of the robot arm while it is moving.

  • Difference between Go and Jump

    The Jump instruction and the Go instruction each cause the robot arm to move in a point to point type fashion. However, the JUMP instruction has 1 additional feature. Jump causes the robot end effector to first move up to the LimZ value, then in a horizontal direction until it is above the target point, and then finally down to the target point. This allows Jump to be used to guarantee object avoidance and more importantly to improve cycle times for pick and place motions.

  • Proper Speed and Acceleration Instructions with Go

    The Speed and Accel instructions are used to specify the speed and acceleration of the manipulator during motion caused by the Go instruction. Pay close attention to the fact that the Speed and Accel instructions apply to point to point type motion (like that for the Go instruction) while linear and circular interpolation motion uses the SpeedS and AccelS instructions.

  • Using Go with the Optional Till Modifier

    The optional Till modifier allows the user to specify a condition to cause the robot to decelerate to a stop at an intermediate position prior to completing the motion caused by the Go instruction. If the Till condition is not satisfied, the robot travels to the target position. The Go with Till modifier can be used in 2 ways as described below:

    • (1) Go with Till Modifier

      Checks if the current Till condition becomes satisfied. If satisfied, this command completes by decelerating and stopping the robot at an intermediate position prior to completing the motion caused by the Go instruction.

    • (2) Go with Till Modifier, Sw(Input bit number) Modifier, and Input Condition

      This version of the Go with Till modifier allows the user to specify the Till condition on the same line with the Go instruction rather than using the current definition previously defined for Till. The condition specified is simply a check against one of the inputs. This is accomplished through using the Sw instruction. The user can check if the input is On or Off and cause the arm to stop based on the condition specified. This feature works almost like an interrupt where the motion is interrupted (stopped) once the Input condition is met. If the input condition is never met during the robot motion then the arm successfully arrives on the point specified by destination.

  • Using Go with the Optional Find Modifier

    The optional Find modifier allows the user to specify a condition to cause the robot to record a position during the motion caused by the Go instruction. The Go with Find modifier can be used in 2 ways as described below:

    • (1) Go with Find Modifier:

      Checks if the current Find condition becomes satisfied. If satisfied, the current position is stored in the special point FindPos.

    • (2) Go with Find Modifier, Sw(Input bit number) Modifier, and Input Condition:

      This version of the Go with Find modifier allows the user to specify the Find condition on the same line with the Go instruction rather than using the current definition previously defined for Find. The condition specified is simply a check against one of the inputs. This is accomplished through using the Sw instruction. The user can check if the input is On or Off and cause the current position to be stored in the special point FindPos.

  • Go Instruction Always Decelerates to a Stop

    The Go instruction always causes the arm to decelerate to a stop prior to reaching the final destination of the move.


Potential Error

  • Attempt to Move Outside of Robots Work Envelope

    When using explicit coordinates with the Go instruction, you must make sure that the coordinates defined are within the robots valid work envelope. Any attempt to move the robot outside of the valid work envelope will result in an error.

See Also
!...! Parallel Processing, Accel, Find, Jump, Move, Pass, P#= (Point Assignment), Pulse, Speed, Sw, Till

Go Example
The example shown below shows a simple point to point move between points P0 and P10. Later in the program the arm moves in a straight line toward point P2 until input #2 turns on. If input #2 turns On during the Go, then the arm decelerates to a stop prior to arriving on point P2 and the next program instruction is executed.

Function sample
  Integer i

  Home
  Go P0
  Go P1
  For i = 1 to 10
    Go P(i)
  Next i
  Go P2 Till Sw(2) = On
  If Sw(2) = On Then
    Print "Input #2 came on during the move and"
    Print "the robot stopped prior to arriving on"
    Print "point P2."
  Else
    Print "The move to P2 completed successfully."
    Print "Input #2 never came on during the move."
  EndIf
Fend

Some syntax examples from the command window are shown below:

>Go Here +X(50)        ' Move only in the X direction 50 mm from current position
>Go P1                 ' Simple example to move to point P1
>Go P1 :U(30)          ' Move to P1 but use +30 as the position for the U joint to move to
>Go P1 /L              ' Move to P1 but make sure the arm ends up in lefty position
>Go XY(50, 450, 0, 30) ' Move to position X=50, Y=450, Z=0, U=30

[Another Coding Example]

Till Sw(1) = Off And Sw(2) = On ' Specifies Till conditions for inputs 1 & 2
Go P1 Till             ' Stop if current Till condition defined on previous line is met
Go P2 Till Sw(2) = On  ' Stop if Input Bit 2 is On
Go P3 Till             ' Stop if current Till condition defined on previous line is met