首页 理论教育 FB及其应用:深入解析

FB及其应用:深入解析

时间:2023-06-26 理论教育 版权反馈
【摘要】:图7-101 FB1程序界面图7-102 建立接口参数从图7-102可见,建立输入参数X;输出参数Y;静态变量A、B、C,并设其初值分别为A=1、B=1、C=10;临时变量RESULT1、RESULT2。3)FB1程序编写。当M0.1=1时,将实数2.0传送给DB1.DBD8,从图7-109可见,DB1.DBD8是静态变量A的地址;同理,将实数20.0传送给静态变量B,其在DB1数据块中的地址是DB1.DBD12。图7-110 修改系数后OB1中FB1模块运行由于DB2数据块静态变量并未改变,因此其功能块运行结果MD6=Y=X2+X+10=22+2+10=16,与在线监控结果保持一致。

FB及其应用:深入解析

FB是功能块,拥有自己的存储区,即背景数据块。

FB在程序的体系结构中位于组织块之下,包含程序的一部分,这部分程序可以在OB1中多次被调用。功能块的所有参数和静态参数都存储在一个单独的、被指定给该功能块的数据块中,即背景数据块。当调用FB时,该背景数据块会自动打开;当块退出时,背景数据块中的数据仍然保持。

每次调用FB都需要一个DB来供其存放逻辑运算数据,而不像FC需要输入/输出接口地址作为数据源。

【例7-4】设计函数模块,计算Y=AX2+BX+C值,且函数系数可变。

1)在SIMATIC Manager界面右侧显示栏,建立FB1模块,如图7-100所示。

978-7-111-51420-6-Chapter07-121.jpg

图7-100 FB1模块的建立

2)双击图7-100所示FB1模块,进入FB1模块的程序编写界面,如图7-101所示,为FB1功能块分别定义Interface参数,如图7-102所示。

978-7-111-51420-6-Chapter07-122.jpg

图7-101 FB1程序界面

978-7-111-51420-6-Chapter07-123.jpg

图7-102 建立接口参数

从图7-102可见,建立输入参数X;输出参数Y;静态变量A、B、C,并设其初值分别为A=1、B=1、C=10;临时变量RESULT1、RESULT2。变量声明后,除了在本地数据堆栈中为临时变量保留一个有效存储空间外,还要为静态变量保留空间。

3)FB1程序编写。为满足Y=AX2+BX+C功能,编写FB1逻辑关系如图7-103所示。

978-7-111-51420-6-Chapter07-124.jpg

图7-103 FB1程序

4)为FB1分别建立背景数据块DB1、DB2。在SIMATIC Manager界面右侧显示栏,建立DB1模块,弹出界面如图7-104所示,在下拉菜单中选择“Instance DB”选项,采用同样的路径和方法建立DB2。

978-7-111-51420-6-Chapter07-125.jpg

图7-104 FB1背景数据块DB1的建立

也可以在OB1中调用FB1模块时自动生成背景数据块,操作步骤如图7-105所示。

978-7-111-51420-6-Chapter07-126.jpg(www.xing528.com)

图7-105 调用FB时自动生成背景数据块

5)OB1程序的编写。在OB1主程序中调用功能FB1,如图7-106所示,程序编写如图7-107所示。

978-7-111-51420-6-Chapter07-127.jpg

图7-106 FB1的调用

978-7-111-51420-6-Chapter07-128.jpg

图7-107 OB1程序

网络1程序在线运行数据如图7-108所示,当M0.0=1时,MD2=X2+X+10=10*10+10+10=120,MD6=22+2+10=16,DB1数据表在线监控情况如图7-109所示。

978-7-111-51420-6-Chapter07-129.jpg

图7-108 OB1中FB1模块运行

978-7-111-51420-6-Chapter07-130.jpg

图7-109 DB1数据表在线监控值

从图7-109中还可以看出,除了临时变量不出现在背景数据块中,其他声明的变量都要在背景数据块中的数据结构中声明。对于初值(Initial Value),用户可以在功能块的变量声明中输入;如果没有输入,则软件给出默认值;当数据块第一次存盘时若用户没有明确地声明实际值,则初值将被用于实际值。

如图7-110所示,OB1的网络2为改变DB1数据块中的静态变量值。当M0.1=1时,将实数2.0传送给DB1.DBD8,从图7-109可见,DB1.DBD8是静态变量A的地址;同理,将实数20.0传送给静态变量B,其在DB1数据块中的地址是DB1.DBD12。观察网络1的DB1背景数据块所在FB1的在线监控值,可见Y=410.0,与实际计算公式MD2=2*X2+20*X+C=2*102+20*10+10=410计算结果相一致。

978-7-111-51420-6-Chapter07-131.jpg

图7-110 修改系数后OB1中FB1模块运行

由于DB2数据块静态变量并未改变,因此其功能块运行结果MD6=Y=X2+X+10=22+2+10=16,与在线监控结果保持一致。

DB1数据块变量修改后的运行状态如图7-111所示,当系统停止运行时,数据块中保持所有数据状态。

978-7-111-51420-6-Chapter07-132.jpg

图7-111 修改后的DB1数据监控

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈