Nachi_那智机器人_用户编程形式实现托盘取料(非码垛指令)
【代码】Nachi_那智机器人_用户编程形式实现托盘取料(非码垛指令)
·
本文是通过自编程的形式实现托盘取料(我司有专门的码垛/拆垛功能,这部分后面有机会再细讲),其主要是在用户坐标系下,对托盘各料位逐一取料,期间还可以通过视觉或者传感器信号等外围设备来实现取不到了后往下一个料位取料。
前期准备工作有:
1. 在托盘上建立用户坐标系:根据以往项目经验,建议尽可能做这个工作,以保证机器人偏移时是与托盘平行的,否则可能出现剐蹭托盘的情况;
2. 测量料位X和Y向间距:机器人是根据料位间距进行偏移的,因此需要两个数据。


**'变量声明**
V2! = 10.0 '托盘X向间距
V3! = 10.0 '托盘Y向间距
V11% = 5 '托盘X向料位数量
V12% = 5 '托盘Y向料位数量
V13% = 25 '托盘料位总数
**'初始化**
SETM o1,1 '爪手气缸——开 = ON
SETM o2,0 '爪手气缸——关 = OFF
WAITI i1 '爪手开到位
WIATJ i2 '爪手关到位
MOVE 待命位
V1% = 0 '托盘取料计数
V2% = 0 '取余数,X向第几列
V3% = 0 '求商,Y向第几行
V4% = 0 '取料成功 = 1,取料失败 = 2
**'程序开始**
* Start
* StartPick
WAITI i3 '托盘到位,即物料到位,机器人可以取料
CHGCOORD 1 '切换到1#用户坐标系
V2% = V1% MOD 5 '取余数,X向第几列
V3% = V1% \ 5 '求商,Y向第几行
SHIFTA 2,V2%*V2!,V3%*V3!,0
'参数说明:2=用户坐标系(0=机械,1=工具,2=用户,3=绝对)
MOVE 取料上方点 '1#用户坐标系下示教
MOVE 取料点 '1#用户坐标系下示教
SETM o1,0 '爪手气缸——开 = OFF
SETM o2,1 '爪手气缸——关 = ON
WAITL i2,3,*pick_NG '3秒内气缸未关到位,认为这个料位无料,跳转到*pick_NG
* pick_OK
V4% = 1
MOVE 取料上方点 '1#用户坐标系下示教
SHIFTA 2,0,0,0
GOTO * NumCount
* pick_NG
V4% = 2
SETM o1,1 '爪手气缸——开 = ON
SETM o2,0 '爪手气缸——关 = OFF
WAITI i1 '爪手开到位
WIATJ i2 '爪手关到位
MOVE 取料上方点 '1#用户坐标系下示教
SHIFTA 2,0,0,0
GOTO * NumCount
* NumCount
INH
ADDVI V1%,1 'V1% = V1% + 1,计数+1
INH
IF V1% >= 25
MOVE 待命位
SETMD o3,1,0,2 '脉冲指令。o3 = 通知PLC可换料盘;1= ON;0=该指令执行后对信号延时/提前触发的时间;2=2秒
V1% = 0 '计数归0
ENDIF
INH
IF V4% = 1
MOVE 待命位
V4% = 0
END '取料完成,结束本程序
ELSEIF V4% = 2
MOVE 待命位
V4% = 0
GOTO *StartPick
ENDIF
END
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)