Nachi_那智机器人_码垛功能的使用
8. 下面,要根据料盘上物料的总量进行设定,由于码垛功能的1“层”最多计99个产品,当我们料盘超过99个时,我们要把料盘分“层”,比如说这次料盘盘为10行*15列,那我们把它分成第1层:10行*8列,第2层10行*7列,请注意,刚才我们分的两层是不同的,因为他们列数不同,因此下图我们把层1和层2的“面图形编号”设置成不同的,即每层单独设定参数,如下图中圈起来的。完成后点击“下一步”7. 下面,我们
那智机器人自带码垛功能,即堆列,通过该功能客户可以大大减少编程工作,下面简单介绍一下。
一、配置
码垛功能系统自带,不过新机需要做配置,具体配置过程如下:
1.权限升级;
2.常数设定→12 格式和初始设定→7 应用程序→按图设定,并点”写入“;

3.设置完成,重启后,示教器界面增加了”堆列“相关选项,有”堆列“字眼的均为复合按键,需要按住enable,如下图:

二、具体操作
1.用户坐标系设定:建立一个程序,示教三个点,顺序为用户坐标系的o,x和y,如下图

2.点击”堆列/常数设定“按钮,不用按enable【如果要进入常数设定,则按住enable再按此按键】

3. 选择”1 托盘的登录“,我们可以任意输入一个数字(范围从1~100),比如这个项目有放料托盘和取料托盘两种,我先用30#作为取料托盘,31#作为放料托盘,输入数字后需按示教器键盘的“回车”键,进入后如下图

4.点击屏幕右侧“读取程序”按键,选择第1步中我们示教的用户坐标系oxy三点程序,并按回车,系统会自动将三个点的坐标值代入界面中,用户看到有数值后,即可点“写入”,弹窗点“OK”即可。

上述步骤完成后,即相当于将用户坐标系与这个“30#托盘”绑定了
5.点击“2 堆列模式登录”,此界面内是对托盘数据的详实描述,如料盘有多少行,多少列,间隔多少。如下图,我们输入30,目的是将两者一致,避免混淆。

6.托盘编号,即第3步中刚登记的;尺寸L,为托盘ox方向上产品间距;尺寸W,为托盘oy方向上产品间距,用户只需填这三个即可。完成后点击“下一步”

7. 此页可不用修应该,直接点击“下一步”

8. 下面,要根据料盘上物料的总量进行设定,由于码垛功能的1“层”最多计99个产品,当我们料盘超过99个时,我们要把料盘分“层”,比如说这次料盘盘为10行*15列,那我们把它分成第1层:10行*8列,第2层10行*7列,请注意,刚才我们分的两层是不同的,因为他们列数不同,因此下图我们把层1和层2的“面图形编号”设置成不同的,即每层单独设定参数,如下图中圈起来的

7. 下面,我们对第1层进行参数设定,如上面提到的,第一层10行,8列,我们输入10和8,第一层的“平行移动”值通常填0即可

8.对第2层进行参数设定, 第2层10行,7列,我们输入10和7,这里的“平行移动”,X填0,Y填120,因为第2层是基于第1层基准点平移的,平移距离为第1层Y方向的距离,即第6步中的W 乘以 8(第7步中的Yp),完成后点击“下一步”

9. 按键盘↑或↓,确认布局

10.确认无误后,点“写入”
11.至此我们完成了“取料托盘”,按此流程完成“放料托盘”
三、程序编制
REM "6.0mm 棒料主程序"
WHILE O100<>1
REM "机器人不在作业原位置"
DELAY 0.001
ENDW
PALLET3_RESET 30 '取料托盘,堆列复位
PALLET3_RESET 31 '放料托盘,堆列复位
LETVI V10%,0 '取料托盘取料计数
LETVI V11%,0 '放料托盘放料计数
MOVEX A=1,AC=0,SM=0,M1X,P,(-21.942,-251.105,573.077,-94.012,-0.502,-0.613),R=10.0,H=1,MS, CONF=0010 '原点
LETVI V15%,150 '料盘总数
CALLP 0
REM "==============================================="
*LOOP
REM "6.0mm 换料程序"
LETVI V1%,0
LETVI V2%,0
MOVEX A=5,AC=0,SM=0,M1X,P,(-405.536,-224.053,528.384,-91.061,0.147,-0.09),R= 100,H=1,MS, CONF=0010
REM "===============料盘取料==============="
PALLET3 30,0,O0,O0 '取料托盘取料,调用30#堆列模式
MOVEX A=1,AC=0,SM=2,M1X,L,(-448.682,-205.244,453.436,-1.934,-0.796,0.006),R= 100,H=1,MS, CONF=0012 '料盘外
MOVEX A=1P,AC=0,SM=1,M1X,L,(-435.214,-206.604,319.809,-1.994,-0.017,-0.358),R=50.0,H=1,MS, CONF=0012 '避开棒料
COLSEL 1 '干扰检测-1
MOVEX A=1P,AC=0,SM=1,M1X,L,(-457.67,-206.626,319.894,-1.997,-0.004,-0.366),R=10.0,H=1,MS, CONF=0012 'Close To 取料原点
MOVEX A=1P,AC=0,SM=1,M1X,L,(-457.709,-204.929,319.964,-2.002,0.006,-0.372),R=10.0,H=1,MS, CONF=0012 '取料原点
CALLP 901
MOVEX A=1P,AC=0,SM=1,M1X,L,(-457.67,-204.958,346.97,-2.003,-0.005,-0.378),R=10.0,H=1,MS, CONF=0012 '取出棒料至料盘外
COLSEL 0
MOVEX A=1,AC=0,SM=1,M1X,L,(-460.3,-204.685,406.711,0.803,-0.787,-0.03),R= 100,H=1,MS, CONF=0012 '抬高比棒料高5cm
ADDVI V10%,1
PALLET3_END 30,O0 '取料托盘取料,关闭30#堆列模式
MOVEX A=5,AC=0,SM=0,M1X,L,(-296.152,-226.213,537.275,0.943,0.114,0.156),R=80.0,H=1,MS, CONF=0012
MOVEX A=5,AC=0,SM=0,M1X,P,(-21.942,-251.105,573.077,-94.012,-0.502,-0.613),R=80.0,H=1,MS, CONF=0010
MOVEX A=5,AC=0,SM=0,M1X,P,(174.473,-251.072,573.089,-94.009,-0.504,-0.612),R=80.0,H=1,MS, CONF=0010
*THE WAIT
REM "==========判断装料还是取料============"
IF I161=1 AND I162=0
MOVEX A=5,AC=0,SM=2,M1X,P,(174.473,-251.072,573.089,-94.009,-0.504,-0.612),R= 100,H=1,MS, CONF=0010
MOVEX A=5,AC=0,SM=2,M1X,P,(341.479,-125.399,490.35,-94.011,-0.509,-0.603),R= 100,H=1,MS, CONF=0010
LETVI V1%,1
GOTO *A
ELSEIF I162=1 AND I161=0
GOTO *B
ELSE
GOTO *THE WAIT
ENDIF
*B
REM "==============机床卸料==============="
WAITI I162
MOVEX A=5,AC=0,SM=2,M1X,P,(174.473,-251.072,573.089,-94.009,-0.504,-0.612),R= 100,H=1,MS, CONF=0010
MOVEX A=5,AC=0,SM=2,M1X,P,(316.639,-81.73,526.935,-7.887,0.581,-0.545),R= 100,H=1,MS, CONF=0010
MOVEX A=1,AC=0,SM=1,M1X,P,(491.934,-54.405,595.183,87.374,0.132,-88.729),R= 100,H=1,MS, CONF=1010
COLSEL 1
MOVEX A=1,AC=0,SM=0,M1X,L,(833.126,-67.01,468.553,87.36,-4.652,-89.526),S=1200.0,H=1,MS, CONF=1010
SETMD O162,1,0,2
WAITI I164
DELAY 0.5
MOVEX A=1,AC=0,SM=0,M1X,L,(834.65,-18.189,473.571,90.29,0.568,-89.882),S= 600.0,H=1,MS, CONF=1010
MOVEX A=1P,AC=0,SM=1,M1X,L,(834.637,-18.155,476.18,90.291,0.572,-89.895),S= 600.0,H=1,MS, CONF=1010
CALLP 903
SETMD O164,1,0,2
WAITI I165
MOVEX A=1P,AC=0,SM=1,M1X,L,(801.03,-18.037,475.996,90.3,0.569,-89.875),S= 200.0,H=1,MS, CONF=1010
MOVEX A=1,AC=0,SM=0,M1X,L,(780.256,-18.215,475.876,90.272,0.52,-89.865),S=2500.0,H=1,MS, CONF=1010
MOVEX A=1,AC=0,SM=0,M1X,P,(663.437,-36.79,607.344,87.362,-4.649,-89.516),R= 100,H=1,MS, CONF=1010
COLSEL 0
SETMD O165,1,0,2
INH
IF V2%=1
MOVEX A=5,AC=0,SM=2,M1X,P,(318.339,-81.939,526.92,-6.617,0.593,-0.529),R= 100,H=1,MS, CONF=0010
MOVEX A=5,AC=0,SM=2,M1X,P,(-88.278,-249.644,615.63,-94.01,-0.504,-0.614),R= 100,H=1,MS, CONF=0010
LETVI V2%,0
GOTO 96
ENDIF
*A
REM "===============机床上料==============="
WAITI I161
MOVEX A=1,AC=0,SM=1,M1X,P,(511.709,-18.357,483.563,-90.018,2.894,89.325),R=60.0,H=1,MS, CONF=1011
COLSEL 1
MOVEX A=1,AC=0,SM=0,M1X,L,(781.564,-20.046,362.77,-90.022,2.893,89.314),S=2000.0,H=1,MS, CONF=1011
MOVEX A=1P,AC=0,SM=1,M1X,L,(797.212,-23.138,322.746,-89.981,2.91,89.549),S= 800.0,H=1,MS, CONF=1011
MOVEX A=1P,AC=0,SM=1,M1X,L,(831.243,-23.119,322.844,-89.977,2.908,89.561),S= 200.0,H=1,MS, CONF=1011
SETMD O161,1,0,2
WAITI I163
CALLP 900
DELAY 0.5
MOVEX A=1,AC=0,SM=0,M1X,L,(830.493,-48.558,318.518,-89.98,2.907,89.523),S= 400.0,H=1,MS, CONF=1011
SETMD O163,1,0,2
WAITI I165
MOVEX A=1,AC=0,SM=1,M1X,L,(742.317,-58.573,451.149,-90.016,2.895,89.32),S= 800.0,H=1,MS, CONF=1011
COLSEL 0
MOVEX A=1,AC=0,SM=1,M1X,P,(315.717,-81.6,526.94,-8.59,0.573,-0.554),R=50.0,H=1,MS, CONF=0010
MOVEX A=1,AC=0,SM=1,M1X,P,(-88.278,-249.644,615.63,-94.01,-0.504,-0.614),R=60.0,H=1,MS, CONF=0010
SETMD O165,1,0,2
IF V1%=1 THEN *LOOP ELSE 96
REM "===============成品料盘放料==============="
MOVEX A=5,AC=0,SM=0,M1X,P,(-345.698,-288.855,562.58,-94.01,-0.51,-0.62),R= 100,H=1,MS, CONF=0010
PALLET3 31,0,O0,O0 '放料托盘放料,调用31#堆列模式
MOVEX A=1,AC=0,SM=1,M1X,P,(-336.632,-242.275,488.967,178.862,0.437,-0.029),R= 100,H=1,MS, CONF=0010 '料盘外
MOVEX A=1P,AC=0,SM=1,M1X,L,(-340.889,-243.703,344.039,179.588,-0.906,-0.332),R=10.0,H=1,MS, CONF=0010 '放料口
COLSEL 1
MOVEX A=1P,AC=0,SM=1,M1X,L,(-340.958,-243.746,318.296,179.596,-0.926,-0.317),S= 100.0,H=1,MS, CONF=0010 '放料点
CALLP 902
MOVEX A=1P,AC=0,SM=1,M1X,L,(-329.259,-243.733,318.233,179.598,-0.909,-0.325),S= 200.0,H=1,MS, CONF=0010
MOVEX A=1,AC=0,SM=0,M1X,L,(-329.241,-243.712,371.396,179.594,-0.903,-0.335),S= 200.0,H=1,MS, CONF=0010 '抬高
COLSEL 0
MOVEX A=1,AC=0,SM=1,M1X,L,(-336.64,-242.275,500.632,178.862,0.434,-0.03),R=60.0,H=1,MS, CONF=0010
ADDVI V11%,1
PALLET3_END 31,O174
MOVEX A=5P,AC=0,SM=0,M1X,P,(-405.536,-224.053,528.384,-91.061,0.147,-0.09),R= 100,H=1,MS, CONF=0010
IF V10%>=V15% AND V11%>=V15% '当取料计数、放料计数都大于托盘总数时,流程完成
GOTO *OK
ELSEIF V10%>=V15%
MOVEX A=1,AC=0,SM=0,M1X,P,(-21.942,-251.105,573.077,-94.012,-0.502,-0.613),R=10.0,H=1,MS, CONF=0010 '原点
LETVI V2%,1
GOTO *THE WAIT
ELSE
GOTO *LOOP
ENDIF
MOVEX A=5,AC=0,SM=0,M1X,P,(-21.942,-251.105,573.077,-94.012,-0.502,-0.613),R=80.0,H=1,MS, CONF=0010
*OK
REM "加工完成"
SETMD O22,1,0,2
LETVI V10%,0
LETVI V11%,0
PALLET3_RESET 30 '取料托盘,堆列复位
PALLET3_RESET 31 '放料托盘,堆列复位
MOVEX A=5,AC=0,SM=0,M1X,P,(-405.536,-224.053,528.384,-91.061,0.147,-0.09),R= 100,H=1,MS, CONF=0010
MOVEX A=1,AC=0,SM=0,M1X,P,(-21.942,-251.105,573.077,-94.012,-0.502,-0.613),R=10.0,H=1,MS, CONF=0010 '原点
JMP 137
REM "料盘取料失败"
MOVEX A=5,AC=0,SM=0,M1X,L,(-405.536,-224.053,528.384,-91.061,0.147,-0.09),R= 100,H=1,MS, CONF=0010
CALLP 111
SETMD O24,1,0,2
STOP
JMP 15
END
四、偏差处理
当用户坐标系未作准时,有可能机器人取、放料的时候工件会剐蹭料盘,通常取料不会出现这种问题,剐蹭大多数出现在放料时,客户应在自动运行模式下观察,观察产品应向ox还是oy方向增加补偿,如果确认好方向后,可在对应的“平行移动”中进行位置补偿,如下图,在实际运行时第1层没有问题,但第2层、第3层有剐蹭,因此加入了补偿,如下图。


PS:如果用户修正了用户坐标系的三个点,那么需要执行“二”中的第3步
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)