Accuracy-priority mode - Acquiring tracking delay

When using the conveyor tracking accuracy priority mode, you can acquire and compensate for robot tracking delays to accurately track a workpiece.

The following tracking delay acquisition operation should be performed in advance to acquire tracking delays. Failing to set the offset value in advance may adversely affect accuracy and elapsed time.

Acquiring the tracking delay

When acquiring the tracking delay, the robot moves from the motion start point to the downstream limit as shown in the diagram below. This acquires the offset amount [mm] in the direction the conveyor is traveling.

This motion can be executed by running the following sample program.

Configure the following settings beforehand.

  • Perform conveyor calibration
  • Set Accel, Speed, Tool, and other parameters to the same settings as that used for actual operation
  • Teach the robot the start position for the conveyor tracking motion as P0
  • Teach the robot the following two points required to perform the motion
    • Point 1: The robot motion start point
    • Point 2: The point tracked on the conveyor
  • Move the conveyor at the same speed as that used for actual operation

KEY POINTS


  • The tracking delay is acquired based on the conveyor width-direction and height coordinates at the tracking position taught to the robot. Configure settings to closely match actual operation.
  • The offset value changes based on the conveyor speed, robot acceleration, speed, and orientation. Therefore, the tracking delay should be reacquired when any of these settings are changed.
  • As this program runs on a virtual queue, an actual workpiece is not required.
Function Cnv_Adjust_measure

  'Move to robot motion start point
  Motor On
  Go P0

  Power High
  Speed 100
  Accel 100, 100
  Cnv_Accel 1, 2000

  'Check conveyor operation
  If Cnv_Speed(1) < 0.1 Then
    Print "Conveyor not operational"
    Exit Function
  EndIf

  'Register virtual workpiece to queue
  Cnv_QueRemove 1, All                   'Clear queue
  Cnv_Trigger (1)                        'Latch conveyor pulse
  Cnv_QueAdd 1, XY(0, CY(P1@Cnv(1)), CZ(P1@Cnv(1)), CU(P1@Cnv(1)), 0, 0) /CNV(1)
   'Register virtual workpiece to queue based on P1

  Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
  ' Wait until queue enters the Pickup Area
  Cnv_Adjust 1, On                       'Turn offset acquisition flag On

  'Perform motion
  Go CnvQueGet(1,0)                     'For SCARA robots
  'Go CnvQueget(1,0):U(90):V(0):W(180)  ' For 6-axis robots

  Do
  Wait 0.02
  Loop Until (CX(RealPos@CNV(1)) >= Cnv_Downstream(1))
  ' Wait until downstream limit is reached

  Go here                                'Stop robot
  Cnv_QueRemove 1, All                   'Reset queue
  Cnv_Adjust 1, Off                      'Turn offset acquisition flag Off
  motor off

  'Output results of offset value acquired
  If Cnv_AdjustGet(1, 0) = 2 then
  Print "Unable to correctly acquire offset value"
  Else
    Print "Operation results=", Cnv_AdjustGet(1, 0)
    Print "Offset amount =", Cnv_AdjustGet(1, 1)

  EndIf
Fend

KEY POINTS


  • The offset value is reset when turning the controller off. Use Cnv_AdjustSet to set the offset value acquired within the program in use. To store the offset value acquired, add the following program to save the file to the Project folder.

    Integer fileNum; String filename$
    fileNum = FreeFile
    filename$ = "File name"
    AOpen filename$ As #fileNum
    Print #fileNum,Cnv_AdjustGet(1,1)
    Close #fileNum
    
  • If the operation results are not "1", the robot may not have been able to reach the workpiece within the Pickup Area, and offset value acquisition may have exceeded 100 seconds. Check the Accel and Speed settings, upstream and downstream limit settings, the motion start point, and the conveyor speed.