第六章-结构化编程课件_第1页
第六章-结构化编程课件_第2页
第六章-结构化编程课件_第3页
第六章-结构化编程课件_第4页
第六章-结构化编程课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第六章结构化编程主讲:程子华^^6.1程序设计方法在STEP7中有三种编程方法:线性化编程、模块化编程、结构化编程。线性化编程:线性化编程是将整个程序都放在循环控制组织块OB1中。在整个程序执行的过程中,每一步都被扫描,适用与一些比较简单的程序。如果是编写大型程序,要避免线性化编程。模块化编程:将程序分成根据功能分成不同的逻辑块,没一逻辑块的功能不同,然后在OB1中可以根据条件调用不同的功能块,特点是易于分工合作,调试方便。结构化编程:结构化编程是将过程要求中类似或相似的任务归类,在功能或功能块中编程,形成通用的解决方案。^^一。块的分类操作系统用户程序系统程序组织块(OB),直接有系统调用功能块(FB),由其他逻辑块调用功能(FC),由其他逻辑块调用。数据块(DB),系统功能(SFC)系统功能块(SFB)系统数据块(SDB)^^二。块的含义及调用(一).功能(FC)功能是用户所编写的无固定存储区的块。它为不带“记忆”的逻辑块。所谓不带“记忆”表示没有背景数据块。当完成操作后,数据不能保持。这些数据为临时变量,对于那些需要保存的数据只能通过共享数据块(SB)来存储。调用功能时,需要用实参来代替形参。^^(二)。功能块(FB)功能块是用户所编写的有固定存储区的块。FB为带“记忆”的逻辑块。它有一个数据结构与功能块参数表完全相同的数据块(DB)。我们称该数据块为背景数据块,当数据块背执行时,数据块背调用;功能块结束,调用随之结束。存放在背景数据块中的数据在FB块结束以后,仍能继续保持,具有“记忆”功能。一个功能块可以有多个背景数据块,使功能块可以被不同的对象使用。数据块包含共享数据块和背景数据块两种类型,共享数据块存储的是全局变量,所有的逻辑块都可以从共享数据块中读取数据,背景数据块则从属于某个功能块,用于传递参数。块的调用即为子程序调用,块可以嵌套调用,嵌套的层数与CPU的型号有关。^^三.块的结构块是有变量声明表和程序组成的。变量声明表。每个逻辑块都有变量声明表,而变量声明表是用来说明块的局部数据,局部数据包含参数和局部变量两大类型,在不同的的逻辑块中可以重复声明和使用同一个局部数据,因为它们在每一个块中有效一次。变量名类型说明输入IN为调用逻辑块提供数据,输入给逻辑块。输出OUT从逻辑块中输出数据结果输入/输出IN_OUT参数值可以输入,也可以输出静态变量STAT静态变量存储于背景数据块中,块调用结束后,变量被保留临时变量TEMP临时变量存储于L堆栈中,块执行结束后,变量消失。局部数据声明类型^^6.2功能和功能块编程及调用举例一。功能和功能块的编程步骤:1.定义局部变量,首先定义形参和临时变量。2.编写执行程序,在编程中使用变量名。3.在OB1中调用这个功能块。案例1.做一个具有控制电动机正反转的功能,输入信号是正转,反转,停止,输出信号是电机正转,电机反转。^^案例2:设计故障I1.3出现时,在操作面板上用一个指示灯(Q4.3)来指示,指示灯以2HZ的频率闪烁,系统复位输入是I1.2,用来检测故障是否存在,如果故障存在,指示灯停止闪烁,转为常亮,故障消除,指示灯熄灭。^^二.功能块编程及举例FB块带有一个存储区,即背景数据块,那么背景数据块是如何生成的,有2中方法。1)在调用FB并为它指定一个背景数据块后,如果该数据块并不存在,则弹出一下提示信息:”InstancedatablockDBxdoesnotexist.Doyouwanttogenerateit?”单击”Yes”按钮可自动生成一个新的背景数据块。2)创建一个新的数据块时,选择其属性为“Datablockreferencingafunctionblock”。功能块FB的优点:当编写FC的程序时,用户必须寻找空的标志区或数据区来存储需要保持的数据,并且要自己编写程序来保存他们;而FB的静态变量可由STEP7的软件自动保存。通过案例2说明FC和FB的区别^^6.3FC和FB程序设计实例任务描述:工业搅拌过程如下:两种配料(A.B)在一个混合罐中由搅拌器混合在一起,之后通过排料阀排出。工业搅拌示意图如下图所示。系统分为4个区:配料A,配料B,搅拌区排料区。电动机和泵有3台:配料A进料泵,配料B进料泵,搅拌电动机。阀门有5个:配料A入口阀,配料A进料阀,配料B入口阀,配料B进料阀,排料阀。^^各个区域的功能如下:配料A和配料B的每个配料管都配有一个入口阀和进料阀,还有一个进料泵。配料管中还有流量传感器,检查是否有配料流过。区域功能为:1.进料泵当罐的液面传感器指示2.混合罐装满后,进料泵必须关闭。进料泵当排料阀打开时,进料泵同样也要关闭。3.阀门在启动进料泵1s后,必须打开入口阀和进料阀。4.阀门在进料泵停止后,阀门必须关闭,防止配料泄漏。^^5.故障检测进料泵启动7s之后,流量传感器会报溢出。6.故障检测进料运行时,若流量传感器没有流量信号,则进料泵关闭。7.维护进料泵启动次数大于50次,必须维护。搅拌区的混合罐中装有3个传感器:灌装满传感器(装满之后,触点断开),罐不空传感器,罐液体最低限位(达到最低限位,触点关闭)。^^搅拌区功能为:1.搅拌电动机当液面指示“液面高度低于最低限位”时,或者排料阀打开时,搅拌电动机必须停止。2.故障检测如果搅拌电动机在启动后10s内没有达到电动机的额定转速,则电动机必须断开。3.维护搅拌电动机的启动次数超过50次,进行维护。^^排料区中成品的排出由螺线管阀门控制。排料区的功能为:1.罐空时,阀门必须关闭。2.当搅拌电动机工作时,或者罐空时排料阀必须关闭,这一要求与搅拌区功能的第一项要求一致。

在进行系统设计之前,首先分析系统功能,可以看出系统有多台电动机和多个阀门,如果直接用线性化或模块编程,会有较多的重复编程,而用结构化编程可以减少工作量。^^结构化编程分析在进行系统设计之前,首先分析系统功能,可以看出系统有多台电动机和多个阀门,如果直接用线性化或模块编程,会有较多的重复编程,而用结构化编程可以减少工作量。将电动机设计封装在FB1中,以不同的数据块分别表示不同的电动机:配料A的进料泵(DB1),配料B的进料泵(DB2),搅拌电动机(DB3)。阀门用FC来封装,分别表示配料A和B的入口阀,进料阀和排料阀。分层结构图如下图所示。

^^习题1.试用FC封装风扇控制。要求为:电动机起动(Engine_On)后,起动延时定时器(Timmer_On)延时(Time),之后将风扇起动(Fan_On)。2.试用FB封装发动机的控制,发动机有两种类型:汽油机和柴油机,要求为:输入为起动(Switch_On),停止(Switch_Off),故障(Failure),复位故障(Reset)和转速设置(Actual_Speed);静态变量为:转速预设值(Preset_Speed);输出为运行(Engine_On),转速达到设置转速指示灯(Achieve_Speed_L)和故障指示灯(Failure_L)。编程要求起动

温馨提示

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

评论

0/150

提交评论