西门子300创建fb.doc

上传人:cl****1 文档编号:563002942 上传时间:2022-11-22 格式:DOC 页数:40 大小:938.01KB
返回 下载 相关 举报
西门子300创建fb.doc_第1页
第1页 / 共40页
西门子300创建fb.doc_第2页
第2页 / 共40页
西门子300创建fb.doc_第3页
第3页 / 共40页
西门子300创建fb.doc_第4页
第4页 / 共40页
西门子300创建fb.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《西门子300创建fb.doc》由会员分享,可在线阅读,更多相关《西门子300创建fb.doc(40页珍藏版)》请在金锄头文库上搜索。

1、西门子S7-300 中FB功能块的使用方法:1.创建功能块FB1 准备完成如下功能:将“整型”变量转换成“实型”变量 2.打开功能块FB1 3.在功能块FB1中添加入口参数、出口参数、静态变量 入口参数IN0-整型(INT) 出口参数OUT1-实型(REAL) 静态变量STAT2-整型(INT) 局部变量TEMP3-长整型(DINT) 4.创建背景数据块DB2 5.打开DB2背景数据块,可以看到系统默认建立了三个数据 IN0-入口参数(整型) OUT1-出口参数(实型) STAT2-静态变量(整型) 6.打开FB1功能块,编写如下代码,实现将“整型”变量转换成“实型”变量 同时再编写一段静态变

2、量自加1代码 7.打开OB1主程序,添加FB1功能块 如何确定程序参数类型的块编号并传送给 FC ?介绍使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER)的编号。 例1 :FB 块FB1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在 FB2 中调用 FB1,将定时器“T5”传递给变量“ Time_1”。如图 01 所示程序代码中数值 5 表示“T5”。 图.01 例 2 FCFC1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在 FC2 中调用 FC1,将定时器“T8”传递给变量“ Time_

3、1”。如图 02 所示程序代码中数值 8 表示“T8”。 图. 02 在使用多重实例时,需要在图 01 所示程序中增加以下代码: TAR2 /多重实例偏移地址LAR1 P#Time_1+AR1 /多重实例偏移地址与当前地址相加L WAR1,P#0.0T MW00 “BLOCK_DB”类型参数在调用 FC 时不可以直接传送给 FC 。如果在调用功能时试图使用此参数类型,将产生如下的错误消息: “非法的参数传输” “BLOCK_DB”类型参数仅在 FB 被调用(从一个 FB 或 FC 中)时可被传送。 “BLOCK_DB”类型参数不可以在 FC 被调用(从一个 FB 或 FC 中)时可被传送。相关

4、详细信息可参考 STEP7 在线帮助中“合法的传输参数类型”。 然而,如果希望将 BLOCK_DB 参数类型传送给 FC, DB 块的编号可以通过基本数据类型(例如 WORD)传送。 在下面的例子中,FB100 拥有一个“BLOCK_DB” 的输入参数类型。为了在调用 FC101 时将参数传送给它,“BLOCK_DB”中的 DB 块编号被传送给 WORD 临时变量(DB_No)。当 FC 被调用,数据块序号以一个 WORD 参数类型替代 BLOCK_DB 参数类型。 图. 03 如果 FB 的接口参数能被定义成 WORD 参数类型来传送 DB 块编号,当 FC 被调用时,此参数可以被直接传送给

5、 FC。 如何生成和更新多重背景?隐藏订货号显示订货号订货号: 说明: 如果在结构化编程时经常使用功能块,那么在每次调用 FB 时都要为其指定一个单独的背景数据块。对于非常小的FB, 它的背景数据块经常由很少的几个字组成。当频繁调用和指定背景数据块给这些小的 FB 时,程序会变得非常不清晰,或者 DB 块的数量会达到 CPU 所支持的最大数量。 由于一个背景数据块可以长于 FB 实际需要的长度,因此多个背景数据块可以合并成一个多重背景。但是,这种合并必须在一个 FB 中通过编程完成。 1. 表1:编程多重背景和更新修改过的背景 2. 表2: 对已经存在的 FB 多重背景能力的后续声明表1:编程

6、多重背景和更新修改过的背景 步骤过程:1在 SIMATIC Manager 中,打开你希望生成多重背景的 FB。在静态变量定义部分,输入多重背景的名字,数据类型为 FB 或 SFB。 图 12在程序中调用多重背景,可以在多重背景中的目录中选择托拽它到 NETWORK 中,也可以用 CALL 指令调用它。 图 2 在STEP 7 V5.4 SP2 中请注意: 如果在LAD/FBD编辑器的目录视图中多重背景未被列出,推荐在静态变量声明中先插入一个功能块,然后再删除它。这样多重背景就再次可以被选择。3现在设置程序块的输入和输出并保存。就可以在程序(例如 OB1)中使用多重背景来调用 FB。创建一个背

7、景数据块以供监控。 注意:当生成多重背景时,如其在 FB 中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。如果不遵从这个顺序,程序中将会出现不一致的情况,这种不一致的情况也有可能在修改多重背景后出现。4一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出现一个消息显示在 FB 接口声明中有一个 UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调用在 LAD/STL/FBD 编辑器中将会以亮红色显示。 为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call.”。 图 35在后续

8、的对话框中,点击 OK 来执行接口更新。 图 4 在STEP 7 V5.3中的注意事项: 当尝试通过“File Check and Update Accesses”来更新程序块调用时,STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“Edit Call Update”改正调用错误。更新调用的唯一办法是删除调用,在声明中更新接口,然后再以多重背景方式调用功能块。如果已经删除了 FB 接口中的变量,应该通过“Edit Call Update”来改正所有的多重背景调用,而不需使用前面的“Check and Update Accesses”功能。一旦已经更新了这些多重背景

9、,就又可以与平时一样使用“Check and Update Accesses”功能了。6推荐在更新功能块调用后进行一致性检查。在 SIMATIC Manager 中,右击 S7 program 文件夹,选择“Check block consistency.”功能,系统会显示S7程序的结构。 通过工具栏中的第二个按钮或者“Program Compile All”功能编译程序。在编译后,STEP 7程序一致性将统一。 图 5当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图6)。也可以改变此设置: 图 6 一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景的属性只

10、可以显示,除非按照一个冗长的过程来修改它。 表 2描述了如何声明一个已经生成的 FB 是否具有多重背景的能力: 步骤过程:1为了声明一个已经生成的 FB 是否具有多重背景的能力,打开 LAD/STD/FBD 编辑器,通过“File Generate source.”在对话框中生成一个 FB 的源文件。在后续的对话框中选择项目并存储源文件到 S7 程序的源文件目录。2在“Generate source ”对话框中(图),在左边列表中选择你希望使能或取消多重背景能力的功能块,然后点击箭头将其添加到右边的列表中。点击“OK”关闭对话框。 图 73关闭 LAD/FBD/STL 编辑器,打开在 SIMA

11、TIC Manager 生成的源文件。多重背景的能力依赖于在“Version : 0.1”后面输入的代码。 图 8 如果希望 FB 具备多重背景的能力,删除“CODE_VERSION1”属性。 如果希望 FB 不具备多重背景的能力,按照图8中添加“CODE_VERSION1”属性。保存并编译源文件,现在功能块即被使能或取消了多重背景的能力。4在使能或取消了多重背景能力之后,现在不得不重新编译所有的在 FB ,为了这个工作,我们推荐执行一致性检查(见表 1,步骤 6)数据块初始值与实际值的含义隐藏订货号显示订货号订货号: 描述在数据块的变量声明表中可以定义变量的名称、数据类型、注释和变量初始值。

12、初始值为纯粹的组态值,当由UDT生成数据块或在全局数据块中生成新变量时,组态的初始值被用作为实际值。可以通过菜单命令 “View Data view” 来查看实际值。 初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为一次。如果变量已经存在,实际值将不会随着初始值的变化而发生改变。对于CPU来说,操作的数值为实际值,初始值虽也可以下载到CPU中并可在线监控,但不会被CPU采用。 有以下两种方法可以将初始值传送给 CPU 作为实际值: 1. 切换到数据浏览状态 “View Data view”,在“Actual value” 栏输入新的初始值。 2. 进入声明浏览状态 “View De

13、claration view ”,在“Actual value” 栏输入新的初始值;然后,切换到“Data view” 状态,执行菜单命令 “Edit Initialize Data Block”将所有“Intial value”栏的数值传送至“Actual value”栏。然后将数据块下载至CPU中。 由于初始值仅使用一次,因而没有必要将实际值装载至初始值, 如装载“Actual value”栏到“Initial value”栏。 STEP 7 中没有与之相关的菜单命令。 但是一些特殊应用需要将实际值保存为初始值。这一过程可通过 STL 源文件或 Excel 来实现,以下将分别介绍其操作步骤

14、。 在STL 源文件中,将数据块的实际值直接保存为初始值当生成 STL 源文件后,实际值可以逐行拷贝至 STL 源程序中的声明语句中。 No.步骤1在 SIMATIC Manager选择菜单指令 View Online,在线打开要执行操作的数据块。选择菜单命令“File Save” 或点击软盘图标保存该数据块。2通过菜单命令“File Generate Source.”生成此数据块的源文件。3打开生成的源文件,该文件位于 SIMATIC Manager 的 Source 文件夹。4在 STL 源文件中,将位于“BEGIN”和 “END_DATA_BLOCK”语句之间的实际值逐行复制到相应的声明行(初始值)及相应的数据类型之中。 图01 如图 01 所示,通配符“:=”也必须和实际值一起复制到初始值的声明行。以下是声明行定义的一个示例: Data_1 : BYTE := B#16#AA;5保存编译 STL 源程序 File Save File Compile此时,实际值被用作初始值使用 Excel 将数据块的实际值保存为初始值(便利方法)数据块的实际值也

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号