FANUC 机器人码垛编程详细讲解
对几个具有代表性的点进行示教,即可以从下层到上层按照顺序堆叠工件。夹爪式
吸盘式
码垛 B:包括码垛B(单路径模式)和码垛BX(多路径模式) 适用于工件姿势恒定,堆叠时的底面形状为直线或四角形。码垛 E:包括码垛E(单路径模式)和码垛EX(多路径模式)。适用于复杂的堆叠模式(工件姿势改变,堆叠时的底面形状不是四角形)。• 码垛堆积动作指令 J PAL_i [BTM] 100% FINEL 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] = (值) + (值)指令,将2个值的和代入数值寄存器。R[i] = (值) - (值)指令,将2个值的差代入数值寄存器。R[i] = (值) * (值)指令,将2个值的积代入数值寄存器。R[i] = (值) / (值)指令,将2个值的商代入数值寄存器。R[i] = (值) MOD (值)指令,将2个值的余数代入数值寄存器。R[i] = (值) DIV (值)指令,将2个值的商的整数值部分代入数值寄存器。位置寄存器指令,是进行位置寄存器的算术运算的指令。位置寄存器指令可进行代入、加算、減算处理,以与寄存器指令相同的方式记述。位置寄存器,是用来存储位置资料(x,y,z,w,p,r)的变量。标准情况下提供有 100 个位置寄存器PR[i] = (值)指令,将位置资料代入位置寄存器。2: PR[R[4]]= UFRAME[R[1]]3: PR[GP1: 9]= UTOOL[GP1: 1]PR[i] = (值) + (值)指令,代入2个值的和。PR[i] = (值) - (值)指令,代入2个值的差。位置寄存器要素指令,是进行位置寄存器的算术运算的指令。PR[i,j] 的i表示位置寄存器号码,j表示位置寄存器的要素号码。位置寄存器要素指令可进行代入、加算、減算处理,以与数值寄存器指令相同的方式记述。PR[i,j] 构成PR[i,j] = (值)指令,将位置资料的要素值代入位置寄存器要素PR[i,j] = (值) + (值)指令,将2个值的和代入位置寄存器要素。PR[i,j] = (值) - (值)指令,将2个值得差代入位置寄存器要素。PR[i,j] = (值) * (值)指令,将2个值的积代入位置寄存器要素。PR[i,j] = (值) / (值)指令,将2个值的商代入位置寄存器要素。PR[i,j] = (值) MOD (值)指令,将2个值的余数代入位置寄存器要素。PR[i,j] = (值) DIV (值)指令,将2个值的商的整数值部分代入位置寄存器要素。码垛寄存器运算指令,是进行码垛寄存器的算术运算的指令。码垛寄存器运算指令可进行代入、加法运算、减法运算处理,以与数值寄存器指令相同的方式记述。码垛寄存器,存储有码垛寄存器要素(j,k,l)。码垛寄存器在所有全程序中可以使用 32 个码垛寄存器要素,指定代入到码垛寄存器或进行运算的要素。该指定有3类。• 无指定 在没有必要变更(*)要素的情况下予以指定。PL[i] = (值)指令,将码垛寄存器要素代入码垛寄存器。PL[i] = (值)(算符)(值)指令,进行算术运算,将该运算结果代入码垛寄存器。字符串寄存器,存储英文数字的字符串。各自的寄存器中,最多可以存储254个字符。字符串寄存器数标准为25个。字符串寄存器数可在控制启动时增加。SR[i] =(值)指令,将字符串寄存器要素代入字符串寄存器。可从数值数据变换为字符串数据。小数以小数点以下6位数四舍五入。可从字符串数据变换为数值数据。变换为字符串中最初出现字符前存在的数值。SR[i] =(值)(算符)(值)指令,将 2 个值结合起来,并将该运算结果代入字符串寄存器。左侧的(值)若是字符串数据,则将字符串相互结合起来。左侧的(值)若是数值数据,则进行算术运算。此时,右侧的(值)若是字符串,最初出现字符之前的数值用于运算。字符列相互之间的连结结果,在超过 254 个字符时,输出“ INTP-323 数值溢出”。R[i] = STRLEN (值)指令,取得值的长度,将其结果代入寄存器。第1个(值)表示“对象字符串”,第2个(值)表示“检索字符串”。R [i]= FINDSTR (值)(值)指令,从成为对象的字符串中检索出检索字符串。取得是否在成为对象的字符串的第几个字符中找到了检索字符串,将其结果代入寄存器。对于大写字母和小写字母不予区分。没有找到检索字符串时,代入“0”。第1个(值)表示“对象字符串”,第2个(值)表示“始点位置”,第 3 个(值)表示“部分字符串的长度”。SR[i] = SUBSTR (值)(值)(值)指令,从对象字符串中取得部分字符串,将其结果代入字符串寄存器。部分字符串,根据从对象值的第几个字符这样的始点位置、以及部分字符串的长度来决定。(2)输入堆栈初始数据(3)示教堆上样式(4)示教路径模式如图 所示动作循环,在输送带 P3 进行工件抓取,在托盘上进行 码垛。1:J PR[1] 100% FINE ;移动至待命位置 P13:J PR[2] 100% FINE ;移动至待命位置 P24:WAIT RI[12]=ON ;等待抓料位有料5:L PR[3] 100mm/sec FINE ;移动至抓料位 P38:WAIT RI[11]=ON ;等待抓手闭合开关 ON11:J PAL_1[A_1] 80% FINE ;移动至趋近点12:L PAL_1[BTM] 100mm/sec FINE ;移动至堆叠点14:WAIT RI[10]=ON ;等待抓手张开开关 ON16:L PAL_1[R_1] 100mm/sec FINE;移动至回退点6. 注意事项
(1) 要提高码垛的动作精度,需要正确进行 TCP 的设定。
(2) 码垛寄存器,应避免同时使用相同编号的其他码垛。
(3) 码垛功能,在三个指令也即码垛指令、码垛动作指令、码垛结束指令 存在于一个程序而发挥作用。即使只将一个指令复制到子程序中进行示教,该功能也不会正常工作,应注意。
(4) 码垛编号,在示教完码垛的数据后,随同码垛指令、码垛动作指令、 码垛结束指令一起被自动写入。不需要在意是否在别的程序中重复使 用着码垛编号(每个程序都具有该码垛编号的数据)。
(5) 在码垛动作指令中,不可在动作类型中设定“C”(圆弧运动)。
(6) 在带有附加轴的系统中进行码垛堆积时,有几个需要注意的事项。使用带有附加轴的系统时,加轴的码垛堆积”。 (7) 码垛堆积的位置数据示教中,无法进行使用了用户坐标系的位置示教。始终使用世界坐标系,所选的用户坐标系成为 0 。