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

说明:

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

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

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

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

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

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

注意:

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

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

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

5、在后续的对话框中,点击 OK 来执行接口更新。

在STEP 7 V5.3中的注意事项:

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

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

通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。在编译后,STEP 7程序一致性将统一。

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

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

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

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

2、在“Generate source <name_block>”对话框中(图7),在左边列表中选择你希望使能或取消多重背景能力的功能块,然后点击箭头将其添加到右边的列表中。点击“OK”关闭对话框。

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

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

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

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

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();