You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在方法实现内部为待返回的返回值赋值?

IEC 61131-3 方法返回值的正确赋值方式

你不需要额外定义VAR_OUT变量来传递方法返回值,这种写法混淆了方法返回值和输出参数的概念。

  • 当你声明方法为METHOD M_MyMethod : BOOL时,符合IEC标准的编程环境(CODESYS、TwinCAT、TIA Portal等)会自动生成一个与方法名完全同名的隐式返回变量,你直接在方法实现内给这个同名变量赋值,方法执行结束后该变量的值就会作为返回值传递给调用方。
  • 你之前定义的bReturnVal属于独立的输出参数,和方法本身的返回值没有关联,调用时必须单独绑定参数才能拿到这个值,无法直接通过方法调用本身获取结果,不符合带返回值方法的常规使用逻辑。

正确代码示例

方法声明

METHOD M_MyMethod : BOOL
VAR
    // 仅需定义方法内部使用的局部变量即可,无需为返回值额外定义VAR_OUT
    bWhatever : BOOL;
END_VAR

方法实现

// 执行方法内部业务逻辑
bWhatever := TRUE; // 此处替换为你实际的逻辑计算结果

// 直接对方法同名变量赋值,即为返回值赋值
M_MyMethod := bWhatever;

补充:部分支持新版IEC标准的编程环境也支持RETURN关键字直接带返回值的写法,即RETURN bWhatever;,效果和给方法同名变量赋值完全一致,可根据个人编码习惯选择。

使用标准返回值写法后,你可以直接把方法调用作为布尔值使用,比如:

IF M_MyMethod() THEN
    // 方法返回TRUE时执行的逻辑
END_IF;

不需要额外声明变量接输出参数,这才是带返回值方法的预期使用方式。

内容的提问来源于stack exchange,提问作者Felix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:39:35