说明:

如果在结构化编程时经常使用功能块,那么在每次调用 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 ”对话框中(图7),在左边列表中选择你希望使能或取消多重背景能力的功能块,然后点击箭头将其添加到右边的列表中。点击“OK”关闭对话框。

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

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

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

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

博图中fb与多重背景数据块_STEP7中如何生成和更新多重背景?相关推荐

  1. 西门子300 PLC 功能块及背景数据块的说明

    S i e me n s   S T E P ' / 语言是 S i e me n s   s 7-3 0 0 . 4 0 0系列 P L C程序设计语言.s 7系列 P L C  是 S 5系列 P ...

  2. 博途软件中多重背景块的建立_怎么理解多重背景数据块?

    拿电机说把,如果有4台电机,你不用多重背景,那就要建立4个DB块,如果用多重背景变成,公用一个DB块就好了.多重背景就是让你少建立DB块的. 回答者: 大来 - 毕业实践员&nbsp& ...

  3. 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍

    西门子S7-300/400的PLC用户程序结构与S7-200有明显的不同,可以使用线性化结构以及功能调用式结构与结构化编程. 采用调用式结构与结构化编程时,程序以组织块(OB).程序块(FC).功能块 ...

  4. s7300的db块详细说明_S7300中FB、FC和DB块的使用

    用西门子PLC编程时,可以用到功能块FB和功能FC(FB.FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗? F ...

  5. c 批量导入mysql数据库_C#.NET中如何批量插入大量数据到数据库中

    在WEB项目开发过程中有时会碰到批量插入数据到数或者是将EXCEL文件据入到数据库中.为了方便实现可以先将EXCEL导入到GRIDVIEW中然后一次批量插入.实现代码如下: 前台代码 后台代码: // ...

  6. oracle form中实现隐藏,Oracle Form数据块实现同时只有一个人锁定修改数据

    在上一篇中文章中,如果建立了数据块的四个触发器,并在触发器中调用了程序单元中对应数据块名的包,则在这个包中还需调用专门用于实现插入行.锁定行.更新行.删除行的包MAIN_PVT.在这个包MAIN_PV ...

  7. 编程将外部RAM2000H--202FH单元中的内容,移入内部RAM20H--4FH中,并将原数据块区域清0.

    如题:编程将外部RAM2000H–202FH单元中的内容,移入内部RAM20H–4FH中,并将原数据块区域清0. 首先内部外部的数据转移指令是不同的: MOV: 单片机内部的寄存器或者存储器之间相互传 ...

  8. 西门子博图的FB块_西门子S7-1200,如何在FB块中使用操作定时器?|定时器|timer|延时|调用|plc...

    在上一篇文章介绍了S7-1200 PLC的定时器,以及介绍了S7-1200 PLC与S7-200/200 SMART PLC的定时器的分类的不同及区别. S7-1200 PLC的定时器一共有四种类型, ...

  9. Oracle中含有recover 状态的数据文件环境中,做异机恢复

    背景: 我们在一些恢复测试案例中,会经常遇到一些奇怪的问题,其中有的是源端数据文件不规范而导致恢复过程出错,比较常见的错误有: 数据文件名称重复(如:/oradata1/user01.dbf 和 /o ...

  10. 数据在计算机中编码方式教案,字符数据在计算机中的表示方法

    计算机中数据的概念是广义的,计算机除了处理各种数之外,还要处理大量符号,如英文字母.汉字等非数值的信息.例如,当要用计算机编写文章时,就需要将文章中的各种符号.英文字母.汉字等输入计算机,然后由计算机 ...

最新文章

  1. java中如何改方法签名_我们可以在Java重写中更改方法签名吗?
  2. python函数解释
  3. udhcp server端源码分析1--文件组织结构
  4. 机器学习之支持向量机
  5. Oracle学习(十四)分表分区
  6. 悲观锁和乐观锁和gap锁
  7. Could not resolve all dependencies for configuration ':app:_debugApk'
  8. php7.2 event扩展php_sockets_le_socket错误解决
  9. IT巨头互掐云存储:Dropbox能否一马当先
  10. 可怕的乖孩子_当今的中国,有句很可怕的话:所有的乖孩子注定不幸福!
  11. asp.net 二级域名表单认证情况下共享Cookie
  12. 提升自己身价的四个方式
  13. 三行代码,使用第三方网站统计访客数据
  14. 教你如何把M3U8转换成MP4丨NueXini M3U8 Downloader
  15. 机器学习常见求逆矩阵的方法
  16. UDF、UDAF、UDTF之间的区别
  17. LINUX设置DNS
  18. 好客租房 — 项目发布以及各种服务集群搭建
  19. 易经读书笔记15地山谦
  20. Gaea To Houdini

热门文章

  1. RedHat6使用centos6的yum源
  2. Mate7微信指纹支付来了 比Touch ID整合微信早一点
  3. linux recv返回值,Nginx 的recv() failed 错误解决一例
  4. php7安装详解、,php7安装详解(windows环境)
  5. java直白解释,关于java的static和final关键字的直白、简单解释
  6. python调用adb shell命令_python(或BAT脚本)自动执行adb shell以后的命令
  7. docker容器别人访问很卡_一篇文章带你走进Docker的世界
  8. winform窗体最大化、最小化、还原
  9. linux使用中的问题 --- (Another app is currently holding the yum lock; waiting for it to exit...)
  10. php 禁止转换,php实现十进制、三十六进制转换的函数