在竞赛赛题中,有多个任务模块,涂胶、码垛、芯片分拣等等,不同的模块所需要的工具各不相同,不同工具对应的IO信号也不相同,利用此程序将可极大的优化程序代码,减少程序代码量。
proc ceshi()
movel offs(p10,0,0,50),v200,z0,tool0;到达工具安装点(拆卸点)p10上方
movel offs(p10,0,0,0),v200,z0,tool0;到达工具安装点(拆卸点)p10
waittime 1;
set kh;置位快换工具信号安装工具
waittime 1;
movel offs(p10,0,0,50),v200,z0,tool0;回到工具安装点(拆卸点)p10上方
movel offs(p10,0,0,50),v200,z0,tool0;到达工具安装点(拆卸点)p10上方
movel offs(p10,0,0,0),v200,z0,tool0;到达工具安装点(拆卸点)p10
waittime 1;
reset kh;复位快换工具信号卸载工具
waittime 1;
movel offs(p10,0,0,50),v200,z0,tool0;回到工具安装点(拆卸点)p10上方
endproc
以上程序是优化前的,根据程序不难发现安装和拆卸部分,程序结构完全相同仅仅是信号的置位复位发生变化。优化点1
“门型运动”在任务中经常性出现,例如码垛物料块的夹取和释放,芯片的吸取和释放等等,不同的执行工具对应的io信号也不相同。优化点2
安装(拆卸)点的偏移高度由工具尺寸决定,是变化的,所以偏移高度不能是一个定值。优化点3
根据不同的节拍优化,应能够灵活调整等待时间,故时间也不能是一个定值。优化点4
不同的安装或夹取(吸取)对象在不同的位置,故位置也应该是参数之一。优化点5
那么,我们根据上面提出的优化点,可以得到下面的程序。
proc gj(robtarget wz,num py,num sj,num kg,var signaldo xh)
movej offs(wz,0,0,py),v200,z0,tool0;
movel offs(wz,0,0,0),v200,z0,tool0;
waittime sj;
if kg=1 set xh;
if kg=2 reset xh;
waittime sj;
movel offs(wz,0,0,py),v200,z0,tool0;
endproc
使用方法:
假设涂胶笔的点位为p10,已知涂胶笔的高度为180mm,若要安装涂胶笔或卸载涂胶笔,只需调用上述子程序即可。
proc main()
gj p10,200,1,1,kh;安装涂胶笔
gj p10,200,1,2,kh;卸载涂胶笔
endproc
夹子和吸盘的使用同理。