欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-23 11:11:30
...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

下面来看一下使用。

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

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

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

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

选择要偏移的基准点:

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

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

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

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

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

完整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机器人自制单轴偏移函数

相关标签: ABB机器人