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.