1、 AS语言示教 码垛编程AS语言示教-码垛编程 码垛(Palletize),是指机器人根据一定的排列或者摆放要求将工件(或产品)码放在一起,由零散变整齐,方便后续的包装、存储与转移,是工业机器人在工厂自动化领域的主要应用之一。AS语言示教-码垛编程-单行码垛工业机器人将零件从送料器上的到位工位(位姿#a正下方200mm处)上捡起,并依次从右到左(起始放置位置为位姿start正下方200mm处)放置到平面托盘的中间行三个(一行三列)工位上(放置工位如图中黑点所示,各工位间间距190mm)。说明:托盘和托盘上的工位都平行于工业机器人基础坐标系的XY平面。为简化编程考虑,省略外部I/O信号(如SWA
2、IT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。.PROGRAM palletize_1d 1 col.max=3 2 xs=190 3 SPEED 100 ALWAYS 4 ACCURACY 10 ALWAYS 5 HOME 6 OPENI 1 7 POINT put=start 8 FOR col=1 TO col.max 9 SPEED 3010 ACCURACY 1 11 JMOVE#a 12 DRAW 0,0,-200 13 CLOSEI 1 14 TWAIT 2 15 LMOVE#a 16 JMOVE put 17 SPEED 30 18 ACCURACY 1 19
3、 DRAW 0,0,-200 20 OPENI 1 21 TWAIT 222 LMOVE put23 POINT put=SHIFT(put BY xs,0,0)24 END.END变量1)实型变量 col.max=3 xs=1902)位姿变量 POINT put=start1)指令格式 FOR 循环变量=起始值 TO 结束值 STEP 步进值 (循环体)END2)命令功能 重复程序执行。此命令重复执行位于 FOR 和 END 语句之间的程序命令。在每次循环执行之后,循环变量增加给定的步进值(默认为1,可省略)。每个 FOR 语句必须有一个与之对应的 END 语句。流程控制结构命令:FOR-T
4、O-END 此流程控制结构命令的执行流程:(1)赋给循环变量起始值。(2)计算结束值和步进值。(3)比较循环变量和结束值。a.如果步进值为正,且循环变量大于结束值,程序跳转到流程 7。b.如果步进值为负,且循环变量小于结束值,程序跳转到流程 7。上述 a 和 b 以外,程序跳转到流程 4。(4)执行 FOR 语句之后的程序命令。(5)当执行到 END 语句时,步进值被加到循环变量上。(6)返回至流程 3。(7)执行 END 语句之后的程序命令。流程控制结构命令:FOR-TO-END 运动命令:DRAW1)指令格式 DRAW X 平移量,Y 平移量,Z 平移量,X 旋转量,Y 旋转量,Z 旋转量
5、,速度2)命令功能 机器人从当前位姿以直线插补方式动作,按指定的速度,向 X,Y,Z 轴方向上指定的距离处移动,并且绕各轴旋转指定的旋转量。DRAW 命令按基础坐标系移动机器人。3)使用范例 DRAW 50,-30 从当前位姿出发,以直线插补方式动作,在基础坐标系的 X轴方向上移动50 mm,并且在 Z 轴方向上移动 30 mm。AS语言码垛编程-码垛编程-单列码垛工业机器人将零件从送料器到位工位(位姿#a正下方200mm处)上捡起,并依次从上到下(起始放置位置为位姿start正下方200mm处)放置到平面托盘的中间列三个(三行一列)工位上(放置工位如图中黑点所示,各工位间间距190mm)。说
6、明:托盘和托盘上的工位都平行于工业机器人基础坐标系的XY平面。为简化编程考虑,省略外部I/O信号(如SWAIT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。.PROGRAM palletize_1d1 .END.PROGRAM palletize_1d11 row.max=32 ys=1903 SPEED 100 ALWAYS4 ACCURACY 100 ALWAYS5 HOME6 OPENI 17 POINT put=start8 FOR row=1 TO row.max9 JMOVE#a10 SPEED 3011 ACCURACY 112 DRAW 0,0,-20013 CL
7、OSEI 114 TWAIT 115 LMOVE#a16 JMOVE put17 SPEED 3018 ACCURACY 1 19 DRAW 0,0,-20020 OPENI 121 TWAIT 122 LMOVE put23 POINT put=SHIFT(put BY 0,-ys,0)24 END.ENDAS语言码垛编程-码垛编程-平面码垛工业机器人将零件从送料器到位工位(位姿#a正下方200mm处)上捡起,并依次(起始放置位置为位姿start正下方200mm处)放置到平面托盘的三行三列工位上(放置工位如图中黑点所示,各工位间间距190)。说明:托盘和托盘上的工位都平行于工业机器人基础坐标
8、系的XY平面。为简化编程考虑,省略外部I/O信号(如SWAIT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。.PROGRAM palletize_2d row.max=3 col.max=3 xs=190 ys=190 SPEED 100 ALWAYS ACCURACY 100 ALWAYS HOME OPENI 1 POINT put=start FOR row=1 TO row.max FOR col=1 TO col.max SPEED 30 ACCURACY 1 JMOVE#a DRAW 0,0,-200 CLOSEI 1 TWAIT 2 LMOVE#a JMOVE pu
9、t SPEED 30 ACCURACY 1 DRAW 0,0,-200 OPENI 1 TWAIT 2 LMOVE put POINT put=SHIFT(put BYxs,0,0)END POINT put=SHIFT(start BY 0,-ys*row,0)END.ENDAS语言码垛编程-码垛编程-立体码垛工业机器人将零件从送料器到位工位(位姿#a正下方200mm处)上捡起,并依次(起始放置位置为位姿start正下方200mm处)放置到平面托盘的三行三列三层的工位上(放置工位如图 中黑点所示,各工位间间距190)。说明:托盘和托盘上的工位都平行于工业机器人基础坐标系的XY平面。为简化编程
10、考虑,省略外部I/O信号(如SWAIT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。.PROGRAM palletize_3d .END.PROGRAM palletize_3drow.max=3col.max=3lay.max=3xs=190ys=190zs=190SPEED 100 ALWAYSACCURACY 100 ALWAYSHOMEOPENI 1POINT put=startPOINT b=startFOR lay=1 TO lay.max FOR row=1 TO row.max FOR col=1 TO col.max SPEED 30 ACCURACY 1 JM
11、OVE#a DRAW 0,0,-200 CLOSEI 1 TWAIT 2 LMOVE#a JMOVE put SPEED 30 ACCURACY 1 DRAW 0,0,-200 OPENI 1 TWAIT 2 LMOVE put POINT put=SHIFT(put BY-xs,0,0)END POINT put=SHIFT(b BY 0,-ys*row,0)END POINT b=SHIFT(start BY 0,0,zs*lay)POINT put=b END.ENDAS语言码垛编程-码垛编程-双托盘码垛工业机器人将零件从送料器到位工位(位姿#a正下方200mm处)上捡起,并依次(起始放
12、置位置为位姿start正下方200mm处)放置到平面托盘的三行三列的工位上(放置工位如中黑点所示,各工位间间距190)。说明:托盘和托盘上的工位都平行于工业机器人基础坐标系的XY平面。为简化编程考虑,省略外部I/O信号(如SWAIT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。托盘规格以及相对于机器人位置完全相同,先放托盘A,待托盘A放满后,在继续放在托盘B,等托盘B放满后码垛结束。.PROGRAM palletize_relativerow.max=3col.max=3xs=190ys=190SPEED 100 ALWAYSACCURACY 100 ALWAYSHOMEOPEN
13、I 1flg=0POINT pallet=b 10 POINT d=pallet+startPOINT put=dFOR row=1 TO row.maxFOR col=1 TO col.max SPEED 30ACCURACY 1JMOVE#aDRAW 0,0,-200CLOSEI 1TWAIT 2DRAW 0,0,200JMOVE putDRAW 0,0,-200OPENI 1TWAIT 2DRAW 0,0,200POINT put=shift(put BY-xs,0,0)ENDPOINT put=SHIFT(d BY 0,-ys*row,0)ENDIF flg0 GOTO 30flg=1
14、POINT pallet=cGOTO 1030 type“*end*”STOP.ENDAS语言码垛编程-码垛编程-子程序调用工业机器人将零件从送料器到位工位(位姿#a正下方200mm处)上捡起,并依次(起始放置位置为位姿star.pose正下方200mm处)放置到平面托盘的三行三列的工位上(放置工位如图中黑点所示,各工位间间距190)。说明:托盘和托盘上的工位都平行于工业机器人基础坐标系的XY平面。为简化编程考虑,省略外部I/O信号(如SWAIT、SIGNAL等命令)对送料器和机器人的联锁控制及同步处理。.PROGRAM palletize_main max.row=3 max.col=3 x
15、s=190 ys=190 SPEED 100 ALWAYS ACCURACY 100 ALWAYS HOME OPENI 1 FOR row=1 TO max.row POINT put=SHIFT(start.pose BY-(row-1)*190,0,0)FOR col=1 TO col.max CALL pickplace.sub POINT put=SHIFT(put BY 0,-190,0)ENDEND.END.PROGRAM pickplace.subSPEED 30ACCURACY 1JMOVE#aDRAW 0,0,-200CLOSEI 1TWAIT 2LMOVE#aJMOVE putSPEED 30ACCURACY 1DRAW 0,0,-200OPENI 1TWAIT 2LMOVE putRETURN.END