报名人数298782
资讯中心 > 课程相关资讯 > 机器人培训 > 机器人培训 > robtarget型的内置功能程序:Offs和CRobt

robtarget型的内置功能程序:Offs和CRobt

时间:2021-06-11 16:53 来源:

Offs功能程序的编程应用

Offs是一个robtarget型的内置功能程序,其作用是对一个robtarget型的机器人位置数据进行偏移,并返回偏移后的robtarget型数据值。
offs的语法格式为:Offs (Point ,XOffset ,YOffset ,ZOffset)
point:偏移基准点,robtarget型数据;
XOffset:工件坐标系中X方向的位移,num型数据;
YOffset:工件坐标系中Y方向的位移,num型数据;
ZOffset:工件坐标系中Z方向的位移,num型数据;
智通工业机器人培训专家下面以一些示例来介绍offs功能程序。
例1:MoveL Offs(p10,0,0,50), v1000, fine, tool0WObj:=wobj1;
在工件坐标系wobj1下,将机械人tool0的TCP移动至p10点往Z轴方向偏移50mm的位置处。
例2:p20 := Offs(p10,50,0,0);
将P10往X轴方向偏移50mm后的位置数据值赋给p20。

Offs是一个非常实用的功能程序,合理使用Offs,能够大大减少一个程序中需要示教的点位。例如,在图10-8中,目标点p1、p2、p3、p4是矩形的四个顶点,相对位置关系固定,现需要编写程序使tool1的TCP沿图中的矩形轨迹运动。下文的程序1和程序2都能够完成任务要求,但程序1需要示教4个目标点,程序2由于使用了offs功能程序仅
需要示教1个目标点。


  图10-8


程序1:
MoveL p1, v1000, fine, tool1WObj:=wobj1;
MoveL p2, v1000, fine, tool1WObj:=wobj1;
MoveL p3, v1000, fine, tool1WObj:=wobj1;
MoveL p4, v1000, fine, tool1WObj:=wobj1;
MoveL p1, v1000, fine, tool1WObj:=wobj1;
程序2:
MoveL p1, v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,200,0,0), v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,200,160,0), v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,0,160,0), v1000, fine, tool1WObj:=wobj1;
MoveL p1, v1000, fine, tool1WObj:=wobj1;

 CRobt功能程序的编程应用

CRobt是一个robtarget型的内置功能程序,其作用是读取机器人当前的位置数据,并返回一个robtarget型数据值,包含机器人当前TCP的X、Y、Z值,姿态q1~q4,轴配置等数据。

CRobt的语法格式为:CRobT ([Tool] [WObj])
[Tool]:指定用于计算的工具,tooldata型数据,如果不指定则使用当前工具;
[WObj]:指定用于计算的工件坐标系,wobjdata型数据,如果不指定则使用当前工件坐标系;
对于多任务的控制系统,还有用于指定读取机器人位置数据的任务的可选变量[TaskRef]、[TaskName],在此不再介绍。下面以一些示例来介绍CRobt功能程序。
例1:VAR robtarget p1;
MoveL *, v500, fine, tool1;
p1 := CRobT(Tool:=tool1 WObj:=wobj0);
读取机器人当前的位置数据,并存储于p1中,tool1、wobj0用于计算位置。需要注意的是为保证读取数据的准确性,读取机器人位置前机器人应是静止的,所以前一条运动指令应当使用转弯半径Fine。
例2:MoveL *, v500, Fine, tool1;
MoveL Offs(CRobT(),0,0,50), v1000, Fine, tool0;
从当前位置*处,往坐标系的的Z轴方向,线性偏移50mm,使用当前激活的工具和工件坐标进行位置计算。

 创建用户自定义功能程序

ABB机器人控制系统内置的功能程序非常多,对于其他内置功能程序东莞工业机器人培训老师就不再给大家逐一介绍,想了解其他内置功能程序的作用与用法,请查阅ABB官方提供的技术参考手册《RAPID指令、函数和数据类型》。
除了系统内置的功能程序外,用户还可以自行声明、编写功能程序。下文展示了一个用户自定义的功能程序,程序的作用是比较两个num型数据的大小,并返回数值较大的那个程序数据,若两数相等则返回0。
 
FUNC num which_bigger(INOUT num num1,INOUT num num2)
IF num1 > num2 THEN
RETURN num1;
ELSEIF num2 > num1 THEN
RETURN num2;
ELSE
RETURN 0;
ENDIF
ENDFUNC
 
东莞工业机器人培训专家在下面以声明上述用户自定义功能程序which_bigger为例,讲解在程序编辑器界面如何声明用户自定义功能程序。声明的步骤是:1单击【例行程序】—2单击【文件】—3单击【新建例行程序】—4输入名称“which_bigger”—5类型选择为“功能”—6单击参数后面的“...”—7单击【添加】—8单击【添加参数】—9输入参数名“num1” —10单击【确定】—11参数数据类型设定为num—12参数模式设定为输入输出(Inout)—13单击【添加】—14单击【添加参数】—15输入参数名“num2” —16单击【确定】—17参数数据类型设定为num—18参数模式设定为Inout—19单击【确定】—20单击【确定】。详细的操作步骤图示见图10-9~图10-19:

 

                                                                                   
                            图10-9                                                           图10-10                                                                                  
 
            

                           图10-11                                                         图10-12


           
                           图10-13                                              图10-14
 
           

                          图10-15                                                            图10-16


          

                       图10-17                                                           图10-18



                       图10-19

完成功能程序的声明后,就可以对功能程序进行编写,操作方法与例行程序的操作方法相同。完成功能程序的编写,就可以调用自定义的功能程序,调用方法与内置功能程序的调用方法相同。


想了解更多东莞工业机器人培训资讯?智通教育20年致力于东莞工业机器人培训、PLC培训、电工培训等培训项目,详情联系:0769-8707-8535.