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

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


一、什么是功能程序

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

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

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

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


二、FUNC 与 PROC 的区别

对比项 PROC FUNC
是否有返回值
是否可以直接运动 一般不用于运动
调用方式 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 程序结构。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐