ABB工业机器人编程基础(十三)功能程序(FUNC)

在 RAPID 编程中,除了常用的PROC(例行程序)外,还有一种常用的程序类型——FUNC(Function,功能程序)

功能程序用于完成某项计算或判断,并返回一个结果,因此也称为函数


一、什么是功能程序

FUNC(Function)是一种带有返回值的程序。

与 PROC 不同,FUNC 执行结束后会返回一个指定类型的数据,例如:

  • num(数字)
  • bool(布尔值)
  • string(字符串)
  • robtarget
  • tooldata

因此,FUNC 常用于计算、判断和数据处理。


二、FUNC 与 PROC 的区别

对比项PROCFUNC
是否有返回值
是否可以直接运动一般不用于运动
调用方式rPick();value:=GetNum();
常见用途控制机器人运动数据计算、条件判断

三、功能程序语法

FUNC 返回值类型 函数名() RETURN 返回值; ENDFUNC

例如:

FUNC num BMI(num tiZhong,num height) bmi1 := tiZhong / Pow(height,2); RETURN bmi1; ENDFUNC

表示创建一个返回数字的功能程序。


四、调用功能程序

定义完成后,可以将返回值赋给变量。如下给TPWrite 添加了可选变量Num。

PROC main() getBmi := BMI(65,1.7); TPWrite "your tizhong shi"\Num:=getBmi; ENDPROC

五、实际项目中的应用

在机器人项目中,FUNC 常用于:

  • 判断工件是否到位
  • 判断真空是否建立
  • 计算偏移量
  • 计算搬运数量
  • 判断机器人状态
  • 返回产品型号

例如:

FUNC bool IsWorkpieceReady() RETURN di10_0=1; ENDFUNC

主程序:

IF IsWorkpieceReady() THEN rPickQZ; ENDIF

相比直接判断输入信号,程序更加清晰,也更方便维护。


六、注意事项

  • FUNC必须有RETURN语句。
  • 返回值类型必须与函数声明一致。
  • 功能程序主要用于数据处理和逻辑判断,不建议在FUNC中编写机器人运动指令(如MoveJMoveL),运动控制通常放在PROC中完成。
  • 当需要重复使用某段计算或判断逻辑时,建议封装为FUNC

小结

功能程序(FUNC)是一种带返回值的程序,适用于计算、判断和数据处理。与PROC相比,FUNC 更适合封装公共逻辑,提高程序的复用性和可读性。在实际项目中,经常将设备状态判断、信号检测、参数计算等功能编写为 FUNC,再由主程序调用,实现更加规范、易维护的 RAPID 程序结构。