功能块(FB)的结构介绍

描述

功能块(FB)的结构

Structure of a Function Block (FB)

Block 

定义(Definition)

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

Block

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






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分