西门子step7不能生成多重背景的原因图解

作者:老电工时间:2015-12-02 08:22:20

西门子step7不能生成多重背景的原因

有时需要多次调用某些功能块,每次调用都需要生成一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块“碎片”。

在用户程序中使用多重背景可以减少背景数据块的数量。

S7-1200的定时器和计数器都是功能块,使用它们时也需要指定背景数据块。S7-1200也能使用多重背景。

《S7-300/400  plc应用技术》的“发动机控制”例程中,用FB1控制汽油机和柴油机,分别使用了背景数据块DB1和DB2。

在例程“多重背景”的FB10的变量声明表中声明数据类型为FB 1的两个静态变量,它们就是所谓的多重背景。

它们具有FB1的全部属性,包括程序和局部变量,它们的数据存储在FB10的背景数据块DB10中。

因此,使用多重背景可将多次调用FB1的背景数据存放在FB10的背景数据块中。

有个读者在学习多重背景时:“我按书中做的例子中,就是汽油机和柴油机控制的例子,在FB10中定义静态变量时,变量的数据类型为FB1,定义后变为它的符号“发动机控制”,为什么这几个字是红色的??” 他同时把有问题的项目文件发给我。

图1:
西门子step7不能生成多重背景

打开他发来的项目,发现FB10的属性有问题。

回答:“这几个字为红色表示定义的这个静态变量有问题。在管理器里用右键点击FB10,执行出现的快捷菜单中的“属性”命令,在“属性”对话框可以看到“无多实例能力”(无多重背景功能)。”

图2:
西门子step7不能生成多重背景

为解决此问题,在生成FB10的时候一定要选中“多重背景功能”多选框。

图3:
西门子step7不能生成多重背景

用邮件把上述回答发给了他,他来邮件说按我的建议重新生成有多重背景功能的FB10后,还是不能生成数据类型为FB1的静态变量。他把修改后的项目发给了我。

经检查发现他生成的FB1也没有多重背景功能,问题可能就出在这里。重新生成有多重背景功能的FB1后,就可以在FB10中生成数据类型为FB1的多重背景了。

结论:为了使用多重背景,有关的功能块(FB1和FB10)都必须设置为有多重背景功能!

因为做得很顺利,没有发现这个规则。“失败是成功之母”,经验是在遇到问题和解决问题的过程中积累起来的,这是成为高手的必由之路,但是还必须善于总结经验教训,不然下一次又会犯同样的错误。

最后介绍一个STEP7帮助提供的诀窍:

如果没有创建具有多重背景功能的功能块,而又希望该功能块具有这种属性,可以根据功能块生成一个源文件,随后删除其中的块属性CODE_VERSION1,重新对功能块进行编译,该功能块就有多重背景功能了。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 西门子plc