工控智汇

工控智汇

STEP7中如何生成和更新多重背景?

admin 59 196

说明:

如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。对于非常小的FB,它的背景数据块经常由很少的几个字组成。当频繁调用和指定背景数据块给这些小的FB时,程序会变得非常不清晰,或者DB块的数量会达到CPU所支持的最大数量。

由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。但是,这种合并必须在一个FB中通过编程完成。

一、编程多重背景和更新修改过的背景:

1、在SIMATICManager中,打开你希望生成多重背景的FB。在静态变量定义部分,输入多重背景的名字,数据类型为FB或SFB。


2、在程序中调用多重背景,可以在多重背景中的目录中选择托拽它到NETWORK中,也可以用CALL指令调用它。


3、现在设置程序块的输入和输出并保存。就可以在程序(例如OB1)中使用多重背景来调用FB。创建一个背景数据块以供监控。

注意:

当生成多重背景时,如其在FB中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。如果不遵从这个顺序,程序中将会出现不一致的情况,这种不一致的情况也有可能在修改多重背景后出现。

4、一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出现一个消息显示在FB接口声明中有一个UDT或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调用在LAD/STL/FBD编辑器中将会以亮红色显示。

为了更新功能块调用,右击功能块,然后在弹出菜单中选择“UpdateBlockCall”。



在中的注意事项:

当尝试通过“FileCheckandUpdateAccesses”来更新程序块调用时,不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“EditCallUpdate”改正调用错误。更新调用的唯一办法是删除调用,在声明中更新接口,然后再以多重背景方式调用功能块。如果已经删除了FB接口中的变量,应该通过“EditCallUpdate”来改正所有的多重背景调用,而不需使用前面的“CheckandUpdateAccesses”功能。一旦已经更新了这些多重背景,就又可以与平时一样使用“CheckandUpdateAccesses”功能了。

6、推荐在更新功能块调用后进行一致性检查。在SIMATICManager中,右击S7program文件夹,选择“Checkblockconsistency”功能,系统会显示S7程序的结构。

通过工具栏中的第二个按钮或者“ProgramCompileAll”功能编译程序。在编译后,STEP7程序一致性将统一。


当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图6)。也可以改变此设置:


一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景的属性只可以显示,除非按照一个冗长的过程来修改它。

二、如何声明一个已经生成的FB是否具有多重背景的能力:

1、为了声明一个已经生成的FB是否具有多重背景的能力,打开LAD/STD/FBD编辑器,通过“FileGeneratesource”在对话框中生成一个FB的源文件。在后续的对话框中选择项目并存储源文件到S7程序的源文件目录。


3、关闭LAD/FBD/STL编辑器,打开在SIMATICManager生成的源文件。多重背景的能力依赖于在“Version:0.1”后面输入的代码。

如果希望FB具备多重背景的能力,删除“CODE_VERSION1”属性。

如果希望FB不具备多重背景的能力,按照图8中添加“CODE_VERSION1”属性。

保存并编译源文件,现在功能块即被使能或取消了多重背景的能力。

4。在使能或取消了多重背景能力之后,现在不得不重新编译所有的在FB,为了这个工作,我们推荐执行一致性检查。