Robotstudio软件:机床上下料工作站机器人示教编程

本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!

工业机器人机床上下料工作站示教编程相对来讲还是比较简单的,本质上就是机器人搬运的一个具体应用,无非就是把工件由上料位置搬运到数控机床上,再把加工完成的工件从数控机床上拆卸下来,然后搬运到工件下料位置,如此循环往复而已。

工艺说明

在虚拟仿真软件Robotstudio软件中,机器人示教编程有多种方式,你可以使用“路径编辑”功能选项卡中的相关功能进行示教编程;也可以使用虚拟示教器,按照机器人现场示教的方法进行示教编程;当然如果你对ABB机器人指令足够熟悉,你也可以使用Robotstudio软件自带的“RAPID”程序编辑器进行示教编程。无论使用哪一种方法进行示教编程,最终实现的都是工件加工工艺过程。

Robotstudio软件:机床上下料工作站机器人示教编程插图

按照机器人机床上下料工艺,本例我们需要创建6条例行程序,分别是开始与结束位置的机器人Home点程序,自动给料装置A位置处的取料程序Pick_FA,自动给料装置B位置处的取料程序Pick_FB,数控机床上下料程序Machine_Drop_Pick,输送带放料程序Conveyor_Drop,以及机器人主程序Main。

Home点程序

机器人Home点程序是机器人加工开始的初始位置点程序,同时加工结束后机器人返回后的最终位置。ABB机器人Home点程序通常使用绝对位置运动指令MoveAbsJ,因为MoveAbsJ指令是使用的机器人6个运动轴的轴角度值来定义目标位置的,机器人执行此指令过程中不受空间姿态影响,直接运行到各轴指定的目标角度位置。将机器人手动运行到合适的位置处,为其示教当前点位置,作为机器人Home点程序,程序中机器人工具选择tool0。

Robotstudio软件:机床上下料工作站机器人示教编程插图(1)

示教完成的机器人Home程序如下所示:

Robotstudio软件:机床上下料工作站机器人示教编程插图(2)

	PROC Home()
	    MoveAbsJ JointTarget_1,v500,fine,tool0\WObj:=wobj0;
	ENDPROC

给料装置取料与输送带放料程序编写

给料装置A取料程序是典型的机器人搬运程序,它属于搬运程序中的取料程序。这类程序有一个共同的特点,就是在可以使用较少的示教位置点实现复杂的机器人搬运程序,因为程序中大部分示教点可以被重复使用。最简洁的机器人取料程序,只需要示教两个机器人位置点即可实现,其中一个点用来调整机器人工具姿态,另一个点是机器人的工件取料位置点。比如我们本例中的这个机器人取料程序,只需要示教三个位置点即可,其中的Target_10是机器人工具姿态调整点,也就是把机器人工具调整到与工件垂直的姿态。Target_30是机器人抓取工件位置点,在这一点处机器人实现对工件的抓取。

Target_20是工件抓取上方位置点,这一点是机器人对工件抓取的位置调整点,在这一点处机器人工具要完全对准工件的抓取位置,然后使用线性运动指令MoveL,直接运行机器人准确到达工件抓取位置处,同时机器人抓取完工件后的返回过程中,为了避免工件与周边设备发生干涉,因此同样需要准确的向上运行到抓取上方位置处,然后再进行自由运动。所以,这里的工件抓取上方位置点我们重复使用了两次,示教编程过程中只需要复制粘贴即可,然后修改一下指令的运动类型。由于这一点是Target_30的垂直正上方位置点,因此这里我们完全可以使用ABB机器人的位置偏移功能Offs(),直接对Target_30在Z轴方向上偏移一个合适的距离,这样我们就不需要手动示教Target_20点位置了,此时的机器人抓取工件程序也就变成了最简洁的两点机器人搬运程序。

Robotstudio软件:机床上下料工作站机器人示教编程插图(3)

示教编程过程中,我们规定机器人工具的TCP1作为机器人从自动给料装置取料的TCP,而TCP2作为机器人从数控机床上取料的TCP,机器人例行程序如下图所示。

Robotstudio软件:机床上下料工作站机器人示教编程插图(4)

	PROC Pick_FA()
	    MoveJ Target_10,v500,z100,TCP1\WObj:=wobj0;
	    MoveJ Target_20,v500,z100,TCP1\WObj:=wobj0;
	    MoveL Target_30,v500,fine,TCP1\WObj:=wobj0;
	    MoveL Target_20,v500,z100,TCP1\WObj:=wobj0;
	    MoveJ Target_10,v500,z100,TCP1\WObj:=wobj0;
	ENDPROC

给料装置B取料程序与给料装置A取料程序是一致的,由于机器人是对同一个给料装置进行取料,而这两个取料位置的所需的工具姿态又相同,所以给料装置B取料的机器人程序中可以与给料装置A取料程序共用一个机器人工具姿态调整点Target_10,示教时只需把Target_10点程序复制粘贴即可,完整机器人例行程序如下所示。

Robotstudio软件:机床上下料工作站机器人示教编程插图(5)

	PROC Pick_FB()
	    MoveJ Target_10,v500,z100,TCP1\WObj:=wobj0;
	    MoveJ Target_40,v500,fine,TCP1\WObj:=wobj0;
	    MoveL Target_50,v500,fine,TCP1\WObj:=wobj0;
	    MoveL Target_40,v500,fine,TCP1\WObj:=wobj0;
	    MoveJ Target_10,v500,z100,TCP1\WObj:=wobj0;
	ENDPROC

输送带的放料程序的示教编程思想与机器人自动给料装置取料程序的编程思想类似,同样可以用三个机器人位置点完成示教编程,如下图中的Target_140、Target_150、Target_160所示,只是前者的目的是抓取工件,而后者的目的是放置工件,这里就不过多介绍了。

Robotstudio软件:机床上下料工作站机器人示教编程插图(6)

机器人输送带放料例行程序,如下图所示。

Robotstudio软件:机床上下料工作站机器人示教编程插图(7)

	PROC Conveyor_Drop()
	    MoveJ Target_140,v500,fine,TCP2\WObj:=wobj0;
	    MoveJ Target_150,v500,fine,TCP2\WObj:=wobj0;
	    MoveL Target_160,v500,fine,TCP2\WObj:=wobj0;
	    MoveL Target_150,v500,fine,TCP2\WObj:=wobj0;
	    MoveJ Target_140,v500,fine,TCP2\WObj:=wobj0;
	ENDPROC

数控机床上下料编程

数控机床上下料机器人程序与自动给料装置取料程序、输送带放料程序不同。我们试想一下,机器人从自动给料装置上取来待加工工件,如果是工作站刚启动运行,那么此时数控机床上并没有加工完成的工件,所以此时机器人直接将取来的工件安装到数控机床上即可;但是如果工作站并不是刚启动运行,那么此时的数控机床上必定由加工工件,机器人在安装新的待加工工件之前,需要先把加工完成的工件取下来,然后再进行安装。这也就是机器人工具上有两个工作位置的原因。

示教数控机床上下料机器人程序时,我们暂时不用考虑第一次启动运行的情况,直接按照正常运行的情况进行示教。上面我们已经规定了机器人工具的TCP1作为机器人从自动给料装置取料的TCP,TCP2作为机器人从数控机床上取料的TCP。正常情况下需要先从数控机床上取下加工完成的工件,因此这里首先使用机器人TCP2进行示教编程。选择合适位置点Target_100进行示教,作为机器人机床上下料起始位置点。

Target_110~ Target_130点与自动给料装置抓取工件程序类似,Target_110是机器人工具姿态调整点。在Target_110点位置处,机器人工具旋转90°,因为机床上的工件是垂直状态安装的,工具旋转之后才能实现抓取拆除工作。Target_130点是机器人在数控机床上抓取已加工完成工件的位置点,Target_120点是抓取位置上方点。

Target_80、Target_90点是机器人放置待加工工件程序点,Target_90点是机器人在数控机床上安装工件的位置点,Target_80点是安装工件上方位置点,这与机器人输送带放料程序完全一致。同时,Target_80点位置与Target_120点相同,Target_90点位置与Target_130点相同,不同的是Target_80、Target_90点使用的是机器人工具的TCP1。机器人由Target_120点向Target_80点运行过程中实现工具工作位置的切换,即由TCP2转换为TCP1,以实现由抓取工件转换为放置工件。

Robotstudio软件:机床上下料工作站机器人示教编程插图(8)

完整的机器人机床上下料例行程序如下图所示。

Robotstudio软件:机床上下料工作站机器人示教编程插图(9)

    PROC Machine_Pick_Drop()
        MoveJ Target_100,v500,fine,TCP2\WObj:=wobj0;
        MoveJ Target_110,v500,fine,TCP2\WObj:=wobj0;
        MoveL Target_120,v500,fine,TCP2\WObj:=wobj0;
        MoveL Target_130,v500,fine,TCP2\WObj:=wobj0;
        MoveL Target_120,v500,fine,TCP2\WObj:=wobj0;
        MoveL Target_80,v500,fine,TCP1\WObj:=wobj0;
        MoveL Target_90,v500,fine,TCP1\WObj:=wobj0;
        MoveL Target_80,v500,fine,TCP1\WObj:=wobj0;
        MoveJ Target_110,v500,fine,TCP2\WObj:=wobj0;
        MoveJ Target_100,v500,fine,TCP2\WObj:=wobj0;
    ENDPROC

运行效果如下图。

Robotstudio软件:机床上下料工作站机器人示教编程插图(10)

除此之外还有主程序Main,它是用来编程机器人运行控制逻辑的,同时还有机器人抓取与放置工件的信号控制指令,这些内容都会在下一期介绍。

总结

通过上述机床上下料程序的示教,可以看出机器人搬运类程序的共有特点是,以机器人工作位置点(抓取点、放置点)为中心,工作点前后的程序点完全对称,示教编程时可以充分利用这一大特点,简化程序数量,降低示教编程工作量,提高编程效率。

Robotstudio软件:机床上下料工作站机器人示教编程插图(11)

The End

上一篇:Robotstudio软件:利用CAD图进行机器人工作站布局

没有账号? 忘记密码?

社交账号快速登录