当前位置:诺佳网 > 电子/半导体 > 工业控制 >

功能块(FB)的结构介绍

时间:2023-02-17 | 栏目:工业控制 | 点击:

功能块(FB)的结构

Structure of a Function Block (FB)

82524ca6-ae18-11ed-bfe3-dac502259ad0.png 

定义(Definition)

功能块是逻辑块,包含程序部分,并且有一个内存区域援引派给它。无论何时FB被调用,必须给它指定一个实例数据块。当定义FB的声明部分时,就说明了实例数据块的结构。

828dd0dc-ae18-11ed-bfe3-dac502259ad0.png

FB标识符(FB Identifier)

在关键字FUNCTION_BLOCK或PROGRAM之后,键入关键字FB,跟上一个块号或FB的符号名。块号是0到65533之间的一个数值。

例子(Examples):

FUNCTION_BLOCK FB10
FUNCTION_BLOCK MOTOR1

FB声明部分(FB Declaration Section)

FB的声明部分用来定义块专有数据。声明部分应详细描述,记住声明部分也决定指派的实例数据块的结构。

例子(Example)

下例显示了一个功能块的源代码。例中输入和输出参数(本案中为V1和V2)赋予了初始值。

FUNCTION_BLOCK FB11
VAR_INPUT
V1 : INT := 7 ;
END_VAR

VAR_OUTPUT
V2 : REAL ;
END_VAR

VAR
FX1, FX2, FY1, FY2 : REAL ;
END_VAR

BEGIN
IF V1 = 7 THEN
FX1 := 1.5 ;
FX2 := 2.3 ;
FY1 := 3.1 ;
FY2 := 5.4 ;
//调用函数FC11并用静态变量提供参数
V2 := FC11 (X1:= FX1, X2 := FX2, Y1 := FY1, Y2 := FY2) ;
END_IF ;
END_FUNCTION_BLOCK

---作为本地实例调用的举例---

Example of a Call as a Local Instance

带一个简单FOR循环的功能块作为“作为共享实例”的例子编程,假设符号TEST在符号表中为FB17已经声明。

功能块能如下调用,假设VARIABLE1在调用块作为一个实数变量已经声明。

调用(Call)

FUNCTION_BLOCK CALL
VAR
// 本地实例声明
TEST_L : TEST ;
VARIABLE1 : REAL ;
RESULT : BOOL ;
END_VAR
BEGIN
. . .
// 调用本地实例:
TEST_L (FINALVAL:= 10, IQ1:= VARIABLE1) ;

读取输出值(Reading an Output Value)

输出参数CONTROL能够如下读取:

// 输出参数被存取
// 通过:
RESULT := TEST_L.CONTROL ;
END_FUNCTION_BLOCK






审核编辑:刘清

您可能感兴趣的文章:

相关文章