块调用与多重背景模型.pdf_第1页
块调用与多重背景模型.pdf_第2页
块调用与多重背景模型.pdf_第3页
块调用与多重背景模型.pdf_第4页
块调用与多重背景模型.pdf_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Date:2010-12-13 File:PRO2_06E.1 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 块调用与多重背景模型块调用与多重背景模型 Date:2010-12-13 File:PRO2_06E.2 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 用于结构化编程的块用于结构化编程的块 整个任务的 模块化: 整个任务的 模块化: 单个任务在各自块中 予以解决 单个任务在各自块中 予以解决 参数分配法使得 使用更加灵活 参数分配法使得 使用更加灵活 示例:钻孔循环程序的钻孔深 度为可分配参数 块的可再利用性能:块的可再利用性能: 块可以按需要随时 加以调用 块可以按需要随时 加以调用 限制因素:限制因素: 不允许访问 全局地址空间 只能通过参数列表 进行通信 OB 1 电机电机1 电机电机1 FB1 阀 阀 阀阀 FB2 控制器 控制器 控制器控制器 FB10 FC 5 限制 阀 限制 阀 复制复制 SFC . . . . . CALL FB1, DB2 Start :=I 0.0 Stop :=I 0.1 Motor_on :=Q12.0 Speed :=QW14 . . FB 1 地址 声明 名称 类型 0.0 in Start BOOL 0.1 in Stop BOOL 2.0 out Motor_on BOOL 4.0 out Speed INT 6.0 stat Speed_old INT 0.0 temp Calc_1 INT . . . A #Start AN #Stop =#Motor_on . DB 2 OB 1 Date:2010-12-13 File:PRO2_06E.3 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives STEP 7 块概述块概述 属性属性 组织块(OB) - 用户程序接口 - 优先级(0到27) - 在局部数据堆栈中指定开始信息 块的类型块的类型 功能块(FB) - 参数可分配(可以在调用时分配参数) - 具有(收回)存储空间(静态变量) 功能(FC) - 参数可分配(必须在调用时分配参数) - 基本上没有存储空间(只有临时变量) 数据块(DB) - 结构化的局部数据存储(背景数据块DB) - 结构化的全局数据存储(在整个程序中有效) 系统功能块(SFB)- FB(具有存储空间),存储在CPU的操作系统中并可由用户调用 系统功能(SFC)- FB(无存储空间),存储在CPU的操作系统中并可由用户调用 系统数据块(SDB)- 用于配置数据和参数的数据块 Date:2010-12-13 File:PRO2_06E.4 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 功能及功能块中的参数声明功能及功能块中的参数声明 Motor EN ENO Start 地址 声明 名称 类型 初始化值 地址 声明 名称 类型 初始化值 . 0.0 输入 输入 Start BOOL FALSE 0.1 输入 输入 Stop BOOL TRUE 2.0 输入 输入 Speed INT 0 2.0 输出 输出 Motor_on BOOL FALSE 8.0 输出 输出 Setpoint INT 0 10.0 输入输入/输出 输出 EMER_OFF BOOL FALSE . 静态 静态 . . . . 临时 临时 . . . Setpoint EMER_OFF Motor_on Stop 输入 参数 输入 参数 输入输入/输出 参数 输出 参数 输出 参数 输出 参数 参数是信息传递的通道参数是信息传递的通道 输入参数: 输入参数: Caller - Block 输出参数: 输出参数: Block - Caller 输入输入/输出参数: 输出参数: Caller Block 参数形成了块的一个参数形成了块的一个“shell”: 参数位于代码段 与 参数位于代码段 与“局部局部”变量类似变量类似 参数可以为任何数据类型参数可以为任何数据类型 在调用期间进行数据类型检查 例外情况:POINTER,ANY 调用接口与编程语言无关调用接口与编程语言无关 PLC编程语言可以混合使用 Speed Date:2010-12-13 File:PRO2_06E.5 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 功能的属性功能的属性 参数可分配的块:参数可分配的块: 具有足够多的输入,输出,输入具有足够多的输入,输出,输入/输 出参数 输 出参数 无存储区,也即只有临时变量无存储区,也即只有临时变量 IEC 61131-3标准一致性要求:标准一致性要求: 足够多的输入参数足够多的输入参数 仅有一个输出参数仅有一个输出参数RET_VAL 不允许访问全局变量和绝对地址不允许访问全局变量和绝对地址 使用同一输入参数提供相同的结果使用同一输入参数提供相同的结果 扩展了处理器的指令集扩展了处理器的指令集 程序 执行 程序 执行 CALL FC 10 On_1 := I 0.1 On_2 := I 0.2 Off := Q8.0 功能功能FC10 输入 输入 On_1 BOOL 输入 输入 On_2 BOOL 输出 输出 Off BOOL . . A #On_1 A #On_2 = #Off . Date:2010-12-13 File:PRO2_06E.6 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 基本数据类型传送机理基本数据类型传送机理 OB1 功能功能FC10 程序 执行 程序 执行 CALL FC10 On_1 := I 0.1 On_2 := I 0.2 Off := Q8.0 输入 输入 On_1 BOOL 输入 输入 On_2 BOOL 输出 输出 Off BOOL . . A #On_1 A #On_2 = #Off . OB1 BLD 1 = L 20.0 UC FC 10 P#I 0.1 P#I 0.2 P#Q 8.0 BLD 2 1 0 0 1 0 0 1 0 . IB0 基本类型实际参数位于于:基本类型实际参数位于于: 位存储地址区域位存储地址区域 过程映像过程映像 调用的局部堆栈调用的局部堆栈 块参数实际参数块参数实际参数 形式参数形式参数 Date:2010-12-13 File:PRO2_06E.7 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 复杂数据类型的功能调用复杂数据类型的功能调用 示例:向功能传递一个示例:向功能传递一个ARRAY DB5 Temperature FC21 只能通过符号来进行参数的赋值只能通过符号来进行参数的赋值 Network(段) 1: 在功能FC21里,声明一个数组Mes_Val CALL FC 21 Mes_Val:=Temperature.sequence Date:2010-12-13 File:PRO2_06E.8 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 调用(主调)功能的特点调用(主调)功能的特点 CALL指令指令 指令为宏指令指令为宏指令 寄存器内容可能会被覆盖掉,甚至是DB寄存器 请注意B堆栈中内容的解释 调用之后,可能会打开另一个DB CALL指令的处理时间取决于实际参数的数目和存储单元位置 CALL指令确保了块参数被正确地赋予当前数据指令确保了块参数被正确地赋予当前数据 示例:示例: CALL FC10 On_1 := I 0.1 On_2 := I 0.2 Off := Q8.0 调用指令调用指令UC和和CC 不依赖于不依赖于RLO的块调用(的块调用(UC)或取决于)或取决于RLO的块调用的块调用 示例:UC FC20或CC FC20 当当FC没有参数的时候,才可使用这些指令没有参数的时候,才可使用这些指令 Date:2010-12-13 File:PRO2_06E.9 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives FB 5 输入 输入 Start BOOL 输入 输入 Stop BOOL 输出 输出 Motor_on BOOL 输出 输出 Speed INT 静态 静态 . 临时临时. . A #Start AN #Stop = #Motor_on . 功能块的属性功能块的属性 属于可分配参数的块:属于可分配参数的块: IEC 61131-3标准一致性块标准一致性块 有足够满足需要的输入,输出,输入 有足够满足需要的输入,输出,输入 /输出参数输出参数 有存储区域,即不仅有临时变量而且 还有静态变量 有存储区域,即不仅有临时变量而且 还有静态变量 使用本身数据区域进行调用 (创建背景) 使用本身数据区域进行调用 (创建背景) “数据封装数据封装” 应用:应用: 定时器和计数器功能定时器和计数器功能 使用内部状态控制过程设备使用内部状态控制过程设备 锅炉 电机,阀,等等。 CALL FB5, DB16 Start :=I 0.0 Stop :=I 0.1 Motor_on :=Q8.0 Speed :=QW12 0.0 Start BOOL 0.1 Stop BOOL 2.0 Motor_on BOOL 4.0 Speed INT DB 16 电机电机 Date:2010-12-13 File:PRO2_06E.10 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 构建构建功能块实例功能块实例 Drive_1 FBx + DBy Drive_1 状 态数据 控制算法状 态数据 控制算法 OB, FB或或FC CALL FBx, DBy . . 使用背景使用背景DB的的FB 调用调用 CALL #Motor_1 . CALL #Motor_2 DBx . stat Motor_1 FBx stat Motor_2 FBx Drive_2 状 态数据 状 态数据 Drive_3 状态 数据 状态 数据 FBx FB实例实例 控制算法控制算法 FB Drive_2 Drive_3 FB内的声明 (多 重背景) 内的声明 (多 重背景) Date:2010-12-13 File:PRO2_06E.11 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 在一个在一个FB调用过程中的参数传递调用过程中的参数传递 OB1 FB10 程序执行程序执行 CALL FB10, DB16 Start :=I 0.4 Stop :=I 0.0 Motor_on :=Q8.1 Speed: =QW12 0.0 in Start BOOL 0.1 in Stop BOOL 2.0 out Motor_on BOOL 4.0 out Speed INT . . A #Start AN #Stop = #Motor_on . BLD 3 = L 24.0 TDB OPN DI 16 TAR2 LD 20 AI0.4 =DIX0.0 AI0.0 =DIX0.1 LAR2 P#DBX 0.0 UC FB 10 LAR2 LD 20 A DIX 2.0 =Q8.1 LDIW 4 TQW12 TDB BLD 4 1 0 0 1 0 0 1 0 . IB01 0 0 1 0 0 1 0 QB8 DB16 . . . . . . 0 1 . . . . . . . . . . . . . . . 1 1 2 3 . . . 块参数实际参数块参数实际参数 形式参数形式参数 . . . Date:2010-12-13 File:PRO2_06E.12 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 使用复杂数据类型的使用复杂数据类型的FB调用过程调用过程 示例:将一个示例:将一个ARRAY传送到一个功能块传送到一个功能块 FB17 只允许用符号对复杂参数进行相关分配只允许用符号对复杂参数进行相关分配 Network 1: CALL FB 17, DB 2 Meas_1 :=Temperature.Cylinder Sum_1 :=MD20 Sum_2 :=MD30 Meas_2 :=Temperature.Shaft DB2 Temperature Date:2010-12-13 File:PRO2_06E.13 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 功能块调用的特性功能块调用的特性 “按值按值” 传递参数(复制数值):传递参数(复制数值): 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没有背景数据时才能使用(参数+静态变量) Date:2010-12-13 File:PRO2_06E.14 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 主罐 瓶子传感器 I 16.6 瓶子传感器 I 16.5 瓶子传感器 I 16.7 Q 9.0漏斗 练习练习6:罐装生产线中的传送带模型:罐装生产线中的传送带模型 Q 20.5 传送带正转 Q 20.6 传送带反转 Date:2010-12-13 File:PRO2_06E.15 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 练习练习6.1a: 罐装生产线罐装生产线 工作模式选择工作模式选择 生产线 ON/OFF I 0.0: Start (NO, 瞬动开关) I 0.1: Stop (NC) Q8.1: Plant_on 手动/自动方式 I 0.4: 自动/手动 I 0.5: 确定模式 Q8.2: 选定手动方式 A8.3: 选定自动方式 FB15: “模式选择模式选择 EN Start Plant_on Stop OM_Man Auto_Man OM_Auto OM_activate ENO DB15 . . . I 0.0 I 0.1 I 0.4 I 0.5 Q8.1 Q8.2 Q8.3 Date:2010-12-13 File:PRO2_06E.16 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 练习练习6.1b:罐装生产线:罐装生产线 传送带传送带 手动方式 I 0.5: 正向点动 I 0.6: 反向点动 Q20.5: 传送带正向运转 Q20.6: 传送带反向运转 自动方式 I 16.6: 传感器:罐装位置 I 16.7: 传感器:计算瓶数 Q9.0: 罐装启动 QW12: 满瓶显示 FB16: “传送带控制传送带控制 EN OM_Man OM_Auto Conv_for Jog_for Conv_back Jog_back Filling_active Sensor_fill Full_bottles Sensor_full ENO Q20.5 Q20.6 Q9.0 QW12 DB16 . . . Q8.2 Q8.3 I 0.2 I 0.3 I 16.6 I 16.7 Date:2010-12-13 File:PRO2_06E.17 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 多重背景模型的结构多重背景模型的结构 FB10 钻床数据钻床数据 FB10的背景的背景DB CALL Drill . CALL Motor_1 . CALL Motor_2 DB10 . stat Drill FB1 stat Motor_1 FB2 stat Motor_2 FB2 Motor_1的 数据 的 数据 Motor_2的 数据 的 数据 FB1 FB2 钻孔算法 马达控制 钻孔算法 马达控制 例如例如 OB1 . CALL FB10,DB10 . Date:2010-12-13 File:PRO2_06E.18 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 使用多重背景模型实现面向对象的编程使用多重背景模型实现面向对象的编程 Press_2Press_1 传送传送 示例:冲压生产线示例:冲压生产线 技术划分技术划分 通过通过FB背景,对程序进行 技术划分 背景,对程序进行 技术划分 FB: Press line FB: #Transport FB: #Press_1 冲压头 防护装置 冲压头 防护装置 FB: #Punch FB: #Guard FB: #Press_2 FB: #Punch FB: #Guard Date:2010-12-13 File:PRO2_06E.19 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 用用STEP 7来实现一个来实现一个“冲压生产线冲压生产线” FB10:Press line FB10的背景的背景DB CALL #Press_1 . CALL #Press_2 . CALL #Transport DB10 . stat Press_1 FB1 stat Press_2 FB1 stat Transport FB2 . FB1:Press . stat Punch FB4 stat Guard FB5 . CALL #Punch . CALL #Guard . stat Punch FB4 stat Guard FB5 . CALL #Punch . CALL #Guard . . FB2: Transport FB4:Punch FB5:Guard CALL FB10, DB10 OB1 FB1: Press FB4:Punch FB5:Guard Press_1的数据 传送带的数据 的数据 传送带的数据 Press_1. Guard Press_2. Punch Press_2. Guard Press_2的数据的数据 FB10的数据的数据 Press_1. Punch Date:2010-12-13 File:PRO2_06E.20 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 多重背景模型的属性多重背景模型的属性 多重背景模型的优点:多重背景模型的优点: 多个实例只需要 一个多个实例只需要 一个 DB 在为各个实例创建在为各个实例创建“private” 数据区时,无需任何额外的管理工作数据区时,无需任何额外的管理工作 多重背景模型使得多重背景模型使得“面向对象的编程风格面向对象的编程风格”成为可能(通过成为可能(通过“集合集合”的方式实现 可重用性) 的方式实现 可重用性) 最大嵌套深度为最大嵌套深度为8级级 FB的必备条件:的必备条件: 在在FB内不允许直接访问过程信号(内不允许直接访问过程信号(I,Q) 只有使用只有使用FB参数访问过程信号,或者与其它过程单元进行通讯参数访问过程信号,或者与其它过程单元进行通讯 FB只能使用静态变量来记忆其过程状态,而不使用全局只能使用静态变量来记忆其过程状态,而不使用全局DB或者位存储器。或者位存储器。 注意事项:注意事项: 背景数据还可以从背景数据还可以从“外部外部”进行访问 例如在 进行访问 例如在OB1中:中: L Press line.Press_2.Punch. Date:2010-12-13 File:PRO2_06E.21 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 练习练习 6.2:生产线中的传送带模型:生产线中的传送带模型 H4 LED 接近开关 接近开关 INI1, INI2, INI3 光栅 光栅 LB1 “S4” 确认开关确认开关 工位的处理顺序工位的处理顺序 工件的处理工件的处理 成形处理成形处理 向传送带上放置工件向传送带上放置工件 等待原材料工件等待原材料工件 从传送带中取原材料工件从传送带中取原材料工件 传送带的处理顺序传送带的处理顺序 等待成型的工件等待成型的工件 传送到总装线传送到总装线 总装,插入原材料工件总装,插入原材料工件 传送到工作站传送到工作站 “S1”, “S2”, “S3” 确认开关确认开关 H1, H2, H3 LED Date:2010-12-13 File:PRO2_06E.22 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives 练习练习 6.2a:一个工作站的程序结构:一个工作站的程序结构 程序的技术划分程序的技术划分 传送带传送带 工作站工作站1工作站工作站2工作站工作站3 OB1 CALL FB1, DB1 . . CALL FB2, DB2 FB1: Station Initial LED Proxy_switch Transp_req Acknowledge Clock_bit_q Clock_bit_s Conv_busy DB1 M10.1 S1 INI1 I 0.0H1 DB2 FB2: Transport Initial LED L_Barrier Conv_right Acknowledge Conv_left Transp_req Clock_bit H4 K1_CONVR K2_CONVL I 0.0 LB1 S4 M10.1 M10.3 Date:2010-12-13 File:PRO2_06E.23 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives FB1 “Station” 的工作原理的工作原理 FB1: Station Take_piece_ from_conv: LED 快速闪烁 Piece_finished: LED 慢速闪烁 Process_ piece LED 连续点亮 IN 参数参数: 数据类型数据类型: Initial BOOL Proxy_switch BOOL Acknowledge BOOL Clock_bit_q BOOL Clock_bit_s BOOL OUT 参数参数: LED BOOL Transp_req BOOL I/O 参数参数: Conv_busy BOOL 静态变量静态变量: State STRUCT Process_piece BOOL Piece_finished BOOL Place_part_on_conv BOOL Wait_for_piece BOOL Take_piece_from_conv BOOL END_STRUCT 状态模型状态模型: A Acknowledge AN Proxy_switch A Transp_req FB1中的声明中的声明: Wait_ for_piece: LED 熄灭 Place_part_ on_conv: LED快速闪烁 AN Conv_busy A Proxy_switch AN Proxy_switch A Initial FP . Date:2010-12-13 File:PRO2_06E.24 SIMATIC S7 Siemens AG 2001. All rights reserved. SITRAINTraining for Automation and Drives FB2 “Transport”的工作原理的工作原理 Conv_ left LED 闪烁 Conv_ right LED 闪烁 A #Transp_req Waiting LED 熄灭 AN #Tansp_req AN #LBarrier Assembly LED连续点亮 A #Acknowledge 状态模型:状态模型: FB2的接口的接口: IN 参数参数: 数据类型数据类型: Initial BOOL L_Barrier BOOL Acknowledge BOOL Transp_req BOOL Clock_bit BOOL OUT 参数参数: LE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论