1. 什么是线性追踪 Line Tracking
线性追踪也就是我们经常听到的链速追踪,主要用来处理移动工件的取放,将运动物体的速度和方向发送给机器人,机器人控制器经过算法处理后,使机器人移动速度和运动物体相同,从而保证机器人和运动物体之间相对静止,最终实现准确的取放件。
FANUC Line Tracking 操作使用说明书:点击页面底部下载地址免费下载
比如机器人从皮带输送机取件,使用Line Tracking后,机器人就可以在输送机不停的状态下,直接从皮带输送机上取件。
2. 线性追踪 Line Tracking 功能描述
线性追踪有2种实现方式:
- 单轴线性追踪 Single axis line tracking
- 笛卡尔直线或圆环追踪 Cartesian line or circular tracking
2.1 单轴线性追踪 Single axis line tracking
主要是针对机器人附加轴的,保证机器人附加轴的运行速度和输送机相同,使用单轴线性追踪的前提必须保证输送机输送方向和机器人附加轴方向相同。
比如机器人地轨,使用单轴线性追踪后,机器人地轨的运动速度就可以和输送机相同。
2.2 笛卡尔直线或圆环追踪 Cartesian line or circular tracking
笛卡尔追踪指的是机器人工具中心点TCP(Tool Center Point)自动追踪输送线,笛卡尔追踪只能使用直线运动和圆运动踪两种,不能使用关节运动。
2.2.1 直线追踪
笛卡尔直线追踪系统,一般由机器人、直线输送机组成,当工件从机器人前方经过时,机器人可以准确抓取工件。
2.2.2 圆弧追踪
笛卡尔圆弧追踪系统,一般由机器人、圆弧形输送机或旋转工作台组成,直接可以直接从上面取放件。圆弧追踪不支持边界设定。
3 硬件和软件
线性追踪系统要求控制器带有线性追踪接口,可以连接输送机速度编码器。
注意:线性追踪作为附加选项,购买机器人的时候,需要特别指定,标准版机器人不带这个功能。
线性追踪软件是一个附加选项,购买机器人的时候,需要特别指定。
线性追踪功能不能和以下功能同时使用:
- Palletizing
- Coordinated Motion
- Space Check
- Remote TCP
- Singularity Avoidance (Unavailable for tracking motion. Only available for normal motion)
- Finishing Function Package
- Servo Gun Change function
- Robot Link Function
- Basic/Intelligent Interference Check
- Arc Sensor (TAST)
- AVC
- RPM
- Touch Sensor
- Restart Position check function
4 线性追踪设置
4.1 编码器设置
编码器用来追踪输送线速度,通过编码器给机器人提供脉冲信号,通过设置编码器脉冲数量和实际输送距离的比值,来确定输送速度。
4.2 冷启动 COLD START
编码器轴或类型更改后,机器人必须冷启动。
4.3 跟踪参数设置
在示教器中提前设置好下表参数:
工件检测开关设定,当检测到工件时,机器人开始追踪输送线,完成对应的取放动作。
线性追踪上下边界设定,只有在边界内,机器人才会追踪工件,具体见下图:
5 线性追踪编程
5.1 编程步骤
- 新建一个主程序(通常命名为job)将追踪编码器打开
- 将机器人移动到home点或等待点
- 等待工件过来时的触发信号
- 记录输送机编码器数值(触发信号后需要立即记录,保证机器人和输送机同步)
- 存储编码器数值
- 选择线性追踪边界
- 执行线性追踪程序(通常命名为tracking)
- 退出线性追踪
- 任务完成
注意:线性追踪程序tracking的header data属性中必须设置 line track schedule number。
5.2 编程实例
主程序 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设置边界。
M0250021 回到原点位置
/PROG MO250021 /MN 1:J P[1] 100% FINE ; /POS /END
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
5.3 线性追踪指令详解
5.3.1 DEFENC[x] SNRSCH[x]
设置线性追踪编码器编号,复制$LNSNRSCH变量中的内容,填入$ENC_STAT变量中,完成编码器参数设置。
5.3.2 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]
5.3.3 LINE[x] [value]
打开线性追踪编码器。
5.3.4 LINESIM[x] [value] R[x]
打开编码器仿真模拟。
5.3.5 LINECOUNT[x] output
输出编码器数值,当检测到零件后必须立即打开。
5.3.6 LINERATE [x] output
输出编码器速率。
5.3.7 LINESTOP[x] output
输出编码器停止状态。
5.3.8 SETTRIG LNSCH[x] R[y]
设置线性追踪进度编号触发值。
5.3.9 SETBOUND LNSCH[w] BOUND[x] PR[y] PR[z]
设置线性追踪边界。
5.3.10 SELBOUND LNSCH[x] BOUND[y]
选择线性追踪边界。
5.3.11 STOP_TRACKING
STOP_TRACKING 只能在跟踪程序中使用,用来暂时停止追踪动作。
5.3.12 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]
5.3.13 TRKUFRAME LNSCH[x] PR[y]
在位置寄存器PR[y]中设置线性追踪用户坐标系。
5.3.14 VISUFRAME
留言说明
如对本文有疑问,可关注微信公众号 科技大爆炸TheBigBang 直接留言即可。
手机扫描下方二维码直接关注 科技大爆炸TheBigBang。
也可以直接发邮件给我,我的邮箱18036678070@cad2d3d.com
转载请注明
文章作者:尚延伟 原文链接:https://www.cad2d3d.com/post-1362.html