FANUC 机器人 Line Tracking 线性追踪使用方法

文摘   2024-08-04 21:36   重庆  

什么是线性追踪 Line Tracking

线性追踪也就是我们经常听到的链速追踪,主要用来处理移动工件的取放,将运动物体的速度和方向发送给机器人,机器人控制器经过算法处理后,使机器人移动速度和运动物体相同,从而保证机器人和运动物体之间相对静止,最终实现准确的取放件。
比如机器人从皮带输送机取件,使用Line Tracking后,机器人就可以在输送机不停的状态下,直接从皮带输送机上取件。
线性追踪有2种实现方式:
  • 单轴线性追踪 Single axis line tracking
  • 笛卡尔直线或圆环追踪 Cartesian line or circular tracking
  • 单轴线性追踪 Single axis line tracking

    主要是针对机器人附加轴的,保证机器人附加轴的运行速度和输送机相同,使用单
  • 轴线性追踪的前提必须保证输送机输送方向和机器人附加轴方向相同。
  • 比如机器人地轨,使用单轴线性追踪后,机器人地轨的运动速度就可以和输送机相同。
  • 笛卡尔直线或圆环追踪 Cartesian line or circular tracking

  • 笛卡尔追踪指的是机器人工具中心点TCP(Tool Center Point)自动追踪输送线,笛卡尔追踪只能使用直线运动和圆运动踪两种,不能使用关节运动。
  •  直线追踪
  • 笛卡尔直线追踪系统,一般由机器人、直线输送机组成,当工件从机器人前方经过时,机器人可以准确抓取工件。
  •  圆弧追踪
  • 笛卡尔圆弧追踪系统,一般由机器人、圆弧形输送机或旋转工作台组成,直接可以直接从上面取放件。圆弧追踪不支持边界设定。

硬件和软件

线性追踪系统要求控制器带有线性追踪接口,可以连接输送机速度编码器。
注意:线性追踪作为附加选项,购买机器人的时候,需要特别指定,标准版机器人不带这个功能。

线性追踪软件是一个附加选项,购买机器人的时候,需要特别指定。
线性追踪功能
不能和以下功能同时使用:
  1. Palletizing

  2. Coordinated Motion

  3. Space Check

  4. Remote TCP

  5. Singularity Avoidance (Unavailable for tracking motion. Only available for normal motion)

  6. Finishing Function Package

  7. Servo Gun Change function

  8. Robot Link Function

  9. Basic/Intelligent Interference Check

  10. Arc Sensor (TAST)

  11. AVC

  12. RPM

  13. Touch Sensor

  14. Restart Position check function

线性追踪设置

编码器设置

编码器用来追踪输送线速度,通过编码器给机器人提供脉冲信号,通过设置编码器脉冲数量和实际输送距离的比值,来确定输送速度。

冷启动 COLD START

编码器轴或类型更改后,机器人必须冷启动。

跟踪参数设置

在示教器中提前设置好下表参数:

工件检测开关设定,当检测到工件时,机器人开始追踪输送线,完成对应的取放动作。

线性追踪上下边界设定,只有在边界内,机器人才会追踪工件,具体见下图

线性追踪编程
编程步骤
新建一个主程序(通常命名为job)将追踪编码器打开
将机器人移动到home点或等待点
等待工件过来时的触发信号
记录输送机编码器数值(触发信号后需要立即记录,保证机器人和输送机同步)
存储编码器数值
选择线性追踪边界
执行线性追踪程序(通常命名为tracking)
退出线性追踪
任务完成
注意:线性追踪程序tracking的header data属性中必须设置 line track schedule number。

编程实例

主程序 job:

/PROG MO250020
/MN
1: ! Turn on Encoder ;
2: LINE[1] ON ;
3: !
4: ! Move to rest pos (non-tracking)
5: LBL[1] ;
6: CALL MO250021 ;
7: !
8: !
9: ! Wait for a part detect trigger
10: LBL[2] ;
11: WAIT DI[32]=ON ;
12: !
13: ! Read the line count and rate
14: LINECOUNT[1] R[1] ;
15: LINERATE[1] R[2] ;
16: !
17: ! Make sure the conveyor moves fwd
18: IF R[2]<0, JMP LBL[2] ;
19: !
20: ! Store the trigger value
21: SETTRIG LNSCH[1] R[1] ;
22: !
23: ! Select a boundary set
24: SELBOUND LNSCH[1] BOUND[1] ;
25: !
26: ! Move to track the conveyor
27: CALL MO250022 ;
28: !
29: ! Loop back for a next part
30: JMP LBL[1]
/POS
/END

主程序中,与线性追踪相关的指令有LINECOUNT、LINERATE、SETTRIG、SELBOUND,LINECOUNT代表编码器数值,LINERATE代表输送机速度,SETTRIG设置线性追踪进度模式编号,SELBOUND设置边界。

M0250022 线性追踪程序

/PROG MO250022
/MN
1:L P[1] 800mm/sec FINE ;
2: WAIT .50(sec) ;
3:L P[2] 800mm/sec FINE ;
4:L P[3] 800mm/sec CNT100 ;
5:L P[4] 800mm/sec CNT100 ;
6:L P[5] 800mm/sec FINE ;
7:C P[6]
: P[7] 800mm/sec FINE ;
8:C P[8]
: P[9] 800mm/sec CNT100 ;
9:C P[10]
: P[11] 800mm/sec FINE ;
/POS
/END


线性追踪指令详解

DEFENC[x] SNRSCH[x]

设置线性追踪编码器编号,复制$LNSNRSCH变量中的内容,填入$ENC_STAT变量中,完成编码器参数设置。

GONE_TIME[x] LNSCH[y] PR[z] TRIG[u]

返回PR[z]点离开LNSCH[y]边界后的时间,并将其存储在R[x]中GONE_TIME指令可以用来监视抓取工件时,工件是否已经离开线性追踪的边界,具体可参加下面的例子,R[12]存储了“PICK_PART”程序执行的平均时间。

1 GONE_TIME[10] LNSCH[1] PR[1] TRIG[20]
2 IF R[10]<R[12] JUMP LBL[2]
3 CALL PICK_PART

4 LBL[2]

LINE[x] [value]

打开线性追踪编码器。

 LINESIM[x] [value] R[x]

打开编码器仿真模拟。

 LINECOUNT[x] output

输出编码器数值,当检测到零件后必须立即打开。

 LINERATE [x] output

输出编码器速率。

 LINESTOP[x] output

输出编码器停止状态。

SETTRIG LNSCH[x] R[y]

设置线性追踪进度编号触发值。

 SETBOUND LNSCH[w] BOUND[x] PR[y] PR[z]

设置线性追踪边界。

SELBOUND LNSCH[x] BOUND[y]

选择线性追踪边界。

 STOP_TRACKING

STOP_TRACKING 只能在跟踪程序中使用,用来暂时停止追踪动作。

ACCUTRIG LNSCH[x]

当I/O信号触发后,会激活一个程序中断,用来设置一个系统刻度,然后LINECOUNT指令使用这个系统刻度来接受编码器数值。

1:ACCUTRIG LNSCH[1]
2:WAIT DI[1]=OFF
3:WAIT DI[1]=ON
4:LINECOUNT[1] R[1]

5:SETTRIG LNSCH[1] R[1]

TRKUFRAME LNSCH[x] PR[y]

在位置寄存器PR[y]中设置线性追踪用户坐标系。

 VISUFRAME

为了使用跟踪用户框架功能,您必须了解线跟踪框架及其关系。

典型的机器人-输送机设置和框架关系见图




搞机家园
在这里大家可以把你自己的搞机心得通过后台与大家分享,也可以向大家提供工作中遇到的问题与大家分享,本号也会定期向大家分享机器人的资料与技术。谢谢大家的支持
 最新文章