有的项目需要调用很多功能块,有的功能块(例如IEC定时器、IEC计数器)可能被多次调用。每次调用都需要生成一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块“碎片”。在用户程序中使用多重背景可以减少背景数据块的数量。
例程“多重背景”(见随书光盘中的同名例程)与例程“发动机控制”的控制要求相同,两个例程中的FB1和FC1亦相同。原来用FB1控制汽油机和柴油机时,在OB1中调用了两次FB1,分别使用了背景数据块DB1和DB2。
使用多重背景时,需要增加一个功能块(本例为FB10)来调用两次作为“多重背景”的FB1(见图4-17)。调用时不需要给FB1分配背景数据块,两次调用FB1的背景数据存储在FB10的背景数据块DB10中。但是需要在FB10的变量声明表中声明数据类型为FB1的两个静态数据变量(STAT)。
图4-17 多重背景的程序结构
1.多重背景功能块
生成FB10时,首先应生成FB1。生成FB1和多重背景功能块FB10时,都应采用默认的设置,激活功能块属性对话框中的复选框“多重背景功能”。
实现多重背景的关键,是在FB10的变量声明表中(见图4-18),声明两个静态变量(STAT)“Petrol_Engine”(汽油发动机)和“Diesel_Engine”(柴油发动机),其数据类型为FB1(符号名为“发动机控制”)。变量声明表的文件夹“Petrol_Engine”和“Diesel_Engine”中的6个变量来自FB1的变量声明表,它们是自动生成的,不是用户在FB10中输入的。
图4-18 FB10的变量申明表(www.xing528.com)
2.调用多重背景和多重背景功能块
生成静态变量“Petrol_Engine”和“Diesel_Engine”后,它们将出现在程序编辑器左边窗口的“多重背景”文件夹中(见图4-18)。将它们“拖放”到FB10的程序区(见图4-19),然后指定它们的输入参数和输出参数。项目“发动机控制”中OB1对FB1的两次调用,被图4-20中OB1对FB10的调用代替。OB1中调用FC1的程序与图4-12中的相同。
图4-19 FB10的程序
图4-20 OB1调用FB10
FB10的背景数据块DB10见图4-21,多重背景的局部变量的名称由多重背景的名称和FB1的局部变量的名称组成,例如“Petrol_Engine.Start”。
图4-21 多重背景数据块DB10的数据视图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。