S7-300多重背景调用实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多重背景数据块

如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。对于非常小的FB,它的背景数据块经常由很少的几个字组成,则会浪费大量没有使用的背景数据块空间。当频繁调用和指定背景数据块给这些小的FB时,程序会变得非常不清晰,或者DB块的数量会达到CPU 所支持的最大数量。由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。但是,这种合并必须在一个FB中通过编程完成。多重背景调用等同于FC的调用,在多重背景下调用的参数填写一定不能空着,必须有实际地址,否则用DB10的数据程序会混乱

具体步骤:

1.先建立一个FB1。符号名:三数相加。完成内容a*b*c=outcome

定义形式参数

IN:a, b, c

OUT:outcome

temp:temp_out

2.在SIMATIC Manager 中,打开你希望生成多重背景的FB2。在静态变量STAT定义

部分,输入多重背景的名字,数据类型为FB,选择后要注意改成FB1。然后将左侧多重背景的数据模块拖入编程框内。

3.建立FB2的多重背景数据块

4.在主程序OB1里调用FB2

5.如果需要可以在主程序里用mov指令给相应的变量例如DB1.DBW2等赋值,或直接在DB2数据库里改变当前值。

6.仿真运行

多重背景刷新补充内容

7.一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出现一个消

息显示在FB 接口声明中有一个UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调用在LAD/STL/FBD 编辑器中将会以亮红色显示。为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。

8. 在后续的对话框中,点击OK 来执行接口更新

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

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

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

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

相关文档
最新文档