功能程序的作用实际上与RAPID函数命令类似,它可作为函数命令的补充,实现用户所需要的特殊运算和处理功能。
全局功能程序直接以程序类型FUNC起始,用ENDFUNC结束,程序结构与格式如下。
FUNC 数据类型 功能名称
程序数据定义
程序指令
RETURN 返回数据
ENDFUNC
功能程序的起始行同样为程序声明,全局程序直接以程序类型FUNC起始,后续返回结果的数据类型和程序名称,名称后必须附加参数表。程序声明指令后可编写各种指令,其中,必须包含返回执行结果的指令RETUN;*后用ENDFUNC指令结束。
功能程序可用来计算除数组外的其他所有程序数据,其程序格式和调用示例如下,示例中的主程序PROC mainprg()调用了3个计算不同类型程序数据的功能程序;
PROC mainprg ()
p0:=pStart(Count);
work_Dist:=veclen(p0.trans);
IF NOT CurrentPos(p0,tMIG1) THEN
ENDPROC
FUNC robtarget pStart(num nCount)
VAR robtarget pTarget;
TEST nCount;
CASE 1;
pTarget:=offs(p0,200,,200,500);
CASE2;
pTarget:=offs(p0,400,,200,500);
ENDTSET
RETURN pTarget;
ENDFUNC
FUNC num veclen(pos vector)
RETURN sqrt(quad(vector.x)+quad(vector.y)+quad(vector.z));
ENDFUNC
FUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP)
VAR num Counter:=0;
VAR robtarget ActualPos;
ActualPos:=CRobT(\Tool:=tMIG1\wobj0);
IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.x
相关标签:ABB机器人