(感谢家的喜欢和赞赏,如文章引起大家共鸣,请“点赞”以及“推荐”,谢谢大家!)

任务导读

在西门子 PLC 编程中,FB(功能块)多重背景是解决重复控制需求、优化程序架构的核心技术。传统调用 FB 时,每个实例需单独分配背景数据块,不仅会产生大量冗余数据占用内存,还会导致后续维护陷入 “牵一发而动全身” 的困境 —— 修改一处逻辑,就得逐个调整所有关联实例。


而 FB 多重背景彻底改变了这一模式:它允许多个 “子 FB 实例” 共享同一个 “父 FB” 的背景数据块,无需重复创建实例与数据块。其核心价值在于三点:一是精简内存,大幅减少冗余数据占用,提升 PLC 运行效率;二是简化维护,仅需修改父 FB 的核心逻辑,所有子实例自动同步更新,规避人为修改误差;三是推动标准化,面对多台同类设备(如多条生产线的电机、阀门),可快速复用 FB 框架,缩短开发周期,让程序结构更清晰易读。对自动化工程师而言,它既是降本提效的工具,也是保障项目稳定性的关键。

01

任务布置

任务要求:有两台电动机,编写程序分别控制电动机的启停,并设置电动机的运行累计时间,当时间达到后电动机停止运行,要求使用多重背景进行程序编写。

02


任务知识储备

在这个任务中,要求用“多重背景”来实现两台电机运行

1.多重背景的概念
当程序有多个函数块时,为每一个函数块均配置一个背景数据块,程序中需要使用较多的背景数据块,影响程序的执行效率。
当函数块(FB1)调用另外一个函数块(FB2)时,将被调用的 FB2 背景数据块以 Static 变量的形式存储在调用 FB1的背景数据块中,这种块的调用称为多重背景
使用多重背景可以将多个函数块共用一个背景数据块,减少背景数据块的数量,提高程序执行效率。

2.多重背景的结构

下图所示为一个多重背景的结构实例。

函数块 FB1 和 FB2 共用一个背景数据块DB1,增加了一个函数块 FB10 来调用作为“局部背景”的 FB1和FB2,相应的 FB1 和 FB2的背景数据块放在 FB10 的背景数据块 DB1 中,如不使用多重背景,则 FBI 和 FB2 调用多少次将需要多少个背景数据块,使用多重背景后只需要一个背景数据块。

03


任务实施

西门子PLC中FB多重背景的典型应用:多台电机运行监控

1.设计硬件电路接线图

2.输入输出接口分配

3.PLC 硬件组态

打开 TIA Portal 软件,打开项目视图,单击“新建项目按钮,新建一个项目,并命名为“函数块FB多重背景应用”。

双击“添加新设备”,添加 PC 为 CPU 1215C DC/DC/DC ,订货号为6ES7 215-1AG40-0XB0,版本号4.5 应与实际的PLC一致。

4.编写PLC程序

在博途软件项目视图的项目树中,双击“添加新块”,在弹出的窗口中先单击选择“函数块”,单击确定打开新建的FB1及FB2。在新建的FB1接口添加参数,如下图所示。

在 FB1 中编写如图所示程序。


程序段1,按下启动按钮“#Start”接通,“#Motor’得电接通,并自锁;

程序段2,当“#Motor”接通开始计时,累计计时达到“#ST”设定值后,定时器常闭触点断开,“#Motor”失电断开。

注:在 FB1 中使用 IEC 定时器 TONR 分配背景数据块时,选择多重实例,并在接口参数中的名称处选择已经建立的数据类型为IEC TIMER 的 Static 变量“Timer1”,如下图所示。


在 FB2 中添加接口参数如下图所示

其中 Static 变量在添加时在数据类型选择的下拉列表中选择“块 1”生成多重背景数据,展开后的 Static 变量如图所示。


在 FB2中两次调用 FB1,拖曳 FB1 时在弹出的调用选择对话框中选择多重实例,并选择已建立的FB2 的 Static 变量“#Motorl Control”和“#Motor2 Control”作为背景数据块。

FB2 调用FB1的程序如下图所示。

在 OB1中调用 FB2,并分配接口参数如下图所示。


1

END

1