FANUC 机器人码垛编程详细讲解

文摘   2024-06-26 11:50   重庆  

FANUC 机器人码垛编程详细讲解

1. 码垛功能的定义
对几个具有代表性的点进行示教,即可以从下层到上层按照顺序堆叠工件。

夹爪式

吸盘式

2. 码垛的种类
码垛 B:包括码垛B(单路径模式和码垛BX(多路径模式) 适用于工件姿势恒定,堆叠时的底面形状为直线或四角形。码垛 E:包括码垛E(单路径模式和码垛EX(多路径模式)。适用于复杂的堆叠模式(工件姿势改变,堆叠时的底面形状不是四角形)。
码垛B
码垛 E
码垛 BX、EX
码垛 BX、EX2
3. 码垛指令
码垛堆积指令有:
•  码垛堆积指令 PALLETIZING B_i
PALLETIZING BX_i
PALLETIZING E_i
PALLETIZING EX_i
•  码垛堆积动作指令 J PAL_i [BTM] 100% FINE
L PAL_i [BTM] 500mm/sec FINE
•  码垛堆积结束指令 PALLETIZING –END_i
(1)码垛指令格式:码垛指令基于码垛寄存器的值,根据堆叠模式计算当前 的堆叠点位置,并根据路径模式计算当前的路径,改写码垛动作指令的位置 数据。

(2)码垛动作指令:以使用具有趋近点、堆叠点、回退点的路径点作为位置 数据的动作指令,是码垛专用的动作指令。该位置数据通过码垛指令每次都被改写。
(3)码垛结束指令:计算下一个堆叠点,改写码垛寄存器的值。

1: PALLETIZING-EX_3

2: J P_3 [ A_2 ] 50%CNT50

3: L PAL_3[ A_1 ] 100mm/sec CNT10

4: L PAL_3[ BTM ] 50mm/sec FINE

5: HAND1 OPEN

6: L PAL_3[ R_1 ] 100mm/sec CNT10

7: J P_3[ R_1 ] 100mm/sec CNT50

8: PALLETIZING-END_3

(4)码垛寄存器:用于码垛的控制。进行堆叠点的指定、比较、分支等。
寄存器指令是进行寄存器的算术运算的指令。寄存器有如下几种。
•  数值寄存器指令
•  位置寄存器指令
•  位置寄存器要素指令
•  码垛寄存器指令
•  字符串寄存器、字符串指令

寄存器运算,可以进行如下所示的多项式运算。

1: R[2]=R[3]-R[4]+R[5]-R[6]

2: R[10]=R[2]*100/R[6]

但是,受到如下限制。

•  1行中可以记述的算符最多为5个。

1: R[2]=R[3]+R[4]+R[5]+R[6]+R[7]+R[8]

至多 5 个算符

•  算符“ + ” , “ - ”可以在相同行混合使用。此外,“ * ” , “ / ”也可以混合使用。但是,“ + ” , “ - ”和“ * ” , “ / ”则不可混合使用。

数值寄存器指令

数值寄存器指令是进行寄存器的算术运算的指令,标准情况下提供有 200 个数值寄存器。

R[i] = (值)
R[i] = (值)指令,将某一值代入数值寄存器。
                                                  R[i] = (值)指令
1: R[1]= RI[3]
2: R[R[4]]= AI[R[1]]
R[i] = (值)+ (值)
R[i] = (值) + (值)指令,将2个值的和代入数值寄存器。
R[i] = (值)- (值)
R[i] = (值) - (值)指令,将2个值的差代入数值寄存器。
R[i] = (值)* (值)
R[i] = (值) * (值)指令,将2个值的积代入数值寄存器。
R[i] = (值)/ (值)
R[i] = (值) / (值)指令,将2个值的商代入数值寄存器。
R[i] = (值)MOD (值)
R[i] = (值) MOD (值)指令,将2个值的余数代入数值寄存器。
R[i] = (值)DIV (值)
x  y y
R[i] = (值) DIV (值)指令,将2个值的商的整数值部分代入数值寄存器。
R[i] = (x-(x MOD y))/y
 数值寄存器运算指
位置寄存器指令
位置寄存器指令,是进行位置寄存器的算术运算的指令。位置寄存器指令可进行代入、加算、減算处理,以与寄存器指令相同的方式记述。位置寄存器,是用来存储位置资料(x,y,z,w,p,r)的变量标准情况下提供有 100 个位置寄存器
PR[i] = (值)
PR[i] = (值)指令,将位置资料代入位置寄存器。
1: PR[1]= LPOS
2: PR[R[4]]= UFRAME[R[1]]
3: PR[GP1: 9]= UTOOL[GP1: 1]
PR[i] = (值)+ (值)
PR[i] = (值) + (值)指令,代入2个值的和。
PR[i] = (值) - (值)指令,代入2个值的差。
位置寄存器要素指令
位置寄存器要素指令,是进行位置寄存器的算术运算的指令。
PR[i,j] 的i表示位置寄存器号码,j表示位置寄存器的要素号码。位置寄存器要素指令可进行代入、加算、減算处理,以与数值寄存器指令相同的方式记述。
PR[i,j] 构成
PR[i,j] = (值)
PR[i,j] = (值)指令,将位置资料的要素值代入位置寄存器要素
PR[i,j] = (值)+ (值)
PR[i,j] = (值) + (值)指令,将2个值的和代入位置寄存器要素。
PR[i,j] = (值)- (值)
PR[i,j] = (值) - (值)指令,将2个值得差代入位置寄存器要素。
PR[i,j] = (值)* (值)
PR[i,j] = (值) * (值)指令,将2个值的积代入位置寄存器要素。
PR[i,j] = (值)/ (值)
PR[i,j] = (值) / (值)指令,将2个值的商代入位置寄存器要素。
PR[i,j] = (值)MOD (值)
PR[i,j] = (值) MOD (值)指令,将2个值的余数代入位置寄存器要素。
PR[i,j] = (值)DIV (值)
PR[i,j] = (值) DIV (值)指令,将2个值的商的整数值部分代入位置寄存器要素。
码垛寄存器运算指
码垛寄存器运算指令,是进行码垛寄存器的算术运算的指令。码垛寄存器运算指令可进行代入、加法运算、减法运算处理,以与数值寄存器指令相同的方式记述。
码垛寄存器,存储有码垛寄存器要素(j,k,l)。码垛寄存器在所有全程序中可以使用 32 个
码垛寄存器要素
码垛寄存器要素,指定代入到码垛寄存器或进行运算的要素。该指定有3类。
•  直接指定 直接指定数值。
•  间接指定 通过 R[i] 的值予以指定。
•  无指定 在没有必要变更(*)要素的情况下予以指定。
PL[i] = (值)
PL[i] = (值)指令,将码垛寄存器要素代入码垛寄存器。
PL[i] = (值)(算符)(值)
PL[i] = (值)(算符)(值)指令,进行算术运算,将该运算结果代入码垛寄存器。
字符串寄存器、字符串指令
字符串寄存器,存储英文数字的字符串。各自的寄存器中,最多可以存储254个字符。字符串寄存器数标准为25个。字符串寄存器数可在控制启动时增加。
SR[i]  =(值)
SR[i] =(值)指令,将字符串寄存器要素代入字符串寄存器。
可从数值数据变换为字符串数据。小数以小数点以下6位数四舍五入。
可从字符串数据变换为数值数据。变换为字符串中最初出现字符前存在的数值。
SR[i] =(值)(算符)(值)
SR[i] =(值)(算符)(值)指令,将 2 个值结合起来,并将该运算结果代入字符串寄存器。
数据型在各运算中,依赖于(算符)左侧的(值)。
左侧的(值)若是字符串数据,则将字符串相互结合起来。
左侧的(值)若是数值数据,则进行算术运算。此时,右侧的(值)若是字符串,最初出现字符之前的数值用于运算。
字符列相互之间的连结结果,在超过 254 个字符时,输出“ INTP-323  数值溢出”。
R[i]  =STRLEN (值)
R[i]  = STRLEN (值)指令,取得值的长度,将其结果代入寄存器。
R[i]  =FINDSTR (值)(值)
第1个(值)表示“对象字符串”,第2个(值)表示“检索字符串”。
R [i]= FINDSTR (值)(值)指令,从成为对象的字符串中检索出检索字符串。取得是否在成为对象的字符串的第几个字符中找到了检索字符串,将其结果代入寄存器。对于大写字母和小写字母不予区分。没有找到检索字符串时,代入“0”。
SR[i] =SUBSTR (值)(值)(值)
第1个(值)表示“对象字符串”,第2个(值)表示“始点位置”,第 3 个(值)表示“部分字符串的长度”。
SR[i]  = SUBSTR (值)(值)(值)指令,从对象字符串中取得部分字符串,将其结果代入字符串寄存器。部分字符串,根据从对象值的第几个字符这样的始点位置、以及部分字符串的长度来决定。
4. 码垛示教
(1)选择码垛程序
(2)输入堆栈初始数据

(3)示教堆上样式

(4)示教路径模式

5. 码垛作业课题演示
如图 所示动作循环,在输送带 P3 进行工件抓取,在托盘上进行 码垛。
用示教器编写程序,程序如下:
1:J PR[1] 100% FINE ;移动至待命位置 P1
2:LBL[1] ;标签 1
3:J PR[2] 100% FINE ;移动至待命位置 P2
4:WAIT RI[12]=ON ;等待抓料位有料
5:L PR[3] 100mm/sec FINE ;移动至抓料位 P3
6:WAIT 1.00(sec) ;等待 1S
7:RO[11]=ON ;抓手闭合阀 ON
8:WAIT RI[11]=ON ;等待抓手闭合开关 ON
9:RO[11]=OFF ;抓手闭合阀 OFF
10:PALLETIZING-B_1
11:J PAL_1[A_1] 80% FINE ;移动至趋近点
12:L PAL_1[BTM] 100mm/sec FINE ;移动至堆叠点
13:RO[10]=ON ;抓手张开阀 ON
14:WAIT RI[10]=ON ;等待抓手张开开关 ON
15:RO[10]=OFF ;抓手张开阀 OFF
16:L PAL_1[R_1] 100mm/sec FINE;移动至回退点
17:PALLETIZING-END_1
18:JUMP LBL[1] ;跳转至标签 1

6. 注意事项

(1) 要提高码垛的动作精度,需要正确进行 TCP 的设定。

(2) 码垛寄存器,应避免同时使用相同编号的其他码垛。

(3) 码垛功能,在三个指令也即码垛指令、码垛动作指令、码垛结束指令 存在于一个程序而发挥作用。即使只将一个指令复制到子程序中进行示教,该功能也不会正常工作,应注意。

(4) 码垛编号,在示教完码垛的数据后,随同码垛指令、码垛动作指令、 码垛结束指令一起被自动写入。不需要在意是否在别的程序中重复使 用着码垛编号(每个程序都具有该码垛编号的数据)。

(5) 在码垛动作指令中,不可在动作类型中设定“C”(圆弧运动)。

  (6) 在带有附加轴的系统中进行码垛堆积时,有几个需要注意的事项。使用带有附加轴的系统时,加轴的码垛堆积”。
  (7) 码垛堆积的位置数据示教中,无法进行使用了用户坐标系的位置示教。始终使用世界坐标系,所选的用户坐标系成为 0 。


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