资源描述
,zhm07,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章,PLC,程序设计基础,程序设计的基础,必熟练掌握!,努力学习,不断求新没有终生的专业,只有终生的学习,第三章 PLC程序设计基础程序设计的基础,必熟练掌握!,1,3.1.1 PLC,编程语言的国际标准,PLC的编程语言(IEC61131-3中的5种PLC基本语言),顺序功能图(SFC):,不仅仅是一种语言,更是一种组织控制程,序的图形方法。三要素:步、转换和动作,梯形图(LD):,以图形方式表达触点和线圈以及功能块的组成。,直观易懂,使用最多,功能块表示定时/计数器或数学运算等指令,指令表(IL):,又称语句表,类似汇编程序中的助记符表达式,,与其相对应的是LD。应用于熟悉PLC和程序设计的,经验丰富的程序员使用,结构文本(ST):,类似Pascal的基于文本的高级语言,与LD相比,能实现复杂的数学运算,编程简洁,功能块图(FBD):,一种类似于数字逻辑电路的编程语言。,与门、或门和非(小圆圈)来表示逻辑运算。,FBD广泛地用于过程工业。,3.1 PLC的编程语言与程序结构,3.1.1 PLC编程语言的国际标准PLC的编程语言(IEC,2,NETWORK 23,/网络题目1(单行),LD I0.0,O Q0.0,AN I0.0,= Q0.0,NETWORK 24,/网络题目2(单行),LD I0.3,TON T37,+100,/10秒延时,LAD中程序被划分为的独立的段,该段称为网络(Network) ,,一个网络中只能有一块独立电路,。若网络中有两块独立电路在编译时会显示“无效网络或网络太复杂无法编译”,梯形图编辑器会自动给出网络的编号,允许以网络为单位给梯形图程序加注释。 STL程序可以不使用网络但只有将STL程序正确地划分成网络才能将STL程序转化为LAD程序。,编程软件默认:25个网络,不够可“编辑-插入-网络”,或在程序块窗口中点击右键在快捷,菜单中“插入-网络”,梯形图,(LD或LAD):,语句表,(IL):,左,母,线,右母线,可省略,左侧一条垂直的线称作左母线;,右边一条虚线称为右母线(可省略);,母线之间是触点的逻辑连接和线圈输出,NETWORK 23 /网络题目1(单行)L,3,3.1.2 PLC,的程序结构,S7-200CPU的控制程序由主程序、子程序和中断程序组成。,1、主程序,是程序的主体,每一个项目只能有一个主程序。主程序可以调用子程序,和在中断发生时执行中断程序。,2、子程序,同一子程序可以在PLC的一个扫描周期内被多次调用。使用子程序可以简,化程序设计,节约程序存储器空间。,3、中断程序,中断程序用来,及时,处理与用户程序的执行时序无关的操作或不能事先预,测何时发生的中断事件。,中断程序不能改写其他程序使用的存储器(因不能预知中断何时发生)。,在中断事件发生时,打断主或子程序的运行,中断程序执行完后,自动,返回到原程序。,它不是由用户程序调用而是在中断事件发生时有操作系统调用。中断程,序由用户编写。,3.1.2 PLC的程序结构S7-200CPU的控制程序由主,4,3.2.1 数据在存储器中存取的方式,3.2存储器的数据类型与寻址方式,b,表示,3.2.1 数据在存储器中存取的方式3.2存储器的数据类型与,5,数据的存取方式:,双字:,存储器是由许多存储单元组成的,每个存储单元都有唯一的地址,可以依据存,储器地址来存储数据。存储器地址的表示有,位、字节、字、双字,等格式 。,由字节地址和位地址组成。,位存储单元的地址中需指出存储器位于哪一个区,并指出字节的编号及位号。,如:I4.5 Q0.0 这种存取方式称为“字节.位”寻址方式,位:,以存储区标识符、字节标识符,及字节地址组合而成,如IB3 QB1 MB10 VB201,字节:,由相邻两个字节组成字。,如:VW100表示由VB100和VB101组,成一个字, VB100 为高字节。,字:,由相邻两个字组成双字,占四个字节。,如:VD100表示VB100、VB101、,VB102、VB103 四个字节组成。,数据的存取方式:双字:存储器是由许多存储单元组成的,每个存储,6,3.2.2,存,储,区,类似中间继电器,存储中间操作状态,类似:时间继电器,当前值寄存器(16位),定时器位,存放中间结果,累计计数输入脉冲的个数,当前值寄存器(16位),累计比CPU扫描速度更快,的事件,32位 可读写 可按字节、字、双字来存取,如:CPU与用户之间交换信息,SM0.0一直为1,SM0.1仅第一个T内为1其它为0,I、Q、V、,L、M、S、,SM均可按,Bit,、B、W,DW来存取,作暂时存储器或给子程序传递参数,3.2.2类似中间继电器,存储中间操作状态类似:时间继电器存,7,3.3 位逻辑指令,3.3.1 触点类型,OFF,1,I0.0,ON,0,I0.0,OFF,ON,常开触点 外部电路有动作时电路是闭合,无动作断开,常闭触点 外部电路有动作时电路就断开,无动作闭合,线圈:代表CPU对存储器的写操作,用户程序中同一线圈只能使用一次,。,ON,Q0.0,1,0,OFF,0,Q0.0,1,3.3 位逻辑指令3.3.1 触点类型OFF1I0.0ON,8,位装载(加载)指令(LD/LDN):表示一个梯形图网络的开始,即电路的开始,LD (LOAD):,位装载指令,对应梯形图从左侧母线开始,,连接常开触点,,即常开触点与左母线相连接,LDN(LOAD NOT):,位装载指令,对应梯形图从左侧母线开始,,连接常闭触点,,即常闭触点与左母线相连接,1、标准触点指令,A(AND,与):,常开触点与其他程序段相串联,AN(与非):,常闭触点与其它程序段相串联(取反后与),O(OR,或):,常开触点与其他程序段相并联,ON(或非):,常闭触点与其它程序段相并联(取反后或),例1:,LD,I0.0,A M0.0,AN I0.1,= Q0.0,LDN,I0.2,O Q0.1,ON M0.1,A I0.3,= Q0.1,由LAD转化成STL:,位装载(加载)指令(LD/LDN):表示一个梯形图网络的开始,9,LD I0.0,AN I0.1,O I0.2,A I0.3,ON C5,= Q0.3,= Q1.4,AN I3.4,= Q2.6,例2:由梯形图写出语句表,例3:复位脉冲的产生(上升沿检测),I0.1,M3.1,M0.0,I0.1,M3.1,I0.1,M0.0,T,T,M0.0,LD I0.0= Q0.3例2:由梯形图写出语句表例3,10,问题提出:在实际系统中不但要求能够进行程序设计,有时还需,能够读懂他人编写的程序,在编制程序时,还会出现多个分支电,路同时受一个或一组触点控制的情况,如图:,2、堆栈的基本概念,5-8班,?利用前面讲的触点串并联指令能不能,将这样的梯形图转换成语句表,于是出现堆栈指令,堆栈的基本,概念:,S7-200有一个9位的堆栈,栈顶用来存储逻辑运算结果,下面8位用来存储,中间运算结果。堆栈按“先进后出”的原则存取。,LD,(LDN),将指定地址中的位数据,(取反后),装入堆栈的栈顶(每执行一次,LD(LDN)压栈一次);举例:,执行A/O,(AN/ON),指令时均与栈顶中2#数据,(取反后),相与/或操作并将结,果存入栈顶。,与堆栈相关的指令有:ALD 、OLD、LPS、LRD、LPP、LDS n,问题提出:在实际系统中不但要求能够进行程序设计,有时还需2、,11,4、栈装载与(ALD)(块串联),3、栈装载或(OLD)(块并联),OLD,-OR LOAD:指电路块并联连接,ALD,-AND LOAD:指电路块串联连接,1,2,3,4,5,串联电路块: 两个或以上触点的串联电路,1 、2,并联电路块: 两个或以上触点的并联电路,4,由LAD转化成STL:,首先完成电路块内部的触点串并联操作(每个电路块的开始触点使用LD/LDN,深度加1);,然后再块与/或操作,此时堆栈深度减1,电路块: 两个或以上触点经过串联或并联后,组成的结构。分为:,4、栈装载与(ALD)(块串联)3、栈装载或(OLD)(块并,12,1,2,3,4,5,LD I0.0,AN I0.1,LDN I2.1,A I3.4,LDN T37,A I2.5,OLD,ALD,O Q1.7,= Q3.0,1,5,4,3,2,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,1,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,堆栈:,执行OLD前后:,x,iv6,iv5,iv4,iv3,iv2,iv1,iv0,3,执行后:,iv6,iv5,iv4,iv3,iv2,iv1,iv0,1,2,执行前:,执行ALD前后:,x,iv6,iv5,iv4,iv3,iv2,iv1,iv0,5,执行后:,iv6,iv5,iv4,iv3,iv2,iv1,iv0,3,4,执行前:,OLD/ALD指令:,无操作数,每执行一次电路块的串或并联操作堆栈深度减1,X:不确定值,iv6,iv5,iv4,iv3,iv2,iv1,iv0,1,I2.1,1234 5LD I0.0LDN I2.,13,LD I0.0,O Q2.5,AN I2.3,LDN M4.5,O Q0.3,A T1,LDN M5.6,AN C5,OLD,ALD,O M3.2,= Q0.3,1,3,2,4,总结:,每执行一条LD/LDN指令或增加一条LD/LDN指令开始的电路块内部的运算结果,堆栈中就增加一个数据,堆栈深度加1;,每执行一条ALD/OLD指令堆栈深度减1;,简记: 执行LD/LDN指令堆栈深度加1;,执行ALD/OLD指令堆栈深度减1,思考:,一个LAD中电路块个数是否有限制?,块数9,堆栈只有9层,9会丢失数据,LD I0.01324总结: 思考:块数9堆栈只,14,逻辑入栈 LPS: Logic Push,分支电路开始指令。用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,从堆栈使用上讲,LPS指令,复制,栈顶的值,并,将,其压入,堆栈的下一层,,,栈中,原,来的数据,依次,向下一层推移,,栈底值被推出丢失,注意:,本指令为分支的开始,,以后必须有分支结束指令LPP,即LPS与LPP指令必须成对出现。,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,入栈前:,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,iv0,入栈后:,栈底值丢失,5、其他堆栈操作指令,1-4班,LPS 、LPP、LRD 、 LDS n,适用场合:多分支电路同时受控于一个触点或一组触点的情况,如图,LPS,逻辑入栈 LPS: Logic Push分支电路开始指令。,15,逻辑出栈 LPP: Logic Pop,在梯形图分支结构中,LPP用于LPS产生的新母,线右侧的组后一个从逻辑块编程,它在读取完,离它最近的LPS 压入堆栈内容的同时复位该条,新母线。,从堆栈使用上讲,使栈中,各层,的数据,依次上,移,一层,,第二层,的数据成为新的栈顶值,,原栈顶,值消失。,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,出栈前:,x,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,出栈后:,栈顶值丢失,注意:,最后一条分支用LPP,必须出现在LPS的后面,与LPS成对出现。,LPP,逻辑出栈 LPP: Logic Pop在梯形图分支结构,16,逻辑读栈,LRD: Logic Read,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,读栈前:,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv1,读栈后:,在梯形图分支结构中,当新母线左侧为主逻辑块,时,LPP开始右侧的第一个从逻辑块编程,LRD开,始右侧的,第二个及其以后(最后一个除外),的从,逻辑块编程。,从堆栈使用上讲,LRD指令将堆栈中,第2层,的数据,复制到栈顶,(即LRD读取最近的LPS压入堆栈的内容)。,第2,9层,的数据,不变,原栈顶值消失,LRD,装载堆栈 LDS n: Load Stack (,n=18),LDS指令:复制堆栈内第n,层的值到栈顶。,栈中原来的数,据依次向下一,层推移,,栈底,值被推出丢失,例: LDS 4,iv8,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,执行前:,iv7,iv6,iv5,iv4,iv3,iv2,iv1,iv0,iv4,执行后:,不,变,逻辑读栈 LRD: Logic Readiv8iv7i,17,LPS、LPP、LRD适用场合:,多分支电路同时受控于一个触点或一组触点的情况,LPS/LPP必成对出现,A,B,C,LD I0.2,A I0.0,LPS,AN I0.1,= Q2.1,LRD,A I0.5,= M3.7,LPP,AN I0.4,= Q0.3,分支开始(即指令第一条)用LPS压栈;,分支结束(即最后一条指令)用LPP出栈;,中间的所有分支用LRD指令,即:分支数=2只需LPS、LPP;,分支数,3需LPS、LPP、LRD指令,LPS、LPP、LRD适用场合:LPS/LPP必成对出现AB,18,LD I0.0,LPS,A I0.1,LPS,A I0.2,= Q0.0,LRD,A I0.3,= Q0.1,LPP,AN I0.4,= Q0.2,LPP,A I0.5,= M3.1,A,B,说明:用编程软件将梯形图转化成语句,表程序时,系统会自动加入LPS、LPP和,LRD指令。但写语句表程序时用户必须,自己写入LPS、LPP和LRD指令。,1,2,3,1,2,A,B,LD I0.0AB说明:用编程软件将梯形图转化成语句12,19,课堂作业:,LD I0.0,LPS,LD I0.5,O I0.6,ALD,= Q0.1,LRD,LD I2.1,O I1.3,ALD,= Q0.2,LPP,A I1.0,= Q0.3,LD I0.0,O I2.2,LDN I0.1,LD I2.1,A I2.0,OLD,ALD,= Q0.0,课堂作业:LD I0.0,20,6、立即触点指令,只用于输入量I,常开立即触点指令:LDI、AI、OI 符号:I,常闭立即触点指令:LDNI、ANI、ONI 符号:/I,立即触点并不依赖于S7-200的扫描周期刷新,它会立即刷新。在指令执行时:立即读入物理输入点的值,依据该值决定触点的接通或断开状态,,但并不更新该物理输入点对应的输入过程映像寄存器。,当物理输入点状态为1时,常开立即触点闭合;,当物理输入点状态为0时,常闭立即触点闭合。常开立即指令LD、AND或OR将物理输入值存入栈顶,而常闭立即指令LD、AND或OR将物理输入的值取反,再存入栈顶。,LDI I0.0,OI I0.2,ANI I0.1,= Q0.0,6、立即触点指令 只用于输入量I常开立即触点指令:LD,21,3.3.2 输出指令与其他指令,1、输出( = ) 与线圈相对应,输出指令将栈顶值复制到对应的映像寄存器,输出指令应放在梯形图右边。如:,若驱动线圈的触点电路接通时,线圈,流过“能流”,指定位对应的映像寄存,器为1,反之为0,当立即输出指令执行时,物理输出点立即被置为能流值。,在STL中,立即指令将栈顶的值立即复制到物理输出点的指定位上。,“I”表示立即,当指令执行时,新值会同时被写到物理输出和相应,的输出过程映象寄存器。,这一点不同于非立即指令,只把新值写入过程映象寄存器。,2. 立即输出(=I),只用于输出量(Q),当指令执行时,立即输出指令(=I)将新值同时写到物理输出点和相应,的过程映象寄存器中,3.3.2 输出指令与其他指令1、输出( = ) 与线圈相对,22,(1)S,置位指令,(2)R,复位指令,置位即置1,复位即置0,R/S比成对出现 可互换次序,置位和复位指令可以将位存储区的某一位开始的一个或多个,(最多可达255个)同类存储器位置1或置0,这两条指令在使用时需指明三点:,操作性质、开始位和位的数量。,应用场合:多用于输出位Q、定时器/计数器位,各操作数类型及范围如表4.6所示。,3. 置位和复位指令,(1)S,置位指令 3. 置位和复位指令,23,将位存储区的指定位(位bit)开始的,N个,同类,存储器位置,1,并,保持,。,用法:S bit, N,例: S Q0.0,1,网络,1,LD I0.0,S Q0.0, 1,网络,2,LD I0.1,R Q0.0, 1,R/S指令特点:,记忆保持功能,记忆功能,除非有复位脉冲,否则一直为1,除非有置位脉冲,否则一直为0,(1)S,置位指令,(2)R,复位指令,将位存储区的指定位(位bit)开始的,N个,同类,存储器位置,0,并,保持,。,当用复位指令时,若对Txxx位或Cxxx位,进行复位,则Txxx位或Cxxx位被复位,,同时,定时器或计数器的当前值被清零。,用法:R bit, N,例: R Q0.2,3,应用举例:1、2,将位存储区的指定位(位bit)开始的网络1R/S指令特点,24,用立即置位/,复位,指令访问输出点时,从指令所指出的位(bit),开始的N个(最多为128个)物理,输出点,被立即置位/,复位,,同时,相应的输出映像寄存器的内容也被刷新。,(3)SI/,RI,,立即置位/,复位,指令,只用于输出量Q,用法:SI bit, N,RI bit, N,例: SI Q0.0,2,RI Q0.0, 1,LD I0.0,= Q0.0,=I Q0.1,SI Q0.2,1,LDI I0.0,= Q0.3,用立即置位/复位指令访问输出点时,从指令所指出的位(bit),25,置位优先触发器(SR)是一个置位优先的锁存器。,当置位信号(S1)和复位信号(R)都为1时,输出为1,。,复位优先触发器(RS)是一个复位优先的锁存器。,当置位信号(S)和复位信号(R1)都为1时,输出为0,。,Bit参数用于指定被置位或者复位的布尔参数。,4、RS触发器指令,0,0,0,0,1,1,1,1,1,0,置位优先触发器(SR)是一个置位优先的锁存器。4、RS触发器,26,2) 边沿触发指令 EU/ED,无操作数,上升沿触发指令:EU,下降沿触发指令:ED,正跳变指令,一旦发现有正跳变发生(由0到1),该栈顶值被置为1,否则置0,负跳变指令,一旦发现有负跳变发生(由1到0),该栈顶值被置为1,否则置0 例:,6、其他指令,1)取反(NOT):,无操作数,对栈顶取反,将改变能流输入的状态(也就是说,它将栈顶值由0变为1,由1变为0),在EU指令前有一个上升沿时(,由01,),就产生宽度为一个扫描周期的脉冲,驱动后面的输出线圈。即在上升沿使触点闭合一个扫描周期,在ED指令前有一个下降沿时(,由10,),就产生宽度为一个扫描周期的脉冲,驱动其后线圈。即在上升沿使触点闭合一个扫描周期,3)空操作指令 NOP,作用:延时(稍微延长扫描周期的长度),NOP N 不影响程序的执行,操作数N=0255 N指执行空操作的次数,2) 边沿触发指令 EU/ED 无操作数上升沿触发指令:E,27,例:画出该电路的时序图,LD I0.0,EU,= M0.0,LD M0.0,S Q0.0,1,LD I0.1,ED,= M0.1,LD M0.1,R Q0.0 ,1,例:画出该电路的时序图LD I0.0,28,3.4 定时器与计数器指令,S7-200PLC提供三种分辨率(也称时基、时间增量、精度):,1ms、10ms及100ms的定时器,实质上,,不是累计时间,而是,累计时间增量,进行计时的,比如:10ms定时器 每隔10ms就发出一个信号,该信号对当前值加1,故也,说定时器是对,分辨率,进行,计数,。,3.4.1定时器指令,用来实现时间控制,类似:时间继电器,定时器在编程时提前输入时间预设值,在运行时当定时器的输入条件满足是开始,计时,当前值从0开始按一定的时间单位增加,当定时器的当前值达到预设值时,定时器发生动作,PLC响应而做出相应的动作。此时它对应的常开触点闭合,常,闭触点断开。利用定时器的输入输出触点就可得到控制所需的延时时间。,定时器是对内部时钟累计,时间增量,计时的。每个定时器均有:,定时时间=分辨率,预设值,一个,16位,的当前值寄存器用以存放当前值;,(16位符号整数,最大值32767),一个,16位,的预置值寄存器用以存放时间的设定值;,一位,状态位,反应其触点的状态。,3.4 定时器与计数器指令S7-200PLC提供三种分辨率,29,定时器类型,时基标准/ms,最大定时值/s,定时器编号,有记忆的通电延时型,TONR,1,32.767,T0、T64,10,327.67,T1T4、 T65T68,100,3276.7,T5T31、 T69T95,通电延时/断电延时TON/TOF,1,32.767,T32、 T96,10,327.67,T33T36、 T97T100,100,3276.7,T37T63、 T101T255,TON:单一时间间隔的定时 如:十字路口交通灯控制,TOF用于设备停机、故障时间后的延时如:电机停止后再过5s冷却风机停止、电磁炉风扇,TONR用于累计许多的时间间隔(多段不连续时间进行累计) 如:象棋比赛,对某个定时器而言采用哪种分辨率是有定时器,编号决定,的,如表所示:,定时时间3276.7s,怎么办?,多个定时器组合或用计数器扩展定时器的定时时间范围,S7-200系统提供三种定制器指令:,定时器类型时基标准/ms最大定时值/s定时器编号132.76,30,1、接通延时定时器 TON,使能端(IN)接通时,T37开始计时,当前值从0开始递增,当前值,设定值时,,Txxx位,为ON,,但当前值,仍继续,增加直到最大值32767为止。,使能端无效,T37自动复位,当前值清0,状态位OFF。,等价于:R,Txxx,,1 (,Txxx,位和当前值均清零),若I0.0接通时间未到设定值就断开,当前值则立即复位,Q0.0不会有输出。,用于通电后,单一时间间隔,的定时,如:走廊灯每隔5s断开一次、十字路口交通灯,I0.0,( ),Q0.0,T37,T,37,IN,TON,PT,100ms,+100,LD I0.0,TON T37,100,LD T37,= Q0.0,10s,1、接通延时定时器 TON使能端(IN)接通时,T3,31,2、断开延时定时器,TOF,使能端(IN)有效时, Txxx位立即置1,而当前值被清0;,使能端(IN)断开时,开始计时,当前值从0递增,当前值,=预置值时, Txxx位复位为0,,停止计时,当前值保持不变,当输入端再次由断开到接通时,定时器位ON,当前值0,如果输入断开的时间预定时间,定时器仍保持接通。使能,端IN 再接通时,定时器当前值仍设为0。,(可以R指令复位 Txx,使Txx位和当前值清零),用,于断电后单一时间间隔的定时。,即在输入断开后延时一段时间,才断开输出,。,多用于设备停机、故障时间后的延时,如:电机关闭后再过5s才使冷却风机停止、电磁炉风扇,I0.0,( ),Q0.0,T37,T,37,IN,TOF,PT,100ms,+30,LD I0.0,TOF T37,30,LD T37,= Q0.0,3s,2、断开延时定时器 TOF 使能端(IN)有效时,,32,3、保持型接通延时定时器,TONR,多个时间间隔的累计定时,(对多段不连续时间进行累计),如:象棋比赛,从参赛者思考就开始计时,使能端(IN)输入有效(接通)时,定时器开始计,时,当前值递增,当前值预置值(PT)时,输出,状态位置1,当前值继续增直到最大值32767,使能端输入无效(断开)时,Txx和,当前值均保持,(记忆);,使能端(IN)再次接通有效时,在原记忆,值的基础上递增计时。,I0.0,( ),Q0.0,T3,T,3,IN,TONR,PT,100ms,+100,LD I0.0,TONR T3,100,LD T3,= Q0.0,t,1,t,2,t,1,+t,2,=10s,3、保持型接通延时定时器 TONR多个时间间隔的累计定,33,说明:上电或首次扫描周期所有定时器位清零,TON、TOF当前值也清0,TONR当前值保持掉电前的值,区别:,TONR只能用R指令才能使定时器当前值和定时器位均,清零,否则一直保持;,TON使能端无效或R指令均可使当前值和定时器位清零,I0.0,( ),Q0.0,T3,T,3,IN,TONR,PT,100ms,+100,( ),T3,I0.1,R,1,LD I0.0,TONR T3,100,LD I0.1,R T3,1,LD T3,= Q0.0,TONR型定时器具有记忆保持功能,如何给定时器位和当前值清零操作?,说明:上电或首次扫描周期所有定时器位清零 区别:I0.0(,34,定时器指令的工作规律:,等价于R指令,只能用R指令,Txx=0,当前值清零,TON与TOF:在同一程序中不能共享相同的定时器 如:不能同时对T37使用TON和TOF,定时器指令的工作规律:等价于R指令只能用R指令TON与TOF,35,应用实例1:,延时接通/延时断开电路,用I0.0控制Q0.1,I0.0的常开触点接通后,T37开始定时,9s后T37的常开触点,接通,使Q0.1变为ON,I0.0为ON时其常闭触点断开,使T38复位。I0.0变为OFF,后T38 开始定时,7S后T38的常闭触点断开,使Q0.1变为OFF,T38亦被复位。,接通,断开,对比电路图 P,58,延时接通延时断开电路,返回,I0.0,( ),Q0.1,T37,T,37,IN,TON,PT,100ms,+90,Q0.1,T,38,IN,TON,PT,100ms,+70,Q0.1,I0.0,T38,起保停电路 P55,幻灯片55,时序图如下:,应用实例1:延时接通/延时断开电路用I0.0控制Q0.1,I,36,应用实例2:,闪烁电路 (也称振荡电路),T,37,常开触点,Q,0,.,0,3,s,T,38,常开触点,I,0,.,0,2,s,灭,灭,亮,CPU221,I0.0,1M,2M,L+,DC24V,1L,Q0.0,SB1,AC220V,L,用I0.0控制灯L,使之灭2s亮3s,设计所需电路,画出时序图,分析该系统如何实现闪烁控制的,LD I0.0,AN T38,TON T37,20,LD T37,TON T38,30,= Q0.0,振荡电路实际上就是一个时钟电路,它可以是等间隔的通断,,也可以是不等间隔的通断。,I0.0,( ),Q0.0,T37,T,37,IN,TON,PT,100ms,+20,T,38,IN,TON,PT,100ms,+30,T38,应用实例2: 闪烁电路 (也称振荡电路)T37常开触点Q0.,37,编写循环灯程序,按下启动按钮I0.0时,三只灯每隔1秒轮流闪亮,并循环。,按下停止I0.1时,三只灯都灭。三只灯分别用:Q0.0、Q0.1、Q0.2控制,启动按钮:I0.0 停止按钮:I0.1,应用实例3:循环灯控制电路,编写循环灯程序,按下启动按钮I0.0时,三只灯每隔1秒轮流闪,38,3.4.2计数器指令,S7-200PLC提供:,CTU加计数器,,CTUD加/减计数器,CTD减计数,计数器利用输入脉冲,上升沿,累计输入脉冲的个数。,组成:一个16位的预置值寄存器;一个16位的当前值寄存器;一位状态位组成。,当前值寄存器用以累计脉冲个数,计数器当前值预置值时,状态位置1。,即在堆栈中的位置是固定的,故在梯形图中它们的位置不能颠倒,3.4.2计数器指令 S7-200PLC提供:计数器利用,39,1、加计数器,首次扫描时Cxxx位为OFF,当前值=0,栈顶?,R,I0.0,( ),Q0.0,C3,C,3,CU,CTU,PV,4,I0.1,当R=0,且加计数脉冲CU端有上升沿输入即 时,计数器当前值加1,每来一个,脉冲当前值就加1。当计数器当前值,设定值(PV)时,该计数器的状态,位,C-bit置1,,则其常开触点闭合。此时,计数器,仍计数,,但不影响计数器,的状态位,直至计数达到最大值(32767)。,当R=1,(或用复位指令R),时,计数器复位,即当前值清零,状态位C-bit也清零。,加计数器计数范围:0,32767。,LD I0.0,LD I0.1,CTU C3,4,LD C3,= Q0.0,1、加计数器首次扫描时Cxxx位为OFF,当前值=0栈顶?,40,采用光电开关检测药片,每检测到100粒药片后自动发出换瓶指令。,设光电开关输入信号连接I0.1,换瓶信号由Q0.1发出,则对应的PLC,程序如下图所示:,CTU应用实例:,药片自动数粒装瓶控制,LD I0.1,LD I0.2,CTU C40,100,LD C40,= Q0.1,I,0,.,1,I,0,.,2,100,CU CTU,R,PV,C,40,( ),Q,0,.,1,C40,在系统正式工作前,首先将加计数器清零,然后I0.1每检测到一片药,片,加计数器自动加1,当计数器的当前值等于预设值100时,加计数,器位得电使Q0.1得电发出换瓶信号。,换瓶结束通过I0.2使加计数器复位,即可进入下一瓶的计数装瓶工作,采用光电开关检测药片,每检测到100粒药片后自动发出换瓶指令,41,2、减计数器(CTD),首次扫描时Cxxx位为OFF,当前值=预设值,等价于LD=1或R指令作复位操作,当复位LD有效时,LD=1,计数器把设定值(PV)装入当前值寄存器,,计数器状态位复位(即Cxxx=0)。,当LD=0,且减计数脉冲CD有效 时,开始计数,CD端每来一个输入,脉冲上升沿,减计数的当前值从设定值开始减1计数,当,前值减到0时,停止计数,并保持为0 ,此时Cxxx=置1,栈顶?,2、减计数器(CTD)首次扫描时Cxxx位为OFF,当前值=,42,上例药片自动数粒装瓶控制,也可采用减计数器指令来控制,其对应的,PLC程序如下图所示:,CTD应用实例:,LD I0.1,LD I0.2,CTU C20,100,LD C20,= Q0.1,I,0,.,1,I,0,.,2,100,CD CTD,LD,PV,C,20,( ),Q,0,.,1,C20,在装瓶计数之前,首先通过I0.2使减计数器的预置值装载至当前值,当,I0.1检测到药片到来后,减计数器减1,直到减计数器的当前值减到0时,减计数器位置1,换瓶信号Q0.1得电。,上例药片自动数粒装瓶控制,也可采用减计数器指令来控制,其对应,43,3、加减计数器(CTUD),I,0,.,1,I,1,.,1,C,30,当前值,0,1,4,0,3,2,3,I,1,.,2,4,5,5,4,首次扫描时Cxxx位为OFF,当前值=0,当R=0时,且计数脉冲有效即:,当CU端(CD端)有上升沿输入时,计数器当前值加1(减1)。,当计数器当前值设定值PV时,C-bit置1,即其常开触点闭合。,当R=1有效(或用复位指令R)时,计数器复位,即当前值清零,Cxxx=0,加减计数器计数范围:32767,32767,当CTUD达到最大值32767后下一个CU上升沿将使计数值变为最小值-32767 .,同样,达到最小值-32767后下一个CD上升沿将使计数值变为最大值32767 .,3、加减计数器(CTUD)I0.1I1.1C30当前值014,44,定时器和计数器的应用和扩展:,1、PLC的定时范围:,(2)定时器与计数器的串联组合:,PLC的定时范围是一定的,S7-200PLC中,单个定时器的最大定时范围是,32767分辨率(ms),实际系统中需要设定的定时时间会超过这个最大值,怎么办?,(1)定时器的串联组合:,T35延时T,1,=10s、T36延时T,2,=20s,总延时时间T=T,1,+T,2,=30s,推广:,n个定时器串联的总延时T=T,1,+,Tn,定时器和计数器的应用和扩展:1、PLC的定时范围:(2)定时,45,(2)定时器与计数器的串联组合:,设计长延时电路,产生一个时钟脉冲,10s,10s,称:脉冲信号发生器,10s,(2)定时器与计数器的串联组合:设计长延时电路产生一个时钟脉,46,T34定时时间10s,M0.0每10s接通一次,作为C10的计数脉冲,当“当前值”达到设定值PV=2000时,就已实现:,200010s=20000s的延时,改变PT和PV就可扩展任意长的定时时间,Cxxx每计数一次就意味着过去了10s,10s,C,10,当前值,Q,0,.,0,I,0,.,1,I,0,.,0,M,0,.,0,2000,分析该电路:,T34定时时间10s,M0.0每10s接通一次,作为C10的,47,2、计数器的计数范围:,S7-200PLC中,单个计数器的计数次数是一定的,其最大计数范围是,32767,实际系统中可能需要设定的计数值超过这个最大值。,怎么办?,计数器串联组合的方式来扩大计数范围,当C10达到设定值2000时,对C12的输入脉冲I0.0的计数次数已达到10002000次了,C10每计数一次,C12对输入脉冲就已计数1000次,M0.0,I0.0,1000,M0.0,I0.1,I0.1,( ),C12,C12,CU,PV,CTU,R,M0.0,2000,C10,CU,PV,CTU,R,Q0.0,( ),C10,2、计数器的计数范围:S7-200PLC中,单个计数器的计数,48,计数器应用举例:,产品数量检测,产品通过检测器,PH,机械手,KM1,KM2,传送带电机,如图所示,传输带传输工作,用传检器检测通过的产品数量,每24个产品机械手动作1次。机械手动作后延时2秒,将机械手电磁铁切断复位。,PLC的I/O分配:,I0.0 传送带起动按钮,I0.1传送带停机按钮,I0.2 产品通过检测器PH,Q0.0传送带电机KM1,Q0.1机械手KM2,T37定时器,定时2秒,C10计数器,初始值24,计数器应用举例:产品数量检测产品通过检测器PH机械手KM1K,49,/电机起动后,在计数器的复位端产生宽度为一个扫描周期的正脉冲,使C20和T37复位,/起、停传送带电机,程序如下:,/每检测到一个产品,I0.2产生一个正脉冲,使C20计一个数,/ C20每计24个数,机械手动作一次,/机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20复位后,Q0.1和T37也复位,Q0.0,Q0.0,I0.2,24,C20,T37,20,C20,Q0.1,( ),I0.0,I0.1,C20,CU,PV,CTU,R,( ),IN,PT,TON,T37,T37,P,Q0.0,/电机起动后,在计数器的复位端产生宽度为一个扫描周期的正脉,50,第四章 数字量控制系统梯形图程序设计方法,梯形图的经验设计,根据继电器电路图设计梯形图,顺序控制设计法,第四章 数字量控制系统梯形图程序设计方法梯形图的经验设计,51,4.1梯形图的经验设计,LD I0.0,O Q0.0,AN I0.1,= Q0.0,I0.0,I0.1,Q0.0,4.1.1起动保持停止电路(起保停电路),特点:具有记忆功能,经验设计法:,在一些,经典电路,的基础上,根据被控对象对控制系统的具体要求,不断地修改和完善梯形图,有时需多次反复地调试和修改、增加一些中间编程元件和触点,最后才能得到一个较为满意的结果。,先介绍一些常用的基本电路 4.1.1,4节,起/停按钮SB1、SB1属点动按钮,持续为ON的时间一般都很短,连续控制,实际工厂中:利用点动按钮完成对外部器件的连续控制,如:电机起停控制,用自身的辅助触点构成的电路,来保证输出线圈处于导通状态,即“自锁”或“自保持”功能,类似S/R指令,返回,CPU221,I0.0,I0.1,1M,2M,L+,DC24V,1L,Q0.0,SB1,SB2,AC220V,KM,4.1梯形图的经验设计LD I0.0I0.0I0.1Q0,52,能否设计一个既能实现连续,又能实现点动控制的电路?,将起保停和点动电路,并联,来,控制Q0.0,如图:,连续控制,(),I0.2,Q0.1,点动控制,点动控制:,分析:,假定该电路处于连续控制状态,对I0.2的操作对Q0.0有影响?,能否实现从连续到点动状态的自动切换?,不能,实际使用时,必告之用户操作过程,(即若实现点动控制必须先按下I0.1停止连续控制,再按下I0.2就可实现点动控制) 对用户来说麻烦,从设计者角度考虑:,如何实现从连续到点动状态的自动切换,(点动控制应能切断连续控制,故I0.2常闭串在连续控制电路中即可切断),该电路实现从连续到,点动状态的自动切换,能否实现从连续到点动状态的自动切换?,电路不唯一,I0.2,( ),I0.0,I0.1,Q0.0,Q0.0,能否设计一个既能实现连续连续控制()I0.2Q0.1点动控制,53,延时接通/延时断开电路:,同样功能采用可不同设计思想,如:电路图,P,36,延时接通延时断开电路,再如:下页电路图 试分析其功能,I0.0,( ),Q0.0,T37,T,37,IN,TON,PT,100ms,+70,T,38,IN,TOF,PT,100ms,+40,T38,T,37,位,T,38,位,7,s,Q,0,.,0,I,0,.,0,4,s,接通,断开,延时接通/延时断开电路:同样功能采用可不同设计思想I0.0(,54,该电路实现功能: 延时接通延时断开,课堂作业:,分析并画出时序图:,I0.0,( ),Q0.0,I0.0,T,37,IN,TON,PT,100ms,+50,T,38,IN,TOF,PT,100ms,+30,T37,T38,Q0.0,T,37,位,Q,0,.,0,I,0,.,0,T,38,位,5,s,3,s,接通,断开,闪烁电路、脉冲信号发生器、定时器组合或定时器与计数器组合延长定时时间等,这些常见电路要记住,该电路实现功能: 延时接通延时断开课堂作业: 分析并画出时序,55,功能:,可自动清零的计数器,C2实现循环计数,每计数4次就重头开始计数,例:生产现场包装产品,每n个产品将打包装箱,这样就需对生产线上产品进行计数,I0.0用来统计产品个数,每计数n个则Q0.0就有一个脉冲信号,该信号引发打包动作,R,I0.0,( ),M0.0,C2,C,2,CU,CTU,PV,4,M0.0,0,1,4,3,2,1,4,3,2,I,0,.,0,C,2,当前值,0,M,0,.,0,即,C,2,位,分析该电路实现的功能:,功能:可自动清零的计数器C2实现循环计数,每计数4次就重头开,56,4.3 顺序控制设计法与顺序功能图,用经验法设计存在的问题:,设计方法很难掌握,设计周期长。,装置交付使用后维修困难。,4.3.1,顺序控制设计法:,顺序控制是,按照生产工艺预先规定的顺序,,在各个输入信号的作用下,根据内部状态和时间顺序,在生产过程中各个执行机构,自动地有秩序地,进行操作。,顺序控制设计法又称步进控制设计法。,比如:机械手搬运物件、,运料小车、,信号灯闪烁控制等,A,B,4.3 顺序控制设计法与顺序功能图用经验法设计存在的问题:,57,顺序控制设计法最基本的设计思路:,将系统的一个,工作周期T,划分为,若干个顺序相连的阶段,(称为步:Step),用,编程元件,代表各个阶段(即,各步,);,利用,转换条件,控制代表,各步的编程元件,;,利用代表各步的,编程元件,控制PLC的,各输出位,。,说明:,步是根据输出量的状态变化来划分的,,在任何一步内,各输出量的ON/OFF状,态不变,但相邻两步输出量总的状态,是不同的。,顺序控制设计法的本质:,经验设计法是试图用输入信号,I直接控制,输出信号,Q,即:Ix.y Qx.y,顺序控制设计法则是用输入量,I控制,代表各步的,编程元件(如Mx.y),再用,它们控制,输出量,Q,;,而步是根据输出量Q的状态划分的;,简记:,Ix.y Mx.y Qx.y,Sx.y,控制,控制,控制,顺序控制设计法:,首先根据系统的工艺流程画出SFC,然后根据SFC设计出LAD.,顺序控制设计法最基本的设计思路:将系统的一个工作周期T划分,58,顺序功能图(SFC):,组成:步、有向连线、转换、转换条件和动作(或命令),M0.0,M0.1,M0.2,M0.3,Q0.0,Q0.1,Q0.1,SM0.1,I0.0,I0.1,I0.2,I0.3,步,动作,转换条件,转换,有向连线,将系统的一个,工作周期T,划分为4,个顺序相连的步(Step),用编程元件Mx.y代表各步;,利用转换条件控制代表各步的编,程元件;,利用代表各步的编程元件控制,PLC的各输出位。,简记:,Ix.y Mx.y Qx.y,控制,控制,顺序功能图(SFC):组成:步、有向连线、转换、转换条件和动,59,4.3.2 步与动作,步1,步3,步2,初始步,例1:,锅炉控制中对鼓风机和引风机的要求,如图所示,按下启动按钮I0.0先开引风机延时12s后开鼓风机;按下停止按钮I0.1,后先停鼓风机10s后再停引风机,根据步的划分验证之:,!,该系统将一个工作周期分成四步,步的划分:依据输出量Q的状态变化来划分的,其原则是:,任何一步之内各输出量的状态是保持不变的,相邻两步输出量总的状态是不同的,步:是控制系统中的一个相对不变的性质,对应于一个,稳定,的状态,初始步:对应控制系统的初始状态,是系统运行的起点。,一个控制系统应至少有一个初始步。用,双线框,表示。,M0.0,M0.1,M0.2,M0.3,引入:编程元件 Mx.y,代表各步,并作,为步的编号,,亦可用数字表示,12s,10s,I0.0起动,Q0.1,I0.1停机,Q0.0,引风机,鼓风机,1,1,1,1,显然:,在每一步之内,各中间变量Mx.y的状态是保持不变的.如:,M0.0仅在初始步为1,M0.1仅在步1为1其它均0,系统的执行顺序:,初始步 步1 步2 步3,一个T内仅有一步为活动步其它均为不活动步,4.3.2 步与动作步1步3步2初始步例1:根据步的划分验证,60,5,动作A,动作B,5,动作A,动作B,或:,当系统处于某一步所在的阶段时,该步处于活动状态,称为“活动步”。,特点:,处于活动状态的步,相应的动作被执行;,如:步5为活动步时,动作 A和动作B均被执行,处于不活动状态的步,相应的 非存储型动作被停止,P55表4-1,存储型动作继续,(S),,直到动作被复位。,步表示:,用,矩形框,表示,框中,数据,是该步的,编号,,编号可以是该步对应的工步序号(用数字表示),,也可以是与该步相对应的编程元件(如:M0.2),动作:,活动步:,每一步所驱动的负载称,步动作,,简称动作,一个步表示控制过程中的稳定状态,可以对应一个或多个动作,这些动作可以在步的右边加上一个矩形框来表示,框中用简要的文字说明该步对应的动作。 如:,5动作A动作B5动作A动作B或: 步表示:用矩形框表,61,4.3.3 有向连线与转换条件,说明:在SFC中,只有当某一步的前级步为活动步时,该步才有可能变成活动步。,一个扫描周期内,有且仅有一步是处于活动状态同时其它步均为不活动状态。,如果SFC中没有活动步系统将无法工作,所以必须在开机时用一个,适当的信号,将初,始步置为活动步,这里用特殊寄存器位,SMO.1,作为,初始步的转换条件,PLC一上电在第一个扫描周期SM0.1=1,系统就自动地进入初始状态即初始步,1、有向连线:表明了各步成为活动步的先后次序和转移的方向,默认方向:,从上到下,和从左到右,这两个方向的箭头可以,省略,若设计时SFC太长,则必须中断有向连线,应在中断处表明下一步,的标号和所在页数。,2、转换:在两步之间的有向连线上用一段,短横线,来表示转换,转换将相邻的两步分隔开,,任何两步之间必有转换,3、转换条件:也称步进条件,指能够实现相邻两步状态转换的信号,即:使系统由当前步进入下一步的信号。,可以是外部的输入信号,如:按钮、开关等的接通或断开;,也可以是程序运行中产生的信号,如:T/C的常开或常闭触点;,还可以是若干个信号的逻辑运算的组合。,转换条件应标注在:表示转换的短横线,旁边,相邻两步之间的转换条件满足时,两步之间,自动,地切换得以实现。,4.3.3 有向连线与转换条件说明:在SFC中,只有当某,62,4.3.4 顺序功能图(SFC)的基本结构,有向连线可画可不画,特点:,每一步的后面仅有一个转换,每一个转换的后面只有一步,SFC的基本结构有:单序列、并联序列和选择序列,
展开阅读全文