- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6块调用和多重背景模型
块调用与多重背景模型 用于结构化编程的块 整个任务的 模块化: 单个任务在各自块中 予以解决 参数分配法使得 使用更加灵活 示例:钻孔循环程序的钻孔深度为可分配参数 块的可再利用性能: 块可以按需要随时 加以调用 限制因素: 不允许访问 全局地址空间 只能通过参数列表 进行通信 STEP 7 块概述 功能及功能块中的参数声明 参数是信息传递的通道 输入参数:Caller - Block 输出参数: Block - Caller 输入/输出参数: Caller - Block 参数形成了块的一个“shell”: 参数位于代码段 与“局部”变量类似 参数可以为任何数据类型 在调用期间进行数据类型检查 例外情况:POINTER,ANY 调用接口与编程语言无关 PLC编程语言可以混合使用 功能的属性 参数可分配的块: 具有足够多的输入,输出,输入/输出参数 无存储区,也即只有临时变量 IEC 61131-3标准一致性要求: 足够多的输入参数 仅有一个输出参数RET_VAL 不允许访问全局变量和绝对地址 使用同一输入参数提供相同的结果 扩展了处理器的指令集 基本数据类型传送机理 基本类型实际参数位于于: 位存储地址区域 过程映像 调用的局部堆栈 复杂数据类型的功能调用 示例:向功能传递一个ARRAY 调用(主调)功能的特点 CALL指令 指令为宏指令 寄存器内容可能会被覆盖掉,甚至是DB寄存器 请注意B堆栈中内容的解释 调用之后,可能会打开另一个DB CALL指令的处理时间取决于实际参数的数目和存储单元位置 CALL指令确保了块参数被正确地赋予当前数据 示例: CALL FC10On_1 := I 0.1On_2 := I 0.2Off := Q8.0 调用指令UC和CC 不依赖于RLO的块调用(UC)或取决于RLO的块调用 示例:UC FC20或CC FC20 当FC没有参数的时候,才可使用这些指令 功能块的属性 属于可分配参数的块: IEC 61131-3标准一致性块 有足够满足需要的输入,输出,输入/输出参数 有存储区域,即不仅有临时变量而且还有静态变量 使用本身数据区域进行调用(创建背景) “数据封装” 应用: 定时器和计数器功能 使用内部状态控制过程设备 锅炉 电机,阀,等等。 构建功能块实例 在一个FB调用过程中的参数传递 使用复杂数据类型的FB调用过程 示例:将一个ARRAY传送到一个功能块 功能块调用的特性 “按值” 传递参数(复制数值): CALL过程中FB参数的赋值: 无需为某些FB参数赋值 可以从“外部” 进行赋值和取消赋值 例如:直接通过操作面板进行 例外:复杂数据类型的输入/输出参数(STRUCT,ARRAY,STRING以及 DATE_AND_TIME) 初始化: FB参数可以在声明部分进行初始化 例外:复杂数据类型的输入/输出参数(STRUCT,ARRAY,STRING以及 DATE_AND_TIME) 使用DI和AR2寄存器在内部访问形式参数 如果DI或者AR2寄存器被覆盖,将不再允许访问背景数据。 附加调用指令UC和CC 示例:UC FB20或者CC FB20 只有当FB没有背景数据时才能使用(参数+静态变量) 练习6:罐装生产线中的传送带模型 练习6.1a: 罐装生产线 – 工作模式选择 练习6.1b:罐装生产线 – 传送带 多重背景模型的结构 使用多重背景模型实现面向对象的编程 示例:冲压生产线 用STEP 7来实现一个“冲压生产线” 多重背景模型的属性 多重背景模型的优点: 多个实例只需要 一个 DB 在为各个实例创建“private” 数据区时,无需任何额外的管理工作 多重背景模型使得“面向对象的编程风格”成为可能(通过“集合”的方式实现可重用性) 最大嵌套深度为8级 FB的必备条件: 在FB内不允许直接访问过程信号(I,Q) 只有使用FB参数访问过程信号,或者与其它过程单元进行通讯 FB只能使用静态变量来记忆其过程状态,而不使用全局DB或者位存储器。 注意事项: 背景数据还可以从“外部”进行访问 例如在OB1中: L Press line.Press_2.Punch.VarName 练习 6.2:生产线中的传送带模型 工位的处理顺序 工件的处理 成形处理 向传送带上放置工件 等待原材料工件 从传送带中取原材料工件 练习 6.2a:一个工作站的程序结构 FB1 “Station” 的工作原理 FB2 “Transport”的工作原理 练习6.2b:扩展到3
文档评论(0)