PLC的指令及其编程方法.ppt
第5章S7-200PLC的基本指令及程序设计,5.1S7-200PLC的编程语言5.2S7-200PLC的数据类型与存储区域5.3S7-200PLC的编程元件5.4寻址方式5.5程序结构和编程规约5.6S7-200PLC的基本指令5.7典型控制环节的PLC程序设计5.8梯形图编写规则,5.1S7-200PLC的编程语言,1.梯形图LAD2.功能块图FBD3.语句表STL,1.梯形图LAD,▲梯形图(LAD)与电气控制电路图相呼应。▲沿用了继电器、触点、串并联等术语▲简化了图形符号▲增加了特殊功能的指令▲信号流向清楚、简单、直观、易懂。,2.功能块图FBD,沿用了半导体逻辑电路的逻辑框图的表达方式,3.语句表STL,语句表(STL)是用助记符来编程。它类似于计算机的汇编语言。,编程简单直观、易懂,有条件地相互转换,语句表可以编写梯形图和功能块图无法编写的程序。,5.2S7-200PLC的数据类型与存储区域,5.2.1位、字节、字、双字和常数,常数的几种表示形式,5.2.2数据类型及范围,5.2.3数据的存储区,1.存储区的分类PLC的存储区分为程序存储区、系统存储区、数据存储区。程序存储区用于存放用户程序,存储器为EEPROM。系统存储区用于存放有关PLC配置结构的参数,如PLC主机及扩展模块的I/O配置和编址、PLC站地址的配置,设置保护口令、停电记忆保持区、软件滤波功能等,存储器为EEPROM。数据存储区是S7-200CPU提供给用户的编程元件的特定存储区域。,2.数据区存储器的编址格式,可分为位地址字节地址字地址双字地址,,1位地址格式,存储器中的位地址表示示例,,2字节、字、双字地址格式,,数据区存储器区域的字节、字、双字地址格式由区域标识符、数据长度以及该字节、字或双字的起始字节地址构成。例如,IB2表示输入字节,由I2.0I2.7这8位组成。,图中,用VB100、VW100、VD100分别表示字节、字、双字的地址。VW100表示由VB100、VB101相邻的两个字节组成的一个字,VD100表示由VB100~VB103四个字节组成的一个双字,100为起始字节地址。,2字节、字、双字地址格式,(3)其他地址格式,元件号区域标识符,T24,定时器T24计数器C45累加器AC3,,,5.3S7-200PLC的编程元件,在PLC内部,这些具有一定功能的编程元件,由电子电路、寄存器和存储器单元等组成,有固定的地址。有时又称做软元件或软继电器,其特点是1软继电器是看不见、摸不着的,没有实际的物理触点。2每个软继电器可提供无限多个常开触点和常闭触点,可放在同一程序的任何地方,即其触点可以无限次地使用。3体积小、功耗低、寿命长。,5.3.1编程元件,1.输入继电器I2.输出继电器Q3.辅助继电器M4.变量存储器V5.局部存储器L6.顺序控制继电器S7.特殊继电器SM8.定时器T9.计数器C10.模拟量输入映像寄存器AI11.模拟量输出映像寄存器AQ12.累加器AC13.高速计数器HC,1.输入继电器I,输入继电器(I)的地址格式为位地址I[字节地址].[位地址],如I0.1、I3.6。字节、字、双字地址I[数据长度][起始字节地址],如IB4、IW6、ID10。,2.输出继电器(Q),CPU将输出的结果存放在输出映象寄存器Q中,在扫描周期的结尾,CPU以批处理方式将输出映象寄存器的数值复制到相应的输出端子上。输出模块将输出信号传送给外部负载。,输出继电器(Q)地址格式为位地址Q[字节地址].[位地址],如Q0.0、Q1.1;字节、字、双字地址Q[数据长度][起始字节地址],如QB5、QW8、QD11。CPU226模块输出映像寄存器的有效地址范围为Q(0.0~15.7);QB(0~15);QW(0~14);QD(0~12)。,2.输出继电器Q,S7-200CPU输入、输出的操作,I/O映像区实际上就是外部输入输出设备状态的映像区,PLC通过I/O映像区的各个位与外部物理设备建立联系。I/O映像区每个位都可以映像输入、输出模块上的对应端子状态。,辅助继电器(M)的地址格式为位地址M[字节地址].[位地址],如M0.2、M12.7、M3.5等。字节、字、双字地址M[数据长度][起始字节地址],如MB11、MW23、MD26。CPU226模块辅助继电器的有效地址范围为M(0.0~31.7);MB(0~31);MW(0~30);MD(0~28)。没有外部的输入/输出端子与之对应,因此不能收外部信号的直接控制,其触点也不能直接驱动外部负载。,3.辅助继电器M,4.变量存储器(V),变量存储器用于存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其它相关的数据。地址格式为位地址V[字节地址].[位地址],如V10.2、V100.5。字节、字、双字地址V[数据长度][起始字节地址],如VB20、VW100、VD320。CPU226模块变量存储器的有效地址范围为V(0.0~5119.7);VB(0~5119);VW(0~5118);VD(0~5116)。,5.局部变量存储器(L),局部变量存储器(L)用来存放局部变量。局部变量存储器局部有效。常用于带参数的子程序调用过程中。其地址格式为位地址L[字节地址].[位地址],如L0.0、L50.4。字节、字、双字L[数据长度][起始字节地址],如LB33、LW44、LD55。CPU226模块局部存储器的有效地址范围为L(0.0~63.7);LB(0~63);LW(0~62);LD(0~60)。,6.顺序控制继电器(S),顺序控制继电器(S)用于顺序控制或步进控制。顺序控制继电器(S)使用时可以按位、字节、字、双字访问,其地址格式为位地址S[字节地址].[位地址],如S3.1、S2.5。字节、字、双字地址S[数据长度][起始字节地址],如SB4、SW10、SD21。CPU226模块顺序控制继电器存储器的有效地址范围为S(0.0~31.7);SB(0~31);SW(0~30);SD(0~28)。,7.特殊继电器(SM),■特殊内部线圈(SpecialMemory)■用户程序与系统程序之间的界面■提供特殊的控制功能及系统信息■用户通知系统特殊要求包括只读区域,只能用其触点;如SM0.0可读写区,用于特殊控制功能,,*SMB30用于自由通信口设置*SMB34/SMB35用于定时中断间隔时间设置,7.特殊继电器(SM),SM0.0CPU在RUN时,SM0.0总为1,即该位始终接通为ON;SM0.1PLC由STOP转为RUN时,SM0.1接通一个扫描周期,常用做初始化脉冲;SM0.2当RAM中保存的数据丢失时,SM0.2接通一个扫描周期;SM0.3PLC上电进入RUN方式时,SM0.3接通一个扫描周期,可在不断电的情况下代替SM0.1的功能;SM0.4分时钟脉冲,占空比为50,30s闭合、30s断开,周期为1min的脉冲串;SM0.5秒时钟脉冲,占空比为50,0.5s闭合、0.5s断开,周期为1s的脉冲等。,8.定时器(T),定时器(T)是累计时间增量的内部元件。S7-200PLC定时器有三种类型接通延时定时器TON,断开延时定时器TOF,保持型接通延时定时器TONR。定时器的定时时基有三种1ms、10ms、100ms。使用时需要提前设置时间设定值。与定时器相关的有两个变量定时器当前值和定时器状态位。定时器地址表示格式为T[定时器号],如T24、T37、T38等。,9.计数器(C),计数器用来累计其计数输入端脉冲电平由低到高的次数,常用来对产品进行计数或进行特定功能的编程。S7-200PLC有三种类型计数器增计数、减计数、增减计数。使用时需要提前设定计数设定值。与计数器相关的有两个变量计数器当前值和计数器状态位。计数器地址表示格式为C[计数器号],如C3、C22。,10.模拟量输入映像寄存器(AI),模拟量输入模块电路将外部输入的模拟信号转换成1个字长(16位)的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理。AI中的值为只读值,只能进行读取操作。AI的地址格式为AIW[起始字节地址],如AIW4。AI的地址必须用偶数字节地址(如AIW0,AIW2)来读取。有效地址的范围为AIW(0~62),11.模拟量输出映像寄存器(AQ),CPU运算的相关结果存放在模拟量输出映像寄存器(AQ)中,供D/A转换器将1个字长的数字量转换为模拟量,以驱动外部模拟量控制的设备。AQ中的数字量为只写值,用户不能读取模拟量输出值。AQ的地址格式为AQW[起始字节地址],如AQW10。同样,AQ的也必须使用偶数字节地址(如AQW0,AQW2,AQW4)来存放。AQ有效地址范围为AQW(0~62)。,12.累加器(AC),累加器是用来暂时存储计算中间值的存储器,也可用于向子程序传递参数或返回参数。S7-200CPU提供了4个32位累加器(AC0、AC1、AC2、AC3)。累加器的地址格式为AC[累加器号],如AC0。累加器可进行读、写两种操作,可以按字节、字、双字来存取累加器中的数据。,按字节、字、双字存取累加器中数据的示例,13.高速计数器(HC),高速计数器(High-speedCounter)用来累计比CPU扫描速率更快的高速脉冲信号,计数过程与扫描周期无关。高速计数器的当前值为双字(32位)整数,且为只读值。读取高速计数器当前值应以双字来寻址。高速计数器地址格式为HC[高速计数器号],如HC1、HC2。CPU226模块高速计数器的有效地址范围为HC(0~5)。,5.3.2编程元件及操作数的寻址范围,5.3.2编程元件及操作数的寻址范围,5.3.2编程元件及操作数的寻址范围,5.4寻址方式,1.立即寻址2.直接寻址3.间接寻址,1.立即寻址,,指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,所以称为立即操作数或立即寻址。立即寻址方式可用来提供常数、设置初始值等。指令中常常使用常数。例如,传送指令“MOVD256,VD100”的功能就是将十进制常数256传送到VD100单元,这里256就是源操作数,直接跟在操作码后,不用再去寻找源操作数了,所以这个操作数称为立即数,这种寻址方式就是立即寻址方式。,2.直接寻址,△指令直接给出操作数地址△操作数的存储器地址应按规定的格式表示△指令中,数据类型应与指令标识符相匹配例位寻址LDI3.4字节寻址MOVBVB50,VB100字寻址MOVWVW50,VW100双字寻址MOVDVD50,VD100,3.间接寻址,★指令给出了存放操作数地址的存储单元的地址★操作数地址的地址称为指针★指针用“*”号表示,例*AC1,(1)建立指针,将存储器某个位置的地址移入另一存储器或累加器中作为指针“”符号表示某存储单元的地址,,,必须使用双字传送指令建立指针,(2)使用指针来存取数据,▲对指针处所指定存储器中的值(内容)进行存取▲把指针处VB200的值AC0AC0不能用作间接寻址的指针。,,(3)修改指针,■处理连续存取数据时,可以通过改变指针的值来进行■修改指针值时,应根据存取数据的长度来进行调整*字节指针值加/减1*字指针值加/减2*双字指针值加/减4,,,,,使用指针间接寻址,5.5程序结构和编程规约,5.5.1程序结构5.5.2编程的一般规约,用户程序数据块参数块,,主程序(程序的主体)子程序(可选)中断程序(可选),,网络梯形图LAD、功能块图FBD允许输入端EN、允许输出端ENO条件输入、无条件输入,,1.网络,图5-9电动机起停控制梯形图程序,梯形图中,程序被分成称为网络的一些程序段程序不分段,则编译有误,2.梯形图(LAD),梯形图中的左、右垂直线称为左、右母线,通常将右母线省略。在左、右母线之间是由触点、线圈或功能框组合的有序网络。梯形图的输入总是在图形的左边,输出总是在图形的右边。从左母线开始,经过触点和线圈或功能框,终止于右母线,从而构成一个梯级。在一个梯级中,左、右母线之间是一个完整的“电路”,“能流”只能从左到右流动,不允许“短路”、“开路”,也不允许“能流”反向流动。,3.允许输入端EN、允许输出端ENO,允许输入端(EN)必须存在“能流”(EN1),才能执行该功能框的功能。,*如果(EN)存在“能流”,且功能框准确无误地执行了其功能,那么允许输出端(ENO)将把“能流”传到下一个功能框的元件。(即ENO1,实现级联)*如果执行过程中存在错误,那么“能流”就在出现错误的功能框终止,即ENO0。,4.条件输入、无条件输入,必须有“能流”通过才能执行的线圈或功能框称为条件输入指令。它们不允许直接与左母线连接,如SHRB、MOVB、SEG等指令。如果需要无条件执行这些指令,可以在左母线上连接SM0.0该位始终为1的常开触点来驱动它们。无须“能流”就能执行的线圈或功能框称为无条件输入指令。与“能流”无关的线圈或功能框可以直接与左母线连接,如LBL、NEXT、SCR、SCRE等指令。,5.6S7-200PLC的基本指令,5.6.1位逻辑指令5.6.2立即I/O指令5.6.3逻辑堆栈指令5.6.4取反指令和空操作指令5.6.5正/负跳变触点指令5.6.6定时器指令5.6.7计数器指令5.6.8比较指令5.6.9移位寄存器指令5.6.10顺序控制继电器指令,5.6.1位逻辑指令,1.标准触点指令2.输出指令3.置位和复位指令,1.标准触点指令,梯形图(LAD)常开和常闭触点指令用触点表示;与某触点对应的存储器地址的位(bit)值为1时,表示该触点的常开触点是接通的,为1;同时常闭触点为0,表示该常闭触点是断开的,1.标准触点指令,语句表(STL),LD(Load栈装载指令A(And逻辑“与”指令O(or)逻辑“或”指令,LDNANON,对常闭触点编程,,2.输出指令,,输出指令又称为线圈驱动指令,表示对继电器输出线圈编程。在梯形图LAD中,用“”表示线圈。当执行输出指令时,“能流”到,则线圈被“激励”,输出映像寄存器或其他存储器的相应位为“1”,反之为“0”。,3.置位和复位指令,置位或复位的元件数N的常数范围为1~255。N也可为VB、IB、QB、MB等,一般情况下均使用常数。当用复位指令对定时器位T或计数器位C复位时,定时器或计数器被复位,同时定时器或计数器的当前值将被清零。由于PLC采用循环扫描工作方式,程序中写在后面的指令有优先权。,图5-13置位、复位指令的使用举例,能流到,就执行置位或复位指令执行置位指令时,把从指令操作数指定的地址开始的N个点都被置位且保持,置位后即使能流断,仍保持置位执行复位指令时,把从指令操作数指定的地址开始的N个点都被复位且保持,复位后即使能流断,仍保持复位,5.6.2立即I/O指令,★为了加快输入输出响应速度★采用直接处理方式包括1.立即触点指令2.立即输出指令3.立即置位和立即复位指令,1.立即触点指令,※直接读取物理输入点的值※输入映象寄存器内容不更新※指令操作数仅限于物理输入点的值,2.立即输出指令,直接把结果传送到物理输出点,以驱动实际输出不等待程序执行阶段结束后,转入输出刷新阶段时才把结果传送到物理输出点,将结果也写入输出映象寄存器。,3.立即置位和立即复位指令,,当执行立即置位SI或立即复位RI指令时,从指令操作数指定的位地址开始的N个连续的物理输出点将被立即置位或立即复位且保持。即使能流断,仍保持置位/复位)。N的常数范围为1~128。该指令只能用于输出继电器。执行该指令时,新值被同时写到物理输出点和相应的输出映像寄存器。,必须指出,立即I/O指令是直接访问物理输入/输出点的,比一般指令访问输入/输出映象寄存器占用CPU时间要长。不能盲目地使用立即指令,否则,会加长扫描周期时间,反而对系统造成不利影响,应利弊权衡。,5.6.3逻辑堆栈指令,▲逻辑堆栈指令只用于语句表编程。▲使用梯形图编程时,梯形图编辑器会自动插入相关的指令处理堆栈操作。栈装载与ALD指令栈装载或OLD指令逻辑入栈LPS、逻辑读栈LRD、逻辑出栈LPP、装入堆栈LDS指令,,,逻辑堆栈指令,栈装载与ALD指令2.栈装载或OLD指令,,ALD指令用于两个或两个以上触点组的串联编程。执行ALD指令时,将堆栈中的第1层和第2层的值进行逻辑“与”操作,结果置于栈顶堆栈第1层,并将堆栈中的第39层的值依次上弹一层。OLD指令用于两个或两个以上的触点组的并联。执行时,将堆栈中的第一级和第二级的值进行逻辑或操作,结果放入栈顶,并将堆栈中其余各级的内容依次上弹一级。,栈装载ALD、OLD指令操作过程,ALD、OLD指令的使用举例,3.逻辑入栈LPS、逻辑读栈LRD、逻辑出栈LPP、装入堆栈LDS指令,1由于受堆栈空间的限制9层堆栈,LPS、LPP指令连续使用时应少于9次。2LPS与LPP指令必须成对使用,它们之间可以使用LRD指令。3LPS、LRD、LPP指令均无操作数。,LPS、LRD、LPP、LDS指令的操作过程,逻辑堆栈指令的使用举例1,逻辑堆栈指令的使用举例2,5.6.4取反指令和空操作指令,取反NOT指令改变能流的状态;能流到达取非触点时,能流就停止;能流未到达取非触点时,能流就通过;对堆栈的栈顶作取反操作,改变栈顶值。,2.空操作NOP指令,空操作NOP指令主要是为了方便对程序的检查和修改,预先在程序中设置了一些NOP指令,在修改和增加其他指令时,可使程序地址的更改量减小。NOP指令对程序的执行和运算结果没有影响。其指令格式为NOPN,操作数N是一个0~255之间的常数。,5.6.5正/负跳变触点指令,,,检测上升沿(由off到on),让能流通过一个扫描周期的时间;检测下升沿(由on到off),让能流通过一个扫描周期的时间;,正/负跳变触点指令编程举例,5.6.6定时器指令,对PLC内部的时钟脉冲进行计数。1.接通延时定时器TON2.有记忆接通延时定时器TONR3.断开延时定时器TOF4.应用定时器指令的注意事项,定时器指令的表示形式,定时器及定时器指令,输入接点,设定值132767,,定时器分辨率(时基)有三种1ms、10ms、100ms。定时器的分辨率由定时器号决定。,定时器的实际设定时间T设定值PT分辨率,定时器号(0~255),当前值该16位有符号整数存储由计时器计算的时间量。定时器位按照当前值和设定值的比较结果置位或复位。可以通过使用定时器地址(T定时器号码)存取这些变量。定时器位或当前值的存取取决于使用的指令位操作数指令存取计时器位,字操作数指令存取当前值。,定时器编号表示两种变量,IN,1.接通延时定时器TON,,,当输入端(IN)接通或“能流”通过时,定时器位为OFF,定时器当前值从0开始计时,当定时器的当前值等于或大于设定值时,该定时器位被置位为ON,当前值仍继续计数,一直计到最大值32767。输入端(IN)一旦断开,定时器立即复位,定时器位为OFF,当前值为0。,2.有记忆接通延时定时器TONR,当输入端(IN)接通或“能流”通过时,定时器当前值从上次的保持值开始再往上累计时间,继续计时,当累计当前值等于或大于设定值时,该定时器的位被置位为ON。当前值可继续计数,一直计数到最大值32767。当输入端(IN)断开时,定时器当前值保持不变,定时器位不变。当输入端(IN)再次接通,定时器当前值从原保持值开始再往上累计时间,继续计时。可以用定时器(TONR)累计多次输入信号的接通时间。,TONR使用举例,,,3.断开延时定时器TOF,上电初期或首次扫描时,定时器位为OFF,当前值为0。当输入端(IN)接通(为ON)时,定时器位立即为“1”,并把当前值设为0。,,,,4.应用定时器指令的注意事项,1不能把一个定时器号同时用作TOF和TON。2在第一个扫描周期,所有的定时器位被清零。3对于断开延时定时器TOF,需在输入端有一个负跳变由ON到OFF的输入信号启动计时。4不同分辨率的定时器,它们当前值的刷新周期是不同的,具体情况如下①1ms分辨率定时器。1ms分辨率定时器启动后,定时器对1ms的时间间隔即时基信号进行计时。定时器的当前值每隔1ms刷新一次,在一个扫描周期中可能要刷新多次,而不和扫描周期同步。,②10ms分辨率定时器。10ms分辨率定时器启动后,定时器对10ms的时间间隔进行计时。程序执行时,在每个扫描周期的开始对定时器的位和当前值刷新,定时器的位和当前值在整个扫描周期内保持不变。③100ms分辨率定时器。100ms分辨率定时器启动后,定时器对100ms的时间间隔进行计时。只有在执行定时器指令时,定时器的位和当前值才被刷新。为使定时器正确的定时,100ms定时器只能用于每个扫描周期内同一定时器指令必须执行一次且仅执行一次的场合。,4.应用定时器指令的注意事项,T当前值的刷新,1ms分辩率定时器每隔1ms刷新一次在一个扫描周期中要刷新多次,而不和扫描周期同步。,,ON一个扫描周期,不会接通,错误,正确,,10ms分辩率定时器在每次扫描周期的开始对10ms定时器刷新在一个扫描周期内定时器当前值保持不变,不会接通,正确,错误,100ms分辩率定时器,在定时器指令执行时刷新.,自复位式定时器,100ms303s,T39,在子程序和中断程序中不宜用100ms的定时器。100ms定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合。主程序中不能重复使用同一个100ms的定时器号。,100ms分辩率定时器使用注意事项,5.6.7计数器指令,1.增计数器CTU2.减计数器CTD3.增/减计数器CTUD,计数器指令的表示形式,计数器是对对外部的或由程序产生的计数脉冲进行计数,是累计其计数输入端的计数脉冲电平由低到高的次数。而定时器是对PLC内部的时钟脉冲进行计数.,计数器编号范围C0-C255)计数器编号表示两个变量1.当前值计数器累计计数的当前值,存放在计数器的16(bit)当前值寄存器中。2.计数器位当计数器的当前值等于或大于设定值时,计数器位置为“1”。,计数范围(-3276832767),1.增计数器CTU,当计数脉冲输入端(CU)有一个上升沿(由OFF到ON)信号时,增计数器被起动,计数器当前值从0开始加1,计数器作递增计数,累计其计数输入端的计数脉冲由OFF到ON的次数,直至最大值32767时停止计数。当计数器当前值等于或大于设定值(PV)时,该计数器的位被置位(ON)。当复位输入端(R)有效或对计数器执行复位指令时,计数器被复位,计数器位为OFF,当前值被清零。,增计数器CTU举例,2.减计数器CTD,减计数器(CTD)首次扫描时,计数器的位为0,当前值为设定值PV。当计数输入端(CD)有一个计数脉冲的上升沿(由OFF到ON)信号时,计数器从设定值开始作递减计数,直至计数器当前值等于0时,停止计数,同时计数器位被置位。减计数器指令在复位输入端(LD)接通时,使计数器复位并把设定值装入当前值寄存器中。,减计数器指令的使用举例,3.增/减计数器CTUD,增/减计数器(CTUD)有两个计数脉冲输入端和一个复位输入端(R)。两个计数脉冲输入端为增计数脉冲输入端(CU)和减计数脉冲输入端(CD)。当CU端有一个计数脉冲的上升沿(由OFF到ON)信号时,计数器当前值加1;当CD端有一个计数脉冲的上升沿(由OFF到ON)信号时,计数器的当前值减1。当计数器当前值等于或大于设定值(PV)时,该计数器位被置位。当复位输入端(R)有效或用复位指令(R)对计数器执行复位操作时,计数器被复位,即计数器位为OFF,且当前值清零。,增/减计数器指令的使用举例,5.6.8比较指令,比较指令是将两个数值或字符串按指定条件进行比较,条件成立时,触点就闭合。所以比较指令实际上也是一种位指令。类型字节比较、整数比较、双字整数比较、实数比较和字符串比较。数值比较指令的运算符有、、和等6种,字符串比较指令有和两种。对比较指令可进行LD、A和O编程。,比较触点指令的举例,5.6.9移位寄存器指令,当移位寄存器指令允许输入端(EN)有效时,该指令把数据输入端(DATA)的数值(位值)移入移位寄存器,并进行移位。S-BIT指定移位寄存器最低位的地址。变量N指定移位寄存器的长度和移位方向。当N为正数表示正向移位,N为负数表示反向移位。SHRB指令移出的位放在溢出位(SM1.1)。,I0.2,正向(反向)移位时,输入数据从移位寄存器的最低(最高)有效位移入,从最高(最低)有效位移出。,BYTE型数据类型N≤64,DATA和S_BIT为Bool型数据类型。,移出的数据送入溢出存储器位(SM1.1),,移位寄存器最高有效位地址的计算,计算由最低有效位(S-BIT)和长度(N)计算最高有效位(MSB.b)的地址计算公式MSB.b[S-BIT的字节号(|N|-1S-BIT的位号)8].[被8除所得余数]举例如果S-BIT是V22.5,N是8,那么MSB.bV22(8-15)8V22128V221(余数为4)V23.4,字节号,位号,,停止按钮SB1I0.0启动按钮SB2I0.2接触器KM1Q0.0接触器KM2Q0.1接触器KM3Q0.2接触器KM4Q0.3,,四台电机的顺序启动,启动的顺序为M1→M2→M3→M4,顺序启动的时间间隔为2分钟,启动毕,进入正常运行。,移位寄存器的应用实例,程序,5.6.10顺序控制继电器指令,1.装载顺序控制继电器指令2.顺序控制继电器转换指令3.顺序控制继电器结束指令4.SCR指令的编程举例,1.装载顺序控制继电器指令,,装载顺序控制继电器LoadSequentialControlRelay,LSCR指令用来表示一个顺序控制继电器SCR程序段或一个步的开始。其操作数是顺序控制继电器的S位,表示形式和范围为S0.0S31.7。每个S位都表示顺序功能图中的一种状态。当SCR程序段的S位置位如S0.1为1时,允许该SCR程序段工作。在梯形图中,LSCR指令用功能框形式编程,直接连接到左母线上。,2.顺序控制继电器转换指令,顺序控制继电器转换SequentialControlRelayTransition,SCRT指令执行SCR程序段的转换。当“能流”通过SCRT指令时,一方面使当前激活的SCR程序段的S位复位,使该SCR程序段停止工作;另一方面使下一个将要执行的SCR程序段S位置位,以便下一个SCR程序段工作。在梯形图中,SCRT指令以线圈形式编程。,3.顺序控制继电器结束指令,1每一个SCR程序段中均包含三个要素。2SCR指令的操作数只能是S位如S0.2、S1.5等,但S位也具有一般继电器的功能,不仅可用在SCR指令中,还可用于LD、LDN、A、AN、O、ON、、S、R等指令中,作为操作数。3SCRE与下一个LSCR之间的指令逻辑不影响下一个SCR程序段的执行。4同一地址的S位不可用于不同的程序分区。5在一个SCR程序段内,不允许使用JMP、LBL、FOR、NEXT、END指令。6使用SCR指令时,状态位S的地址编号一般按顺序编排,但也可不按顺序编排。,4.SCR指令的编程举例,根据舞台灯光效果的要求,控制红、绿、黄三色灯。控制要求红灯先亮,2s后绿灯亮,再过3s后黄灯亮。待红、绿、黄灯全亮3min后,全部熄灭,试用SCR指令设计其控制程序。,5.7典型控制环节的PLC程序设计,5.7.1单向运转电动机起动、停止控制程序5.7.2单按钮起动、停止控制程序5.7.3具有点动调整功能的电动机起、停控制程序5.7.4电动机的正、反转控制程序5.7.5大功率电动机的星-三角减压起动控制程序5.7.6闪烁控制程序5.7.7瞬时接通/延时断开程序5.7.8定时器、计数器的扩展5.7.9高精度时钟程序5.7.10多台电动机顺序起动、停止控制程序(多种方法编程),5.7.1单向运转电动机起动、停止控制程序,用置、复位指令实现启、停控制程序及时序图,5.7.2单按钮起动、停止控制程序,5.7.3具有点动调整功能的电动机起动、停止控制程序,I/O接线图及梯形图,5.7.4电动机的正、反转控制程序,,,电动机的正、反转控制程序,5.7.5大功率电动机的星-三角减压起动控制程序,电动机星-三角减压起动控制梯形图程序,,5.7.6闪烁控制程序,闪烁控制梯形图及信号时序图,,5.7.7瞬时接通/延时断开程序,瞬时接通/延时断开程序及信号时序图,5.7.8定时器、计数器的扩展,1.定时器串联扩展,共延时T(3000030000)0.1s6000s,2.定时器、计数器串联扩展计时范围,扩大计时范围也可采用定时器和计数器串联的方法,程序如右。从电源接通到输出线圈Q2.0有输出,共延时T3000.0s200006107s。若还要增大计时范围,可增加串联的计数器数目。,3.计数器串联扩展计数范围,,S7-200CPU226模块的最大计数值为32767,若需要更大的计数范围可将多个计数器串联使用。下图,若增计数器C51的输入信号I0.3是一个光电脉冲如用来计工件数,从第一个工件产生的光电脉冲到输出线圈Q1.0有输出,共计数N30000300009108个工件,即当I0.3的上升沿脉冲数到9108时,Q1.0才有输出。,计数器串联使用,5.7.9高精度时钟程序,5.7.10多台电动机顺序起动、停止控制程序,如要求三台电动机M1、M2、M3在按下自动起动按钮后顺序起动,起动的顺序为M1→M2→M3,顺序起动的时间间隔为1min,起动完毕,三台电动机正常运行。按下停止按钮后逆序停止,停止的顺序为M3→M2→M1。停止的时间间隔为30s。分别采用三种方法实现1.采用定时器指令实现2.采用比较指令实现3.采用移位寄存器指令实现,主电路及I/O接线图,1.采用定时器指令实现,图中使用T37、T38两个定时器来控制三台电动机的顺序起动,使用T39、T40两个定时器来控制三台电动机的逆序停止。,2.采用比较指令实现,图中使用了断电延时定时器T38,,3.采用移位寄存器指令实现,5.8梯形图编写规则,1PLC采用梯形图编程是模拟继电器控制系统的表示方法,因而梯形图内各种元件也沿用了继电器的叫法,称为“软继电器”。2梯形图中流过的“电流”不是物理电流,而是“能流”,它只能从左到右、自上而下流动,且不允许倒流。3梯形图中的常开、常闭触点不是现场物理开关的触点。4梯形图中的输出线圈不是物理线圈,不能用它直接驱动现场执行机构。5PLC的输入/输出继电器、中间继电器、定时器、计数器等编程元件的常开、常闭触点可无限次反复使用,因为存储单元中的位状态可取用任意次。,编写梯形图程序时,还应遵循下列规则1梯形图由多个网络组成,每个网络开始于左母线,终止于右母线,线圈与右母线直接相连S7-200PLC绘图时,将右母线省略,触点不能放在线圈的右边,如下页图。2梯形图中的线圈、定时器、计数器和功能指令框一般不能直接连接在左母线上,可通过特殊的中间继电器SM0.0来完成,如图5-58所示。3在同一程序中,同一地址编号的线圈只能出现一次,通常不能重复使用,但是它的触点可以无限次使用。4几个串联支路的并联,应将串联多的触点组尽量安排在最上面;几个并联回路的串联,应将并联回路多的触点组尽量安排在最左边示。5桥式电路必须经过修改后才能画出梯形图。,错误,,,,正确,电路变换简化程序减少指令的条数),(2)几个并联回路的串联,应将并联支路数多的安排在左面。,,(1)几个串联支路相并联,应将触点多的支路安排在梯级的上面;,为了减少用户程序步数、缩短程序扫描时间,,不符合左大右小的电路,共5步,符合左大右小的电路,共4步,1LDI0.32LDI0.43OI0.54ALD5Q0.0,1LDI0.42OI0.53AI0.34Q0.0,非桥式复杂电路必须修改后才能画出梯形图,桥式电路必须修改后才能画出梯形,,,本章小结,本章主要介绍S7-200PLC的基本逻辑指令,定时器、计数器指令及其使用方法。本章是学习PLC编程的重点。通过本章介绍的一些PLC典型实例程序和环节,大家应掌握基本逻辑指令的使用方法,掌握不同类型的定时器、计数器的工作原理和应用方法,掌握顺序控制继电器指令(SCR)和移位寄存器指令(SHRB)的使用方法,并能灵活应用,编写出满足要求的PLC控制程序。编程时注意PLC编程规则。要求通过一定的实验课程来加深对指令的理解。,