功能块(FB)的结构
Structure of a Function Block (FB)
定义(Definition)
功能块是逻辑块,包含程序部分,并且有一个内存区域援引派给它。无论何时FB被调用,必须给它指定一个实例数据块。当定义FB的声明部分时,就说明了实例数据块的结构。
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
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !