哈喽,大家上午好呀~
在之前的文章中,相信你已经对ABB机器人的编程有了一定的了解,比如程序的框架、组成等,而今天,正式开始指令的学习吧。
对于大多数的机器人而言,编程指令使用最多的非MOVE指令莫属了,而这篇文章,则带你熟悉并掌握常用的move指令。
Movel(线性运动)
定义:机器人TCP以线性方式运动至目标点,机器人运动状态可控,运动路径保持唯一。
简单来说,就是机器人将当前TCP沿着直线运动,根据指令要求运动至目标点。
在了解了线性运动的定义后,再来看看MOVEL指令又该如何去使用?
先来看下MOVEL指令的组成:
MoveLARG,v,z50,tool0\WObj:=wobj0;
在MOVEL指令中,MOVEL是指令码,ARG则表示线性运动的目标点,v则是线性运动的速度,z50则是定位类型,tool0\WObj:=wobj0,分别表示工具和工件坐标系。
在了解了MOVEL指令的组成后,再来看看MOVEL具体的使用:
MoveLp10,v,z50,tool0\WObj:=wobj0;
其中,P10是线性运动的目标点,其数据类型是robtarget,V是速度,其数据类型是speeddata,Z50是定位类型,其中Z50代表转弯半径,另一种常用的定位类型则是fine,那么,这两种定位类型有何区别吗?
Z50:当指令中使用了Z50的定位类型,则表示在距离下一个目标点前50mm的时候,以目标点为圆心、50mm为半径做圆弧运动,换句话说,当使用了Z50后,TCP是到达不了下一个目标点的固定位置。
FINE:当指令中使用了fine的定位类型,则表示机器人的TCP会移动到目标点的位置,而不会像Z50那样提前以50mm为半径的距离离开目标点。
好,在了解了MOVEL指令后,再看看如何在程序中使用:
PROCrMove()
MoveLp10,v,z50,tool0\WObj:=wobj0;
MoveLp20,v,z50,tool0\WObj:=wobj0;
MoveLp30,v,z50,tool0\WObj:=wobj0;
MoveLp40,v,z50,tool0\WObj:=wobj0;
ENDPROC
在上述的程序中,共使用了4条MOVEL指令,则在写好指令后,下一步就是要给每个目标位置示教点位,这个动作,需要在示教器上进行进行。
通过点位的示教后,可以得到每个点位的具体数据:
PERSrobtargetp10:=[[.76,-.34,.35],[0.5,-2.E-7,0.,-1.E-7],[-1,1,-2,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
PERSrobtargetp20:=[[.76,-.34,.35],[0.5,-2.E-8,0.,1.E-8],[-1,1,-2,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
PERSrobtargetp30:=[[.76,.66,.35],[0.5,5.E-8,0.,-7.E-8],[0,2,-3,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
PERSrobtargetp40:=[[.76,.66,.35],[0.5,3.E-7,0.,1.E-7],[0,2,-3,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
在有了具体的点位之后,就可以进行动作验证了。
好,这就是关于MOVEL指令的简单用法,后续会继续介绍其他MOVE指令的运用~~~
今天《工业机器人的基础编程教程》小智就分享到这,大家可以收藏使用。