ABB机器人自制单轴偏移函数

ABB机器人自带有Offs函数,可以使用该函数在基于robtarget类型的点位基础上在x,y,z方向上加上偏移值,生成一个新的位置。这使得我们在编写有规律的运动路径时十分的方便。

但是有时我们想让机器人基于一个已知的位置对某个轴进行偏移,却发现ABB机器人系统中并没有类似功能的函数,那么这一次我们就仿照offs函数的功能自己编写一个ABB机器人的单轴偏移函数。

首先要新建一个例行程序,例行程序的名称可以自定义,例行程序的名称就是我们制作好的函数的名称。这里以AbsOffs为例。例行程序的类型要选择“功能”。数据类型选择jointtarget,即该函数返回的数据类型为jointtarget,在程序中函数返回值可作为一个jointtarget数据来使用。

ABB机器人自制单轴偏移函数插图

然后选择参数选项,为其添加参数,添加一个名为“Point”数据类型为“jointtarget”的参数(参数的名称可以在定义,这里以“Point”为例),模式为“IN”,也就是输入参数。这个参数用来接收偏移计算时的基准点。

ABB机器人自制单轴偏移函数插图(1)

然后再添加6个数据类型为num型参数,参数模式也为“IN”每个参数对应一个轴,用于接收我们手动输入的轴的偏移值。这里的6个参数以offset1~offset6为例。

ABB机器人自制单轴偏移函数插图(2)

然后我们在“程序数据”的“jointtarget”数据类型中新建一个jointtarget类型数据,名称可以自定义,这里以jposTemp为例。存储类型选择“变量”,模块选择我们所新建的函数所在的模块,例行程序选择我们所建的函数。这样这个变量就只会在咱们新建的这个函数中可以被调用,其它例行程序无法调用。

ABB机器人自制单轴偏移函数插图(3)

然后添加jposTemp := Point;语句,把以后函数所接受的偏移基准位置的值赋值给jposTemp。函数参数Point可能在添加过程中的数据中不显示,可以采用手动输入的方式。

ABB机器人自制单轴偏移函数插图(4)

ABB机器人自制单轴偏移函数插图(5)

然后添加6个轴的偏移赋值语句。

ABB机器人自制单轴偏移函数插图(6)

ABB机器人自制单轴偏移函数插图(7)

ABB机器人自制单轴偏移函数插图(8)

ABB机器人自制单轴偏移函数插图(9)

ABB机器人自制单轴偏移函数插图(10)

ABB机器人自制单轴偏移函数插图(11)

利用“RETURN”指令将偏移后的“jposTemp”值作为函数的返回值。

ABB机器人自制单轴偏移函数插图(12)

ABB机器人自制单轴偏移函数插图(13)

到这里,ABB机器人的轴偏移函数就制作完成了。

下面来看一下使用。

在程序编辑器中添加“MoveAbsJ”指令;

ABB机器人自制单轴偏移函数插图(14)

在选择位置数据时,我们就可以在“功能”分类中看到我们自己创建的单轴偏移函数了。

ABB机器人自制单轴偏移函数插图(15)

选择要偏移的基准点:

ABB机器人自制单轴偏移函数插图(16)

手动输入每个轴要偏移的角度。这里以1轴偏移沿正向偏移30度,其它轴不偏移为例。

ABB机器人自制单轴偏移函数插图(17)

执行这条指令后,就可以使机器人基于Phome位置1轴单独偏移30度。

ABB机器人自制单轴偏移函数插图(18)

完整Rapid代码:

代码复制到rapid编辑器中可以直接使用奥~。

FUNC jointtarget AbsOffs(jointtarget Point,num offset1,num offset2,num offset3,num offset4,num offset5,num offset6)
        VAR jointtarget jposTemp:=[[0,-0.000117,49.9999,0,90.0002,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
        jposTemp:=Point;
        jposTemp.robax.rax_1:=jposTemp.robax.rax_1+offset1;
        jposTemp.robax.rax_2:=jposTemp.robax.rax_2+offset2;
        jposTemp.robax.rax_3:=jposTemp.robax.rax_3+offset3;
        jposTemp.robax.rax_4:=jposTemp.robax.rax_4+offset4;
        jposTemp.robax.rax_5:=jposTemp.robax.rax_5+offset5;
        jposTemp.robax.rax_6:=jposTemp.robax.rax_6+offset6;
        RETURN jposTemp;
    ENDFUNC

文章首发自动化生产之家

ABB机器人自制单轴偏移函数插图(19)

没有账号? 忘记密码?

社交账号快速登录