13 结构化的编程.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
13 结构化的编程

* 调用 在 LAD/FBD方式下, 可以从“Program Elements” 浏览器中选择要调用的块。块的参数端上显示为问号 (??.?) ,应在此处输入实际参数。 说明 调用分配了参数的 FC 块时,必须输入所有的参数 ( EN和ENO除外)。 * 标准FC 标准FC 执行时将遵循下列规则: ? 如果EN=0, 块不被执行且ENO=0。 ? 如果EN=1, 块被执行,执行过程中如果不出现错误则ENO=1,如果出现错误 ENO=0。 用户FC 当用LAD/FBD调用块时,EN和ENO参数也被加在块上,这样可根据RLO来调用该块。 在STL 中,没有EN/ENO参数。可以用跳转指令来仿效它们。 无论采用何种语言,必须编写程序来检查错误。 互相连接 在LAD/FBD中,几个功能方框可通过EN / ENO参数串联在一起使用 * 要求 将故障显示程序用分配了参数的块来编写。变量声明表和程序的开头部分已在幻灯片中给出。 步骤 ? 在S7 程序“My Program”中插入FC 20 ? 在FC 20 中编写程序 ? 保存FC 20 * 要求 在OB 1中用不同的参数两次调用FC 20,并测试该程序。 步骤 ? 在S7程序“My Program”的OB 1中插入两个程序段 ? 按幻灯片所示,两次调用FC 20 ? 下装FC20和OB 1 ? 调试程序 说明: 在硬件组态时,将MB10定义为时钟存储字节。然后下装硬件组态,使M10.3 闪烁。 * FB块的特点 与FC块不同,FB块 (Function Blocks) 带有一个存储区。也就是说,有一个局部数据块被分配给FB块,这个数据块被称为背景数据块(instance data block )。 当调用FB时,必须指定背景数据块的号码, 该数据块会自动打开。 背景数据块可以保存静态变量,所以静态变量只能用于FB块中,并在其变量声明表中定义。当块退出时,它们仍然保持。 保存参数 当FB块被调用时,实际参数的值被存储在它的背景数据块中。 如果在块调用时,没有实际参数分配给形式参数,在程序执行中将采用上一次存储在背景数据块中的参数值。 每次调用FB时可以指定不同的实际参数。当块退出时,背景数据块中的数据仍然保持。 FB 的优点 ? 当编写FC的程序时,用户必须寻找空的标志区或数据区来存储需保持的数据, 并且要自己编写程序来保存它们。而FB的静态变量可由STEP 7的软件来自 动保存。 ? 使用静态变量可避免两次分配同一存储区的危险。 ? 如果用FB块实现FC20的功能, 并用静态变量“Report memory”和“Edge memory marker”来代替原来的形式参数,将可省略两个形式参数,简化了块 的调用。 * 故障信息显示 在前面的练习中,我们编写了一个分配了参数的块FC 20来显示故障信息。 用FB块实现该功能时,采用静态变量来替代FC 20 中用来保存信息和检测边沿的标志位,这些静态变量存储在该FB的背景数据块中。 背景数据块的结构 当参照一个FB 生成一个数据块时,STEP7将参照该FB的变量声明表生成数据块的结构。 数据块保存之后,将生成一个背景数据块。 * 如何生成背景数据块 生成一个新的背景数据块有两种方法: ? 在调用FB时,为它指定一个背景数据块后, 如果该数据块并不存在,则弹出以 下提示信息: “Instance data block DB x does not exist. Do you want to generate it?”. 单击“Yes”按钮可自动生成一个新的背景数据块。 ? 创建一个新的数据块时,选择其属性为 “Data block referencing a function block”。 注意 一个背景数据块只能归属于一个FB块,而一个FB块在每次调用时可以使用不同的背景数据块。 FB块被修改后 (添加参数或静态变量), 必须重新生成背景数据块。 * 多重背景模型 到目前为止,每次调用一个FB块时都使用不同的背景数据块。 由于数据块的数量有限,所以在此介绍一种方法,允许多次FB调用都使用同一个背景数据块。多重背景模型允许多次FB调用都使用同一个背景数据块,为此需增加一个FB块用来管理背景数据。 针对每次的FB调用 (FB 20), 要先在上层的FB块 (FB 100) 中定义一个静态变量,用来存储这一次调用时的背景数据。这样用符号名调用该块时(Call Dist_1) ,就不须为其指定背景数据块了。 上层的FB (FB 100) 被调用时(例如,在OB1中调用它),将只生成一个公用的背景数据块 (DB

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档