1、Date:2023-5-19File:PRO2_06E.1SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives块调用与多重背景模型块调用与多重背景模型Date:2023-5-19File:PRO2_06E.2SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives用于结构化编程的块用于结构化编程的块整个任务的整个任务的 模块化模块化:l单个任务在各自块中
2、单个任务在各自块中予以解决予以解决 l参数分配法使得参数分配法使得 使用更加灵活使用更加灵活示例:钻孔循环程序的钻孔深度为可分配参数块的可再利用性能:块的可再利用性能:l块可以按需要随时块可以按需要随时 加以调用加以调用 l限制因素:限制因素:不允许访问 全局地址空间只能通过参数列表 进行通信OB 1电机电机1FB1阀阀FB2控制器控制器FB10FC 5限制限制 阀阀复制复制SFC.CALL FB1,DB2 Start:=I 0.0 Stop:=I 0.1 Motor_on:=Q12.0 Speed:=QW14.FB 1地址声明名称类型0.0inStartBOOL0.1inStopBOOL2.
3、0outMotor_onBOOL4.0outSpeedINT6.0statSpeed_oldINT0.0temp Calc_1INT.A#StartAN#Stop=#Motor_on.DB 2OB 1Date:2023-5-19File:PRO2_06E.3SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and DrivesSTEP 7 块概述块概述属性属性组织块(OB)-用户程序接口-优先级(0到27)-在局部数据堆栈中指定开始信息块的类型块的类型功能块(FB)-参数可分配(可以在调用
4、时分配参数)-具有(收回)存储空间(静态变量)功能(FC)-参数可分配(必须在调用时分配参数)-基本上没有存储空间(只有临时变量)数据块(DB)-结构化的局部数据存储(背景数据块DB)-结构化的全局数据存储(在整个程序中有效)系统功能块(SFB)-FB(具有存储空间),存储在CPU的操作系统中并可由用户调用系统功能(SFC)-FB(无存储空间),存储在CPU的操作系统中并可由用户调用系统数据块(SDB)-用于配置数据和参数的数据块Date:2023-5-19File:PRO2_06E.4SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN
5、Training for Automation and Drives功能及功能块中的参数声明功能及功能块中的参数声明MotorENENOStart地址地址声明声明名称名称类型类型初始化值初始化值.0.0输入输入StartBOOLFALSE0.1输入输入StopBOOLTRUE2.0输入输入SpeedINT02.0输出输出Motor_onBOOLFALSE8.0输出输出SetpointINT010.0输入输入/输出输出 EMER_OFF BOOLFALSE.静态静态.临时临时.SetpointEMER_OFFMotor_onStop输入输入参数参数输入输入/输出输出参数参数输出输出参数参数参数是
6、信息传递的通道参数是信息传递的通道l输入参数:输入参数:Caller-Blockl输出参数:输出参数:Block-Callerl输入输入/输出参数:输出参数:Caller Block参数形成了块的一个参数形成了块的一个“shell”:l参数位于代码段参数位于代码段 与与“局部局部”变量类似变量类似 l参数可以为任何数据类型参数可以为任何数据类型在调用期间进行数据类型检查例外情况:POINTER,ANYl调用接口与编程语言无关调用接口与编程语言无关PLC编程语言可以混合使用 SpeedDate:2023-5-19File:PRO2_06E.5SIMATIC S7Siemens AG 2001.A
7、ll rights reserved.SITRAIN Training for Automation and Drives功能的属性功能的属性参数可分配的块:参数可分配的块:l具有足够多的输入,输出,输入具有足够多的输入,输出,输入/输输出参数出参数l无存储区,也即只有临时变量无存储区,也即只有临时变量IEC 61131-3标准一致性要求:标准一致性要求:l足够多的输入参数足够多的输入参数l仅有一个输出参数仅有一个输出参数RET_VALl不允许访问全局变量和绝对地址不允许访问全局变量和绝对地址l使用同一输入参数提供相同的结果使用同一输入参数提供相同的结果扩展了处理器的指令集扩展了处理器的指令集
8、程序程序执行执行CALL FC10On_1:=I 0.1On_2:=I 0.2Off:=Q8.0功能功能FC10输入输入On_1BOOL输入输入On_2BOOL输出输出OffBOOL.A#On_1A#On_2=#Off.Date:2023-5-19File:PRO2_06E.6SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives基本数据类型传送机理基本数据类型传送机理 OB1功能功能FC10程序程序执行执行CALL FC10On_1:=I 0.1On_2:=I 0.2Of
9、f:=Q8.0输入输入On_1BOOL输入输入On_2BOOL输出输出OffBOOL.A#On_1A#On_2=#Off.OB1BLD 1=L 20.0UC FC 10P#I0.1P#I 0.2P#Q 8.0BLD21 0 0 1 0 0 1 0.IB0基本类型实际参数位于于:基本类型实际参数位于于:l位存储地址区域位存储地址区域l过程映像过程映像l调用的局部堆栈调用的局部堆栈块参数块参数 实际参数实际参数形式参数形式参数Date:2023-5-19File:PRO2_06E.7SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Trai
10、ning for Automation and Drives复杂数据类型的功能调用复杂数据类型的功能调用示例:向功能传递一个示例:向功能传递一个ARRAYDB5 TemperatureFC21只能通过符号来进行参数的赋值只能通过符号来进行参数的赋值Network(段)1:在功能FC21里,声明一个数组Mes_ValCALL FC 21 Mes_Val:=Temperature.sequenceDate:2023-5-19File:PRO2_06E.8SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automa
11、tion and Drives调用(主调调用(主调)功能的特点功能的特点CALL指令指令l指令为宏指令指令为宏指令寄存器内容可能会被覆盖掉,甚至是DB寄存器请注意B堆栈中内容的解释调用之后,可能会打开另一个DBCALL指令的处理时间取决于实际参数的数目和存储单元位置lCALL指令确保了块参数被正确地赋予当前数据指令确保了块参数被正确地赋予当前数据l示例:示例:CALL FC10On_1:=I 0.1On_2:=I 0.2Off:=Q8.0调用指令调用指令UC和和CCl不依赖于不依赖于RLO的块调用的块调用(UC)或取决于或取决于RLO的块调用的块调用示例:UC FC20或CC FC20l当当F
12、C没有参数的时候,才可使用这些指令没有参数的时候,才可使用这些指令Date:2023-5-19File:PRO2_06E.9SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and DrivesFB 5输入输入 StartBOOL输入输入 StopBOOL输出输出 Motor_on BOOL输出输出 SpeedINT静态静态.临时临时.A#StartAN#Stop=#Motor_on.功能块的属性功能块的属性属于可分配参数的块:属于可分配参数的块:lIEC 61131-3标准一致性块标准一
13、致性块l有足够满足需要的输入,输出,输有足够满足需要的输入,输出,输入入/输出参数输出参数l有存储区域,即不仅有临时变量而有存储区域,即不仅有临时变量而且还有静态变量且还有静态变量l使用本身数据区域进行调用使用本身数据区域进行调用(创建背景)创建背景)l“数据封装数据封装”应用:应用:l定时器和计数器功能定时器和计数器功能l使用内部状态控制过程设备使用内部状态控制过程设备锅炉电机,阀,等等。CALL FB5,DB16 Start:=I 0.0 Stop:=I 0.1 Motor_on:=Q8.0 Speed:=QW120.0 StartBOOL0.1 StopBOOL2.0 Motor_onB
14、OOL4.0 SpeedINTDB 16电机电机Date:2023-5-19File:PRO2_06E.10SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives构建构建功能块实例功能块实例Drive_1FBx+DByDrive_1 状状态数据态数据 控制算法控制算法OB,FB或或FC CALL FBx,DBy.l 使用背景使用背景DB的的FB调用调用CALL#Motor_1.CALL#Motor_2DBx.stat Motor_1 FBxstat Motor_2 FBxD
15、rive_2 状状态数据态数据 Drive_3 状态状态数据数据FBxFB实例实例控制算法控制算法FBDrive_2Drive_3l FB内的声明内的声明(多多重背景)重背景)Date:2023-5-19File:PRO2_06E.11SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives在一个在一个FB调用过程中的参数传递调用过程中的参数传递 OB1 FB10程序执行程序执行CALL FB10,DB16Start:=I 0.4Stop:=I 0.0Motor_on:=Q8
16、.1Speed:=QW120.0 inStartBOOL0.1 inStopBOOL2.0 outMotor_onBOOL4.0 outSpeedINT.A#StartAN#Stop=#Motor_on.BLD3=L24.0TDB OPNDI16TAR2LD20AI0.4=DIX0.0AI0.0=DIX0.1LAR2P#DBX 0.0UCFB10LAR2LD 20ADIX 2.0=Q8.1LDIW 4TQW12TDB BLD41 0 0 1 0 0 1 0.IB01 0 0 1 0 0 1 0QB8 DB16.0 1.1123.块参数块参数实际参数实际参数形式参数形式参数.Date:2023-
17、5-19File:PRO2_06E.12SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training 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:=Temper
18、ature.ShaftDB2 TemperatureDate:2023-5-19File:PRO2_06E.13SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives功能块调用的特性功能块调用的特性“按值按值”传递参数(复制数值传递参数(复制数值):):lCALL过程中过程中FB参数的赋值:参数的赋值:无需为某些FB参数赋值可以从“外部”进行赋值和取消赋值 例如:直接通过操作面板进行例外:复杂数据类型的输入/输出参数(STRUCT,ARRAY,STRING以及 DATE_A
19、ND_TIME)l初始化:初始化:FB参数可以在声明部分进行初始化例外:复杂数据类型的输入/输出参数(STRUCT,ARRAY,STRING以及 DATE_AND_TIME)l使用使用DI和和AR2寄存器在内部访问形式参数寄存器在内部访问形式参数如果DI或者AR2寄存器被覆盖,将不再允许访问背景数据。l附加调用指令附加调用指令UC和和CC示例:UC FB20或者CC FB20只有当FB没有背景数据时才能使用(参数+静态变量)Date:2023-5-19File:PRO2_06E.14SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Tr
20、aining for Automation and Drives 主罐瓶子传感器I 16.6瓶子传感器I 16.5瓶子传感器I 16.7Q 9.0漏斗练习练习6:罐装生产线中的传送带模型:罐装生产线中的传送带模型Q 20.5 传送带正转Q 20.6 传送带反转Date:2023-5-19File:PRO2_06E.15SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives练习练习6.1a:罐装生产线罐装生产线 工作模式选择工作模式选择生产线 ON/OFFI 0.0:Star
21、t (NO,瞬动开关)I 0.1:Stop (NC)Q8.1:Plant_on手动/自动方式I 0.4:自动/手动I 0.5:确定模式Q8.2:选定手动方式A8.3:选定自动方式FB15:“模式选择模式选择ENStart Plant_onStop OM_ManAuto_Man OM_AutoOM_activateENODB15.I 0.0I 0.1I 0.4I 0.5 Q8.1Q8.2Q8.3Date:2023-5-19File:PRO2_06E.16SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Autom
22、ation and Drives练习练习6.1b:罐装生产线罐装生产线 传送带传送带 手动方式I 0.5:正向点动I 0.6:反向点动Q20.5:传送带正向运转Q20.6:传送带反向运转自动方式I 16.6:传感器:罐装位置I 16.7:传感器:计算瓶数Q9.0:罐装启动QW12:满瓶显示FB16:“传送带控制传送带控制ENOM_Man OM_AutoConv_forJog_for Conv_backJog_backFilling_activeSensor_fillFull_bottlesSensor_fullENOQ20.5Q20.6Q9.0QW12DB16.Q8.2Q8.3I 0.2I 0
23、.3I 16.6I 16.7Date:2023-5-19File:PRO2_06E.17SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives多重背景模型的结构多重背景模型的结构FB10钻床数据钻床数据FB10的背景的背景DBCALL Drill.CALL Motor_1.CALL Motor_2DB10.stat DrillFB1stat Motor_1 FB2stat Motor_2 FB2Motor_1的的数据数据Motor_2的的数据数据FB1FB2钻孔算法钻孔算法
24、马达控制马达控制例如例如 OB1.CALL FB10,DB10.Date:2023-5-19File:PRO2_06E.18SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives使用多使用多重背景模型重背景模型实现面向对象的编程实现面向对象的编程Press_2Press_1传送传送示例:冲压生产线示例:冲压生产线技术划分技术划分通过通过FB背景,对程序进行背景,对程序进行技术划分技术划分FB:Press lineFB:#TransportFB:#Press_1冲压头冲压头防
25、护装置防护装置FB:#PunchFB:#GuardFB:#Press_2FB:#PunchFB:#GuardDate:2023-5-19File:PRO2_06E.19SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives用用STEP 7来实现一个来实现一个“冲压生产线冲压生产线”FB10:Press lineFB10的的背景背景DBCALL#Press_1.CALL#Press_2.CALL#TransportDB10.stat Press_1FB1stat Press_
26、2FB1stat TransportFB2.FB1:Press.stat PunchFB4stat GuardFB5.CALL#Punch.CALL#Guard.stat PunchFB4stat GuardFB5.CALL#Punch.CALL#Guard.FB2:TransportFB4:PunchFB5:GuardCALL FB10,DB10OB1FB1:PressFB4:PunchFB5:GuardPress_1的数据的数据传送带的数据传送带的数据Press_1.GuardPress_2.PunchPress_2.GuardPress_2的数据的数据FB10的数据的数据Press_1.
27、PunchDate:2023-5-19File:PRO2_06E.20SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives多多重背景重背景模型的属性模型的属性多多重背景重背景模型的优点:模型的优点:l多个实例只需要多个实例只需要 一个一个 DBl在为各个实例创建在为各个实例创建“private”数据区时,无需任何额外的管理工作数据区时,无需任何额外的管理工作l多重多重背景背景模型使得模型使得“面向对象的编程风格面向对象的编程风格”成为可能成为可能(通过通过“集合集合”的方
28、式的方式实现可重用性实现可重用性)l最大嵌套深度为最大嵌套深度为8级级FB的必备条件:的必备条件:l在在FB内不允许直接访问过程信号(内不允许直接访问过程信号(I,Q)l只有使用只有使用FB参数访问过程信号,或者与其它过程单元进行通讯参数访问过程信号,或者与其它过程单元进行通讯lFB只能使用静态变量来记忆其过程状态,而不使用全局只能使用静态变量来记忆其过程状态,而不使用全局DB或者位存储器。或者位存储器。注意事项:注意事项:l背景背景数据还可以从数据还可以从“外部外部”进行访问进行访问 例如在例如在OB1中:中:L Press line.Press_2.Punch.Date:2023-5-19
29、File:PRO2_06E.21SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives练习练习 6.2:生产线中的传送带模型生产线中的传送带模型H4LED接近开关接近开关 INI1,INI2,INI3 光栅光栅 LB1“S4”确认开关确认开关工位的处理顺序工位的处理顺序l工件的处理工件的处理l成形处理成形处理l向传送带上放置工件向传送带上放置工件l等待原材料工件等待原材料工件l从传送带中取原材料工件从传送带中取原材料工件传送带的处理顺序传送带的处理顺序l等待成型的工件等待成
30、型的工件l传送到总装线传送到总装线l总装,插入原材料工件总装,插入原材料工件l传送到工作站传送到工作站“S1”,“S2”,“S3”确认开关确认开关H1,H2,H3LEDDate:2023-5-19File:PRO2_06E.22SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives练习练习 6.2a:一个工作站的程序结构一个工作站的程序结构程序的技术划分程序的技术划分传送带传送带工作站工作站1工作站工作站2工作站工作站3OB1CALL FB1,DB1.CALL FB2,DB
31、2FB1:StationInitial LEDProxy_switch Transp_reqAcknowledge Clock_bit_qClock_bit_sConv_busyDB1M10.1S1INI1I 0.0H1DB2FB2:TransportInitialLEDL_BarrierConv_rightAcknowledgeConv_leftTransp_reqClock_bitH4K1_CONVRK2_CONVLI 0.0LB1S4M10.1M10.3Date:2023-5-19File:PRO2_06E.23SIMATIC S7Siemens AG 2001.All rights r
32、eserved.SITRAIN Training for Automation and DrivesFB1“Station”的工作原理的工作原理 FB1:StationTake_piece_from_conv:LED 快速闪烁Piece_finished:LED 慢速闪烁Process_pieceLED 连续点亮IN 参数参数:数据类型数据类型:InitialBOOLProxy_switchBOOLAcknowledgeBOOLClock_bit_qBOOLClock_bit_sBOOLOUT 参数参数:LEDBOOLTransp_reqBOOLI/O 参数参数:Conv_busyBOOL静态
33、变量静态变量:State STRUCTProcess_pieceBOOLPiece_finishedBOOLPlace_part_on_convBOOLWait_for_pieceBOOLTake_piece_from_conv BOOLEND_STRUCTl状态模型状态模型:A AcknowledgeAN Proxy_switchA Transp_reqlFB1中的声明中的声明:Wait_for_piece:LED熄灭Place_part_on_conv:LED快速闪烁 AN Conv_busyAProxy_switchAN Proxy_switchA InitialFP.Date:2023
34、-5-19File:PRO2_06E.24SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and DrivesFB2“Transport”的工作原理的工作原理Conv_leftLED 闪烁Conv_rightLED 闪烁A#Transp_reqWaitingLED熄灭AN#Tansp_reqAN#LBarrierAssemblyLED连续点亮A#Acknowledgel状态模型:状态模型:lFB2的接口的接口:IN 参数参数:数据类型数据类型:InitialBOOLL_BarrierBO
35、OLAcknowledgeBOOLTransp_reqBOOLClock_bitBOOLOUT 参数参数:LEDBOOLConv_rightBOOLConv_leftBOOL静态变量静态变量:StateSTRUCTWaitingBOOLConv_rightBOOLAssemblyBOOLConv_leftBOOLEND_STRUCTFB2:TransportA InitialFP.Date:2023-5-19File:PRO2_06E.25SIMATIC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation
36、and Drives练习练习6.2b:扩展到扩展到3个站个站FB10Station_1的数据的数据FB10的背景数据块的背景数据块CALL Station_1CALL Station_2CALL Station_3CALL TransportDB10.stat Station_1FB1stat Station_2FB1stat Station_3FB1stat Transport FB2Transport的数据的数据FB1FB2OB1.CALL FB10,DB10.Station_2的数据的数据Station_3的数据的数据Date:2023-5-19File:PRO2_06E.26SIMAT
37、IC S7Siemens AG 2001.All rights reserved.SITRAIN Training for Automation and Drives块参数之间的联锁块参数之间的联锁#Station_1InitialLEDProxy_switchTransp_reqAcknowledge Clock_bit_qClock_bit_sConv_busyLB1#TransportInitialLEDL_Barrier Conv_rightAcknowledgeConv_leftTransp_reqClock_bitH4K1_CONVRK2_CONVLI 0.0S4M10.1M10.1S1INI1I 0.0H1#Station_2H2#Station_3H3FB10:Assembly_lineDB10:Assembly_line_DBM10.3#Station_2InitialLEDProxy_switchTransp_reqAcknowledge Clock_bit_qClock_bit_sConv_busyM10.1S2INI2I 0.0M10.3#Station_3InitialLEDProxy_switchTransp_reqAcknowledgeClock_bit_qClock_bit_sConv_busyM10.1S3INI3I 0.0M10.3