第3章 PLC的基本控制功能及应用(1).ppt
学习目标,●掌握触点线圈指令、置位复位指令、正负跃变指令的格式及应用;●掌握定时器、计数器指令的格式及应用;●掌握位移位寄存器指令的格式及应用;●掌握跳转指令、子程序指令、顺序控制继电器指令的格式及应用。●掌握程序调试的步骤及方法。,学习内容,●布尔指令及应用,●定时器/计数器指令及应用,●位移位寄存器指令及应用,●程序控制指令及应用,3.1布尔指令及应用,布尔指令即位操作指令,是PLC常用的基本指令,运算结果用二进制数字1和0表示,可以实现基本的位逻辑运算和控制。,3.1.1触点线圈指令,1.触点指令触点指令代表CPU对存储器的读操作,常开触点和存储器的位状态一致,常闭触点和存储器的位状态相反。,⑴标准触点,,,⑵立即触点,立即触点指令不依赖于扫描周期的刷新。在指令执行时直接读取当前时刻物理输入点的值,但是并不更新过程映像寄存器。,,,,,,,,,,,触点指令的格式和功能,说明●梯形图程序的触点指令有常开和常闭触点两类,类似于继电-接触器控制系统的电器接点,可自由地串并联。●语句表程序的触点指令由操作码和操作数组成。在语句表程序中,控制逻辑的执行通过CPU中的一个逻辑堆栈来实现,这个堆栈有九层深度,每层只有一位宽度。语句表程序的触点指令运算全部都在栈顶进行。●表中操作数bit寻址寄存器I、Q、M、SM、T、C、V、S、L的位值。,,,,,,,,,,,,,,2.输出线圈指令,说明●输出线圈指令的操作数bit寻址寄存器I、Q、M、SM、T、C、V、S、L的位值。●输出线圈指令对同一元件(操作数)一般只能使用一次。,⑴输出将新值写入输出点的过程映象寄存器。⑵立即输出将新值同时写到物理输出点和过程映象寄存器。,,,例1触点串联指令编程,图3-1逻辑与操作编程举例,a)梯形图b)语句表,例2触点并联指令编程,图3-2逻辑或操作编程举例,a)梯形图b)语句表,继电接触器原理图,电机起保停控制,3.逻辑取反指令的格式和功能,说明取反指令(NOT)改变能流输入的状态。当能流到达取反指令时,停止向后传递能流;当能流未到达取反指令时,则向后提供能流。该指令在梯形图中编程时串联在需要取反的逻辑运算结果之后。,,,例3取反指令编程,图3-3逻辑取反指令操作编程举例,LDI0.0NOTQ0.0,网络1LDI0.0AI0.1Q0.0NOTQ0.1,,,网络2LDI0.2ONI0.3Q0.2,4.堆栈操作指令,采用梯形图程序指令编写程序时,程序由一系列图形组合而成,用户可以方便的根据需要进行编程(绘图)。但在使用语句表程序指令编程时,如遇复杂电路则将不能直接使用触点“与”或触点“或”指令进行描述,为此各种类型的PLC均有专门用于描述复杂电路的语句表指令,它们称为堆栈操作指令。,表3-4堆栈操作指令的格式及功能,⑴栈装载与对堆栈中第一层和第二层的值进行逻辑“与”操作,结果放入栈顶。执行完“栈装载与”指令之后,栈深度减1。,⑵栈装载或对堆栈中第一层和第二层的值进行逻辑“或”操作,结果放入栈顶。执行完“栈装载或”指令之后,栈深度减1。,⑶逻辑推入栈复制栈顶的值,并将这个值推入栈。栈底的值被推出并消失。,,⑷逻辑读栈复制堆栈中的第二个值到栈顶。堆栈没有推入栈或者弹出栈操作,但旧的栈顶值被新的复制值取代。,,⑸逻辑弹出栈弹出栈顶的值。堆栈的第二个栈值成为新的栈顶值。,,⑹装入堆栈复制堆栈中的第N个值到栈顶。栈底的值被推出并消失。,,例4电路块串联指令编程,,,图3-4逻辑块“或”操作编程举例,LDI0.0AI0.2LDNI0.1AI0.3OLDQ0.0,例5电路块并联指令编程,图3-5逻辑块“与”操作编程举例,LDI0.0ONI0.1LDI0.2OI0.3ALDQ0.0,a)梯形图b)语句表,例6堆栈操作指令编程,图3-9逻辑堆栈操作指令编程举例,a)梯形图b)语句表,逻辑堆栈示例一,逻辑堆栈示例二,3.1.2置位复位指令,1.置位复位指令,Bit指定操作的起始位地址,寻址寄存器I、Q、M、S、SM、V、T、C、L的位值;N指定操作的位数,其范围是0~255,可立即数寻址,也可寄存器寻址(IB,QB,MB,SMB,SB,LB,VB,AC,*AC,*VD)当对同一位地址进行操作的复位、置位指令同时满足执行条件时,写在后面的指令被有效执行。,,,,,说明,(1)置位和复位将从指定地址(bit)开始的N个点置位或者复位。可以一次置位或者复位1~255个点。(2)立即置位和立即复位将从指定地址(bit)开始的N个点立即置位或者立即复位。可以一次置位或复位1~128个点。,触点示例,Q0.2Q0.7,Q1.1Q1.7,2.触发器指令,说明bit指定被操作的寄存器位,其寻址的寄存器是I,Q,M,V,S的位值。,,,,,,,RS触发器的指令真值表,RS触发器的应用示例,3.指令编程举例,(1)置位复位指令编程图3-6中的起保停程序可由置位复位指令编写,其对应的梯形图及语句表程序如图3-10所示。,图3-10置位复位指令实现的起保停程序,起动保持,停止,a)梯形图b)语句表,图3-6起保停程序,(2触发器指令编程,图3-11RS触发器指令操作编程举例,a)梯形图b)语句表,3.指令编程举例,3.1.3正负跃变指令,1.正负跳变指令当信号从0变1时,将产生一个上升沿(或正跳沿),而从1变0时,则产生一个下降沿(或负跳沿),如图3-12所示。,正负跃变指令格式和功能,该指令在程序中检测其前方逻辑运算状态的改变,将一个长信号变为短信号。,,,,2.正负跃变指令编程举例,图3-13一个按钮控制两台电动机依次启动的程序,a)梯形图b)语句表,3.2定时器/计数器指令及应用,定时器和计数器指令在控制系统中主要用来实现定时操作及计数操作。可用于需要按时间原则控制的场合及根据对某事件计数要求控制的场合。,接通延时定时器(TON)有记忆接通延时定时器(TONR)断开延时定时器(TOF),,,定时器号(Txxx)的选择范围0~255。定时器的分辨率1ms、10ms和100ms。,3.2.1定时器指令,说明,S7-200系列PLC的软定时器,对时间间隔进行记数,其定时时间等于分辨率与设定值的乘积。定时器的分辨率(时基)--决定了每个时间间隔的时间长短。分辨率有lms、l0ms和l00ms三种,取决于定时器号码。定时器的设定值和当前值均为16位的有符号整数INT,允许的最大值为32767。定时器的预设值PT可寻址寄存器VW、IW、QW、MW、SMW、SW、LW、AC、AIW、T、C、*VD、*AC及常数。,表3-9定时器的类型,1ms分辨率的定时器定时器位和当前值的更新与扫描周期异步。10ms分辨率的定时器定时器位和当前值在每个程序扫描周期的开始阶段被刷新。定时器位和当前值在同一个扫描周期内不会发生变化。100ms分辨率的定时器定时器位和当前值在指令执行时被刷新。,1.接通延时定时器(TON),,,①IN端的能流接通时,开始记时。②当前值Txxx≥预设值(PT分辨率),该定时器位被置位。③达到预设值后,定时器仍继续计时,一直到最大值32767。④IN端的能流断开时,TON的当前值被清除。,指令编程举例,图3-18TON定时器指令编程举例,a)梯形图程序b)语句表程序c)时序图,2.断开延时定时器(TOF),,IN端的能流接通时,定时器位立即接通,并把当前值设为0。IN端的能流断开时,定时器开始定时,直到达到预设值。达到预设值后,定时器位断开,并且停止计时当前值。,指令编程举例,,,图3-19TOF定时器指令编程举例,a)梯形图程序b)语句表程序c)时序图,3.保持型接通延时定时器(TONR),,IN端的能流接通时,开始记时;IN端的能流断开时,定时器停止计时,当前值则保持不变。当前值Txxx≥预设值(PT分辨率),该定时器位被置位。达到预设值后,定时器仍继续计时,一直到最大值32767。TONR定时器的复位只能用复位指令来实现。,指令编程举例,,图3-20TONR定时器指令编程举例,a)梯形图程序b)语句表程序c)时序图,总结,TON--用于单一间隔的定时。TONR--用于累计许多时间间隔。TOF--用于关断或者故障事件后的延时。,接通延时定时器的示例,,,断开定时器的示例,,,有记忆接通延时定时器的示例,,,3.2.2计数器指令,计数器利用输入脉冲上升沿累计脉冲个数。S7-200系列PLC有3类计数器加计数器CTU、减计数器CTD和加减计数器CTUD。,增计数指令(CTU)、计数器指令增/减计数指令(CTUD)减计数指令(CTD),,计数器号(Cxxx)的选择范围0~255。,1.加计数器CTU,1)指令格式及功能,,说明(1)CU为计数器的计数脉冲;R为计数器的复位;PV为计数器的预设值,取值范围在1-32767之间。(2)计数器的号码CXXX在0-255范围内任选。(3)计数器也可通过复位指令为其复位。,①当输入端(CU)的能流从低到高的上升沿时,递增计数。②当前值Cxxx≥预置值PV时,计数器位Cxxx被置位。③计数器的当前值递增到最大值(32767)后,计数器停止计数。④当复位端(R)接通能流,计数器当前值和计数器位均被复位。⑤执行复位指令,计数器当前值和计数器位均被复位。,2)指令编程举例,(1)药片自动数粒装瓶控制,2)指令编程举例,(2)计数器扩展程序,a)梯形图b)时序图图3-23计数器的扩展电路,2.减计数器CTD,1)指令格式及功能,,说明(1)CD为计数器的计数脉冲;LD为计数器的装载端;PV为计数器的预设值,取值范围在1-32767之间。(2)减计数器的编号及预设值寻址范围同加计数器。,①当输入端(CD)的能流从低到高的上升沿时,从当前值递减计数。②当Cxxx的当前值=0时,计数器位Cxxx被置位,计数器停止计数。③当装载输入端(LD)接通时,计数器位被复位,将计数器的当前值设为预置值PV。,2.减计数器CTD,2)指令编程举例,,图3-24减计数器指令编程举例,a)梯形图b)语句表,3.加减计数器CTUD,1)指令格式及功能,,说明(1)当计数器的当前值达到最大计数值(32767)后,下一个CU上升沿将使计数器当前值变为最小值(-32768);同样在当前计数值达到最小计数值(-32768)后,下一个CD输入上升沿将使当前计数值变为最大值(32767);(2)加减计数器的编号及预设值寻址范围同加计数器。,①CU端的能流由低到高时,增计数,CD端的能流由低到高时,减计数。②当Cxxx≥预置值PV时,计数器位Cxxx被置位。③CTUD对应的计数器当前值可以为负数。④当复位端(R)接通能流,计数器的当前值清零,计数器位则被复位。⑤执行复位指令,计数器的当前值清零,计数器位则被复位。,3.加减计数器CTUD,2)指令编程举例,,减计数器的应用示例,,,增/减计数器的应用示例,,,3.3位移位寄存器指令及应用,3.3.1位移位寄存器指令,,说明(1)S_BIT和N定义一个位移位寄存器。寄存器的长度为N;寄存器的移位方向由N的符号决定,N为正值寄存器左移(由低位向高位移动),N为负值寄存器右移(由高位向低位移动);寄存器的起始位由S_BIT指定,N为正时S_BIT为最低位,N为负时S_BIT为最高位。(2)DATA和S-BIT寻址I、Q、M、SM、T、C、V、S、L的位值;N为字节寻址,可寻址的寄存器为VB、IB、QB、MB、SB、SMB、LB、AC,也可立即数寻址。(3)移位指令影响特殊内部标志位SM1.1(移出移位寄存器的数据进入溢出标志位SM1.1),3.3位移位寄存器指令及应用,2.位移位寄存器指令编程举例,,图3-30移位寄存器编程举例,a)梯形图,b)语句表,c)工作时序图,编程应用,①I/O点的确定输入点停止按钮SB1、正转起动按钮SB2、反转起动按钮SB3、热继电器触点FR。输出点正转接触器的线圈KM1、反转接触器的线圈KM2。②I/O点的地址分配输入SB1-I0.0;SB2-I0.1;SB3-I0.2;FR-I0.3。输出KM1-Q0.0;KM2-Q0.1。,③PLC外部接线,④梯形图编程,,3.4程序控制指令及应用,程序控制指令的作用是控制程序的运行方向,如程序的跳转、程序的循环以及按步序进行控制等。在工程实践中常用来解决一些生产流程的选择性分支控制、并行分支控制等。,3.4.1跳转与跳转标号指令,1.指令格式及功能,,,说明(1)跳转标号n的取值范围是0255;(2)跳转指令及跳转标号指令只能用于同一程序段中,不能在主程序段中用跳转指令,而在子程序段中用跳转标号指令。,3.4.1跳转与跳转标号指令,2.指令编程举例设I0.3为点动/连动控制选择开关,当I0.3得电时,选择点动控制;当I0.3不得电时,选择连续运行控制。采用跳转指令控制的点动/连动控制程序如图3-35所示。,3.4.2子程序调用与子程序标号、子程序返回指令,将具有特定功能,并且多次使用的程序段作为子程序。当主程序调用子程序并执行时,子程序执行全部指令直至结束。然后返回到主程序的子程序调用处。子程序用于程序的分段和分块,使其成为较小的、更易于管理的块,只有在需要时才调用,可以更加有效地使用PLC。,3.4.2子程序调用与子程序标号、子程序返回指令,指令格式及功能(见表3-19),,,3.4.2子程序调用与子程序标号、子程序返回指令,说明1)子程序调用指令编写在主程序中,子程序返回指令编写在子程序中;2)子程序标号n的范围是0~63;3)子程序可以不带参数调用,也可以带参数调用。带参数调用的子程序必须事先在局部变量表里对参数进行定义,最多可以传递16个参数,参数的变量名最多为23个字符。传递的参数有IN、IN_OUT、OUT三类,IN(输入)是传入子程序的输入参数;IN_OUT(输入/输出)将参数的初始值传给子程序,并将子程序的执行结果返回给同一地址;OUT(输出)是子程序的执行结果,它被返回给调用它的程序。被传递参数的数据类型有BOOL、BYTE、WORD、INT、DWORD、DINT、REAL、STRINGL八种。4)在现行的编程软件中,无条件子程序返回指令(RET)为自动默认,不需要在子程序结束时输入任何代码。执行完子程序以后,控制程序回到子程序调用前的下一条指令。子程序可嵌套,嵌套深度最多为8层。,,,3.4.2子程序调用与子程序标号、子程序返回指令,2.指令编程举例1)不带参数子程序调用的编程,,a)主程序b)子程序0c)子程序1,图3-35不带参数子程序调用指令的编程,3.4.2子程序调用与子程序标号、子程序返回指令,2)带参数子程序调用的编程,,,3.4.3顺序控制继电器指令,在运用PLC进行顺序控制时常采用顺序控制指令,这是一种由顺序功能图设计梯形图的步进型指令。首先用顺序功能图描述程序的设计思想,然后再用指令编写出符合程序设计思想的程序。顺序控制指令可以将顺序功能图转换成梯形图程序,顺序功能图是设计梯形图程序的基础。,1.顺序功能图简介,一个三步循环步进的顺序功能图如图3-37所示。,2.顺序控制继电器指令,,,,说明1)顺序控制继电器位n必须寻址顺序控制继电器S的位。不能把同一编号的顺序控制继电器位用在不同的程序中,例如,如果在主程序中使用S0.1,则不能在子程序中再使用;2)在SCR段之间不能使用JMP和LBL指令,即不允许跳入或跳出SCR段。可以使用跳转和标号指令在SCR段内跳转;3)不能在SCR段中使用FOR、NEXT和END指令。,3.顺序控制继电器指令编程举例,红绿灯循环点亮控制1)红绿灯循环点亮控制要求按下起动按钮,红灯点亮1S后熄灭,同时绿灯点亮;绿灯点亮1S后熄灭,再点亮红灯,不断循环直至按下停止按钮2)绘制顺序功能图根据控制要求绘制红绿灯循环点亮的顺序功能图。,3.顺序控制继电器指令编程举例,3)编制梯形图程序,本章小结,本章介绍了S7-200系列PLC编程语言基本操作指令的格式、功能及应用。介绍了触点、线圈等一些基本概念。并通过上机实践进一步熟悉这些基本指令的应用。1.触点指令装载、与、或、非指令,可以实现电路的与、或、非运算,线圈指令、置位复位指令用于电路输出,正负跃变指令用于检测电路的上升下降沿,对于复杂的电路,引入了堆栈的概念,用来保存电路运算的中间结果,进行电路块的与、或运算,这些指令是PLC最常用的指令类型。在这一章中对这一部分指令的格式、功能和应用做了详细的介绍。2.S7-200系列PLC有TON、TOF、TONR三种定时器指令,其定时分辨率有1ms、10ms、100ms三种;有CTU、CTD、CTUD三种计数器指令,可对输入脉冲进行加减计数。3.位移位寄存器指令可以实现对于指定长度的移位寄存器进行指定方向的数据移位操作。4.跳转指令JMP、标号指令LBL可以实现程序的跳转,完成分支控制;子程序调用指令CALL、子程序有条件返回指令CRET可以实现主程序对于子程序的操作;对PLC进行顺序控制时可以使用顺序控制指令,顺序功能图由步、转换、转换条件、动作、有向连线等构成,由这些构成元素可以设计顺序功能图,用顺序控制继电器指令可以将顺序功能图转换成梯形图程序。5.上机实践给出了上述基本指令的应用目的,熟练了STEP7-MicroMIN编程软件的使用。,