




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,块调用与多重背景模型,用于结构化编程的块,整个任务的 模块化: 单个任务在各自块中 予以解决 参数分配法使得 使用更加灵活 示例:钻孔循环程序的钻孔深度为可分配参数 块的可再利用性能: 块可以按需要随时 加以调用 限制因素: 不允许访问 全局地址空间 只能通过参数列表 进行通信,OB 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.0inStartBOOL 0.1i
2、nStopBOOL 2.0outMotor_onBOOL 4.0outSpeedINT 6.0statSpeed_oldINT 0.0tempCalc_1INT . . . A #Start AN #Stop=#Motor_on .,DB 2,OB 1,STEP 7 块概述,属性,组织块(OB),- 用户程序接口 - 优先级(0到27) - 在局部数据堆栈中指定开始信息,块的类型,功能块(FB),- 参数可分配(可以在调用时分配参数) - 具有(收回)存储空间(静态变量),功能(FC),- 参数可分配(必须在调用时分配参数) - 基本上没有存储空间(只有临时变量),数据块(DB),- 结构化的
3、局部数据存储(背景数据块DB) - 结构化的全局数据存储(在整个程序中有效),系统功能块(SFB),- FB(具有存储空间),存储在CPU的操作系统中并可由用户调用,系统功能(SFC),- FB(无存储空间),存储在CPU的操作系统中并可由用户调用,系统数据块(SDB),- 用于配置数据和参数的数据块,功能及功能块中的参数声明,Motor,EN,ENO,Start,地址声明名称类型初始化值. 0.0输入StartBOOLFALSE 0.1输入StopBOOLTRUE 2.0输入SpeedINT0 2.0输出Motor_onBOOLFALSE 8.0输出SetpointINT0 10.0输入/输
4、出 EMER_OFFBOOLFALSE .静态. .临时.,Setpoint,EMER_OFF,Motor_on,Stop,输入参数,输入/输出参数,输出参数,参数是信息传递的通道 输入参数:Caller - Block 输出参数: Block - Caller 输入/输出参数: Caller Block 参数形成了块的一个“shell”: 参数位于代码段 与“局部”变量类似 参数可以为任何数据类型 在调用期间进行数据类型检查 例外情况:POINTER,ANY 调用接口与编程语言无关 PLC编程语言可以混合使用,Speed,功能的属性,参数可分配的块: 具有足够多的输入,输出,输入/输出参数
5、无存储区,也即只有临时变量 IEC 61131-3标准一致性要求: 足够多的输入参数 仅有一个输出参数RET_VAL 不允许访问全局变量和绝对地址 使用同一输入参数提供相同的结果 扩展了处理器的指令集,功能FC10,输入On_1BOOL输入On_2BOOL输出OffBOOL .,. A #On_1 A #On_2 = #Off.,基本数据类型传送机理,OB1,功能FC10,程序 执行,CALL FC10 On_1:=I 0.1On_2:= I 0.2Off:= Q8.0,输入On_1BOOL输入On_2BOOL输出OffBOOL .,. A #On_1 A #On_2 = #Off.,OB1,
6、BLD 1=L 20.0UC FC 10P#I0.1P#I 0.2P#Q 8.0BLD2,.,IB0,基本类型实际参数位于于: 位存储地址区域 过程映像 调用的局部堆栈,块参数,实际参数,形式参数,复杂数据类型的功能调用,示例:向功能传递一个ARRAY,DB5 Temperature,FC21,只能通过符号来进行参数的赋值,Network(段) 1: 在功能FC21里,声明一个数组Mes_Val CALL FC 21 Mes_Val:=Temperature.sequence,调用(主调)功能的特点,CALL指令 指令为宏指令 寄存器内容可能会被覆盖掉,甚至是DB寄存器 请注意B堆栈中内容的解
7、释 调用之后,可能会打开另一个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没有参数的时候,才可使用这些指令,FB 5,输入StartBOOL输入StopBOOL输出Motor_onBOOL 输出SpeedINT 静态. 临时.,. A #Start AN #Stop = #Motor_on.,功能块的属性,属于可分配参
8、数的块: IEC 61131-3标准一致性块 有足够满足需要的输入,输出,输入/输出参数 有存储区域,即不仅有临时变量而且还有静态变量 使用本身数据区域进行调用(创建背景) “数据封装” 应用: 定时器和计数器功能 使用内部状态控制过程设备 锅炉 电机,阀,等等。,CALL FB5, DB16 Start:=I 0.0 Stop:=I 0.1 Motor_on:=Q8.0 Speed:=QW12,0.0StartBOOL0.1StopBOOL2.0Motor_onBOOL 4.0SpeedINT,DB 16,电机,构建功能块实例,Drive_1,FBx,+,DBy,Drive_1 状态数据,控
9、制算法,OB, FB或FC,CALL FBx, DBy . .,使用背景DB的FB调用,CALL #Motor_1 . CALL #Motor_2,DBx,. statMotor_1FBx statMotor_2FBx,Drive_2 状态数据,Drive_3 状态数据,FBx,FB实例,控制算法,FB,Drive_2,Drive_3,FB内的声明 (多重背景),在一个FB调用过程中的参数传递,OB1,FB10,程序执行,CALL FB10, DB16 Start:=I 0.4Stop:=I 0.0Motor_on:=Q8.1Speed:=QW12,0.0inStartBOOL0.1inSto
10、pBOOL2.0outMotor_onBOOL 4.0outSpeedINT .,. A #Start AN #Stop = #Motor_on.,BLD3 =L24.0 TDB OPNDI16 TAR2LD20 AI0.4 =DIX0.0 AI0.0 =DIX0.1 LAR2P#DBX 0.0 UCFB10 LAR2LD 20 ADIX 2.0 =Q8.1 LDIW4 TQW12 TDB BLD4,.,IB0,1,0,0,1,0,0,1,0,QB8,DB16,.,.,.,.,.,.,0,1,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,1,1,2,3,. . .,块参数,实际参
11、数,形式参数,. . .,使用复杂数据类型的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,功能块调用的特性,“按值” 传递参数(复制数值): CALL过程中FB参数的赋值: 无需为某些FB参数赋值 可以从“外部” 进行赋值和取消赋值 例如:直接通过操作面板进行 例外:复杂数据类型的输入/输出参数(S
12、TRUCT,ARRAY,STRING以及 DATE_AND_TIME) 初始化: FB参数可以在声明部分进行初始化 例外:复杂数据类型的输入/输出参数(STRUCT,ARRAY,STRING以及 DATE_AND_TIME) 使用DI和AR2寄存器在内部访问形式参数 如果DI或者AR2寄存器被覆盖,将不再允许访问背景数据。 附加调用指令UC和CC 示例:UC FB20或者CC FB20 只有当FB没有背景数据时才能使用(参数+静态变量),主罐,瓶子传感器 I 16.6,瓶子传感器 I 16.5,瓶子传感器 I 16.7,Q 9.0,漏斗,练习6:罐装生产线中的传送带模型,Q 20.5 传送带正
13、转,Q 20.6 传送带反转,练习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_activateENO,DB15,. . . I 0.0 I 0.1 I 0.4 I 0.5,Q8.1 Q8.2 Q8.3,练习6.1b:罐装生产线 传送带
14、,手动方式 I 0.5: 正向点动 I 0.6: 反向点动 Q20.5: 传送带正向运转 Q20.6:传送带反向运转 自动方式 I 16.6:传感器:罐装位置 I 16.7:传感器:计算瓶数 Q9.0: 罐装启动 QW12: 满瓶显示,FB16: “传送带控制,EN OM_Man OM_AutoConv_for Jog_for Conv_back Jog_backFilling_active Sensor_fillFull_bottles Sensor_fullENO,Q20.5 Q20.6 Q9.0 QW12,DB16,. . . Q8.2 Q8.3 I 0.2 I 0.3 I 16.6 I
15、 16.7,多重背景模型的结构,FB10,钻床数据,FB10的背景DB,CALL Drill . CALL Motor_1 . CALL Motor_2,DB10,. statDrillFB1 statMotor_1FB2 statMotor_2FB2,Motor_1的数据,Motor_2的数据,FB1,FB2,钻孔算法,马达控制,例如 OB1,. CALL FB10,DB10 .,使用多重背景模型实现面向对象的编程,Press_2,Press_1,传送,示例:冲压生产线,技术划分,通过FB背景,对程序进行技术划分,FB: Press line,FB: #Transport,FB: #Pres
16、s_1,冲压头 防护装置,FB: #Punch,FB: #Guard,FB: #Press_2,FB: #Punch,FB: #Guard,用STEP 7来实现一个“冲压生产线”,FB10:Press line,FB10的背景DB,CALL #Press_1 . CALL #Press_2 . CALL #Transport,DB10,. statPress_1FB1 statPress_2FB1 statTransportFB2 .,FB1:Press,. statPunchFB4 statGuardFB5 .,CALL #Punch . CALL #Guard,. statPunchFB4
17、 statGuardFB5 .,CALL #Punch . CALL #Guard,. .,FB2: Transport,FB4:Punch,FB5:Guard,CALL FB10, DB10,OB1,FB1: Press,FB4:Punch,FB5:Guard,多重背景模型的属性,多重背景模型的优点: 多个实例只需要 一个 DB 在为各个实例创建“private” 数据区时,无需任何额外的管理工作 多重背景模型使得“面向对象的编程风格”成为可能(通过“集合”的方式实现可重用性) 最大嵌套深度为8级 FB的必备条件: 在FB内不允许直接访问过程信号(I,Q) 只有使用FB参数访问过程信号,或者
18、与其它过程单元进行通讯 FB只能使用静态变量来记忆其过程状态,而不使用全局DB或者位存储器。 注意事项: 背景数据还可以从“外部”进行访问 例如在OB1中: L Press line.Press_2.Punch.,练习 6.2:生产线中的传送带模型,H4LED,接近开关 INI1, INI2, INI3,光栅 LB1,“S4”确认开关,工位的处理顺序 工件的处理 成形处理 向传送带上放置工件 等待原材料工件 从传送带中取原材料工件,传送带的处理顺序 等待成型的工件 传送到总装线 总装,插入原材料工件 传送到工作站,“S1”, “S2”, “S3”确认开关,H1, H2, H3LED,练习 6.
19、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.0,H1,DB2,FB2: Transport,InitialLED L_BarrierConv_right AcknowledgeConv_left Transp_req Clock_bit,H4,K1_CONVR
20、,K2_CONVL,I 0.0,LB1,S4,M10.1,M10.3,FB1 “Station” 的工作原理,FB1: Station,Take_piece_from_conv: LED 快速闪烁,Piece_finished: LED 慢速闪烁,Process_piece LED 连续点亮,IN 参数: 数据类型: InitialBOOL Proxy_switchBOOL AcknowledgeBOOL Clock_bit_qBOOL Clock_bit_sBOOL OUT 参数: LEDBOOL Transp_reqBOOL I/O 参数: Conv_busyBOOL 静态变量: Stat
21、e STRUCT Process_pieceBOOLPiece_finishedBOOL Place_part_on_convBOOL Wait_for_pieceBOOL Take_piece_from_conv BOOLEND_STRUCT,状态模型:,A Acknowledge,AN Proxy_switchA Transp_req,FB1中的声明:,Wait_for_piece: LED熄灭,Place_part_on_conv: LED快速闪烁,AN Conv_busy,AProxy_switch,AN Proxy_switch,A Initial FP .,FB2 “Transpo
22、rt”的工作原理,Conv_left LED 闪烁,Conv_right LED 闪烁,A #Transp_req,Waiting LED熄灭,AN #Tansp_req,AN #LBarrier,Assembly LED连续点亮,A #Acknowledge,状态模型:,FB2的接口:,IN 参数: 数据类型: InitialBOOL L_BarrierBOOL AcknowledgeBOOL Transp_reqBOOL Clock_bitBOOL OUT 参数: LEDBOOL Conv_rightBOOLConv_leftBOOL 静态变量: StateSTRUCT WaitingBOOLConv_rightBOOLAssemblyBOOLConv_leftBOOLEND_STRUCT,FB2: Transport,A Initial FP .,练习6.2b:扩展到3个站,FB10,Station_1的数据,FB10的背景数据块,CALL Station_1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论