当功能块FB1在组织块中被调用时,使用了与FB1相关联的背景数据块。这样FB1有几次调用,就必须配套相应数量的背景数据块。当FB1的调用次数较多时,就会占用更多的数据块。使用多重背景数据块可以有效地减少数据块的数量,其编程思路是创建一个比FB1级别更高的功能块,如FB10,对于FB1的每一次调用,都将数据存储在FB10的背景数据块中。这样就不需要为FB1分配任何背景数据块。
下面以发动机组控制系统为例,介绍如何编辑和使用多重背景数据块。
例 发动机组控制系统设计——使用多重背景
设某发动机组由1台汽油发动机和1台柴油发动机组成,现要求用plc控制发动机组,使各台发动机的转速稳定在设定的速度上,并控制散热风扇的启动和延时关闭。每台发动机均设置一个启动按钮和一个停止按钮。
项目的编程步骤如下:
(1)创建S7项目。使用菜单“文件”à“新建工程”向导创建发动机组 控制系统的S7项目,并命名为“多重背景”。CPU选择CPU 315- 2DP,项目包含组织块OB1。
(2)硬件配置。在“多重背景”项目内打开“SIMATIC 300(1)”文件夹,打开硬件配置窗口,并按图1完成硬件配置。
图1 硬件配置
(3)编辑如图2所示的符号表。
(4) 规划程序结构。程序结构规划如图3所示。FB10为上层功能块,它 把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽 油机和柴油机的控制。这种调用不占用数据块DB1和DB2,它将每次调用(对于每个调用实例)的数据存储到体系的上层功能块FB10的背景数据块DB10中。
(5)编辑功能(FC)。FC1用来实现发动机(汽油机或柴油机)的风扇控制,按照控制要求,当发动机启动时,风扇应立即启动;当发动机停止后,风扇应延时关闭。因此FC1需要一个发动机启动信号、一个风扇控制信号和一个延时定时器。