函数是一种 POU,在执行时只提供一个数据元素,其在文本语言中的调用可作为表达式中的运算符出现。数据元素也可以是数组或结构体。
通过单击“Project Add Object POU” 将对象添加到应用程序或项目中。在设备树或“POU” 视图中,功能 POU 的后缀是“(FUN)” 。




注意

函数没有内部状态信息,这意味着函数不会保存其变量的值,直到下一次调用。使用相同的输入变量值调用函数时,总是提供相同的输出值。因此,函数不得使用全局变量和地址!
函数的编辑器由声明部分和实现部分组成。
声明部分的第一行包含以下声明:
FUNCTION <function> : <data type>
下面是输入变量和函数变量的声明。
函数的输出变量是函数名。




注意

如果将函数中的局部变量声明为RETAIN
,则不会产生任何影响。在这种情况下,CODESYS 会出现编译器错误。




注意

在CODESYS V3 中,不能在函数调用中混合显式和隐式参数赋值。这意味着在函数调用中必须只使用显式参数赋值或隐式参数赋值。调用函数时,参数赋值的顺序是任意的。
调用函数
在 ST 中,可以将函数调用作为表达式的操作数。
在 SFC 中,只能在步骤操作或转换中使用函数调用。
示例
带有声明部分和一行执行代码的函数

功能调用:
ST:
result := POU_Funct(5,3,22);
AWL:

FBD:

附加输出功能
根据 IEC 61131-3 标准,功能可以有附加输出。在函数中的关键字VAR_OUTPUT
和END_VAR
之间声明附加输出。该函数的调用语法如下:
<function> (<function output variable1> => <output variable 1>, <function output variable n> => <output variable n>)
示例
fun
函数由两个输入变量in1
和in2
定义。fun
函数的输出变量被写入本地声明的输出变量loc1
和loc2
。
fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);
另见