PLC的基本逻辑指令及编程.ppt
,4.1基本逻辑指令4.2基本指令编程实例,第4章PLC的基本逻辑指令及编程,4.1基本逻辑指令,4.1.1LD、LDI、OUT指令4.1.2AND、ANI指令4.1.3OR、ORI指令4.1.4ORB指令4.1.5ANB指令4.1.6MPS/MRD/MPP指令,4.1.7MC/MCR指令4.1.8SET/RST指令4.1.9PLS/PLF指令4.1.10NOP指令4.1.11END指令,4.1.1LD、LDI、OUT指令,LD(读取)用于常开接点接到母线上的逻辑运算起始。,LDI读取反用于常闭接点接到母线上的逻辑运算起始。,指令格式LD元件号;LDI元件号其操作元件包括X、Y、M、S、T、C。程序步为1,另外,与后续的ANB指令组合,在分支点处也可使用。,OUT输出输出驱动各种驱动线圈,指令格式OUT元件号其操作元件包括Y、M、S、T、C,4.1.1LD、LDI、OUT指令,,Y、M程序步为1,特M程序步为2,T程序步为3,C,16bit,程序步为3,,32bit,程序步为5,对输入继电器不能使用,并行输出可多次使用OUT,LD、LDI、OUT指令的使用说明,,,,,,,X0,,Y0,,LD,,OUT,,,,,X1,,M0,,,LDI,,,,T0,K10,,,Y1,,,,T0,,母线,步序,指令,数据,1,2,3,4,OUT,LDI,OUT,OUT,K10,LD,OUT,7,8,Y0,X1,M0,T0,T0,Y1,驱动定时器,设定常数,SP,0,LD,X0,,,,,3步,,,,4.1.2AND、ANI指令,AND,与指令,用于单个常开接点的串联,ANI,与非指令,用于单个常闭接点的串联,AND与ANI这两条指令可以多次重复使用,指令格式AND元件号;ANI元件号其操作元件包括X、Y、M、S、T、C程序步为1,AND、ANI指令的使用说明,,,,,,,X1,,Y0,AND,,,,,X2,,M0,,ANI,,,,Y1,,a,,,b,,步序,指令,数据,0,1,2,3,4,LD,AND,OUT,LD,ANI,OUT,AND,OUT,6,7,X0,X1,Y0,X2,M0,T0,Y1,,,,,5,Y0,,,串联常开触点,,,纵接输出,串联常闭触点,串联常开触点,,,,X0,,,,Y0,,,,T0,AND,,,,母线,,,,,,4.1.3OR、ORI指令,OR,或指令,用于单个常开接点的并联,ORI,或非指令,用于单个常闭接点的并联,1OR、ORI指令用于单个触点的并联连接指令,2两个以上接点串联连接电路块并联连接时,要用后述的ORB指令,3OR、ORI是从该指令的当前步开始,对前面的LD、LDI指令并联连接的,并联的次数无限制,说明,指令格式OR元件号;ORI元件号其操作元件包括X、Y、M、S、T、C程序步为1,OR、ORI指令的使用说明,,,,,,,X3,,Y2,,,,,X4,,,,Y3,,,,X16,步序,指令,数据,0,1,2,3,4,LD,OR,ORI,OUT,LDI,AND,ANI,OR,7,8,X3,X4,X1,Y2,Y2,X16,X7,M10,并联常开触点,5,6,OUT,9,Y3,M0,OR,并联常开触点,并联常闭触点,,,,,X7,,,,,,,,,Y2,,,,,X1,,,,,M0,,,,M10,OR,ORI,OR,,,,母线,,,,,,,OR,,,4.1.4ORB指令,两个或两个以上的接点串联连接的电路叫串联电路块。对串联电路块并联连接时,有,1分支开始用LD、LDI指令,分支终点用ORB指令。,ORB指令为无目标元件,它不表示触点。,3可以看成电路块之间的一段连接线。,指令格式ORB无操作元件程序步为1,ORB指令的使用,,,,,,,,,,,,,,,,,,,,,,,,,X3,,Y4,,,,,X6,,步序,指令,数据,0,1,2,3,4,LD,AND,LD,AND,ORB,OUT,AND,OUT,7,8,X4,X5,X6,X7,Y4,X11,Y5,串联电路块并联连接,5,6,M2,LD,,,,X5,,,,X7,,,Y5,,,,M2,,,,X11,串联电路块,ORB,,,母线,,,,ORB指令相当一段连线,,,,,,,,,,一种是在要并联的每个串联电路块后加ORB指令,分散使用ORB指令时,并联电路的个数没有限制。另一种是集中使用ORB指令(如下图所示),集中使用ORB指令时,这种电路块并联的个数不能超过8个即重复使用LD、LDI指令的次数限制在8次以下。,ORB指令的使用方法,,,,,,,X0,,,,,X2,,推荐,0,1,2,3,4,LD,ANI,LD,AND,ORB,ORB,OUT,7,8,X0,X1,5,6,AND,,,,X1,,,,X3,,,,,X4,,,,X5,LDI,X2,X3,X4,X5,Y5,不推荐,0,1,2,3,4,LD,ANI,LD,AND,ORB,OUT,7,8,X0,X1,5,6,AND,LDI,X2,X3,X4,X5,Y5,ORB,,Y5,,,步序,指令,数据,步序,指令,数据,,,,,,分散使用ORB,集中使用ORB,,,,,,,,串联电路块1,串联电路块2,,,,,先集中做块,,再集中连接,ORB,ORB,做一块连一块,,,,,两个或两个以上接点并联的电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,应使用ANB指令。,指令格式ANB无操作元件程序步为1,4.1.5ANB指令,分支的起点用LD、LDI指令,并联电路块结束后,使用ANB指令与前面电路串联。,,,,,,,,,,,,,,,,,,,ANB指令简称与块指令,,,,,,,X0,,,,,X1,,0,1,2,3,4,LD,OR,LDI,OR,ANB,X0,X1,5,6,OUT,,,,X2,X3,,,,,X4,OR,X2,X3,X4,Y0,,Y0,,,,,,,,,步序,指令,数据,ANB指令的使用说明,,并联块,,,,,,,,,,,,,串接,,,,,是单个元件并联,,,,,用OR指令,,,4.1.6MPS/MRD/MPP指令,MPSPush为进栈指令,就是将运算中间结果存入栈存储器。,使用一次MPS指令,该时刻的运算结果就压入栈存储器第一级,再使用一次MPS指令时,当时的运算结果压入栈的第一级,先压入的数据依次向栈的下一级推移。,MPP(POP)为出栈指令,使用出栈MPP指令就是将存入栈存储器的各数据依次上移,最上级数据读出后就从栈内消失。,,,,,,MRD(READ)读栈指令,读出存入栈存储器的最上级的最新数据,栈内的数据不发生上、下移。,4.1.6MPS/MRD/MPP指令,MPS、MRD、MPP这组指令都是没有操作元件号,可将触点先存储,因此用于多重输出电路。,,,,,,MRD,MPS,MPP,,,,,,,,,,,指令功能图解,,MPS/MRD/MPP指令的使用,,,,,,,,,X0,0,1,2,3,4,LD,AND,MPS,AND,OUT,5,6,OUT,MPP,,Y0,7,8,9,10,LD,MPS,AND,OUT,,,,,11,12,13,MPP,AND,OUT,X0,X1,X2,Y0,Y1,X3,X4,Y2,X5,Y3,14,15,16,17,18,LD,MPS,AND,OUT,MRD,19,20,OUT,AND,21,22,23,24,MRD,AND,OUT,MPP,25,26,AND,OUT,X6,X7,Y4,X10,Y5,X11,X12,Y6,Y7,,Y1,X1,,,,X2,,,,,X3,,,,X4,,Y2,,,,,,X5,,Y3,,MPP,,,,,X6,,,,X7,,MPS,,Y4,,,,,,X10,,Y5,,MRD,,,,X11,,Y6,,,,,X12,,Y7,,MRD,步序,指令,数据,,,,,,,MPS,MPP,MPS,,,,母线,,,,,,MPP,,,,,,,小结,LD、LDI用于接点接到主母线(或分支)的逻辑运算起始,OUT输出驱动各种驱动线圈(不能驱动X),AND、ANI用于单个接点的串联,OR、ORI用于单个接点的并联,ORB对串联电路块并联连接(无操作元件),ANB指令用于并联电路块与前面电路串联,MPS/MRD/MPP指令用于保存、恢复、读出接点的状态,4.1.6MPS/MRD/MPP指令,例一层栈,,,,,,,,,,,,,,,4.1.6MPS/MRD/MPP指令,例二层栈,,,,,,,,X0,0,1,2,3,4,LD,MPS,AND,MPS,AND,5,6,MPP,OUT,,Y0,7,8,AND,OUT,,,,X0,X1,X2,Y0,X3,Y1,9,10,11,12,13,MPP,AND,MPS,AND,OUT,14,15,AND,MPP,16,OUT,X4,X5,X6,Y3,X1,,,,X2,,,MPS,Y2,,,,,X3,,Y1,,,Y2,,,Y3,,,,,X5,,,,X6,,,,X4,,MPP,,MPS,,MPP,,MPS,,MPP,步序,指令,数据,,,第一层栈,,第二层栈,,,,,,,,,,,,,,,,MPS、MRD、MPP指令在使用中应注意,4.1.6MPS/MRD/MPP指令,1MPS、MRD、MPP指令用于多重输出电路,2MPS与MPP必须配对使用,3MPS与MPP连续使用必须少于11次,MC为主控指令,用于公共串联接点的连接。,4.1.7MC/MCR指令,MCR叫主控复位指令,即MC的复位指令。,遇到多个线圈同时受一个或一组接点控制的情况。如果在每个线圈的控制电路中都串入同样的接点,则将多占用存储单元,应用主控指令可以解决这一问题。使用主控指令的接点称为主控接点,是与母线相连的常开接点,是控制一组电路的总开关。,MC、MCR指令的使用,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,X0,,a,,0,1,4,5,6,LD,MC,SP,LD,OUT,7,8,OUT,LD,10,11,LD,OUT,X0,X1,X2,N0,,b,,X1,Y2,M100,MCR,N0,M100,Y0,Y1,X3,,,MCR为2步指令,,MC为3步指令,,M100,,N0,,MC,,,,,,N0,,,,,,,Y0,,Y1,X2,,,,,,N0,,MCR,,,Y2,X3,,,,步序,指令,数据,MC指令是3程序步,MCR指令是2程序步,两条指令的操作目标元件是Y、M,不允许使用特殊辅助继电器M。当X0接通时,执行MC与MCR之间的指令;当输入条件断开时,不执行MC与MCR之间的指令。非积算定时器和用OUT指令驱动的元件复位,积算定时器、计数器、用SET/RST指令驱动的元件保持当前的状态。,MC、MCR指令的使用,使用MC指令后,母线移到主控接点的后面,与主控接点相连的接点必须用LD或LDI指令。MCR使母线回到原来的位置。在MC指令区内使用MC指令称为嵌套,嵌套级N的编号0-7顺次增大,返回时用MCR指令,从大的嵌套级开始解除,MC、MCR指令的使用,,b,,,a,,,,,,Y0,,SET,,,,X0,,,Y0,,RST,,,,X1,,,M0,,SET,,,,X2,,,M0,,RST,,,,X3,,,S0,,SET,,,,X4,,,S0,,RST,,,,X5,,,D0,,RST,,,,X6,,c,,SET、RST指令的使用,4.1.9PLS/PLF指令,PLS指令在输入信号上升沿产生脉冲输出,PLF在输入信号下降沿产生脉冲输出,它们的目标元件是Y和M,但特殊辅助继电器不能作目标元件。使用PLS指令,元件Y、M仅在驱动输入接通后的一个扫描周期内动作置1,即PLS指令使M0产生一个扫描周期脉冲,而使用PLF指令,元件Y、M仅在驱动输入断开后的一个扫描周期内动作;PLF指令使元件M1产生一个扫描周期脉冲。,PLS、PLF指令的使用,,c,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,X0,X1,M0,M1,Y0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,扫描周期,扫描周期,步序,指令,数据,PLS、PLF指令的使用,NOP指令是一条无动作、无目标的程序步指令。可编程序控制器的编程器一般都有指令的插入和删除功能,在程序中一般很少使用NOP指令。执行完清除用户存储器的操作后,用户存储器的内容全部变为空操作指令。,4.1.10NOP指令,END是一条无目标元件的程序步指令。PLC反复进行输入处理、程序运算、输出处理,END以后的程序不再执行,直接进行输出处理。在程序调试过程中,按段插入END指令,可以顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面电路块的动作正确无误之后,依次删去END指令。,4.1.11END指令,4.2基本指令编程实例,4.2.1梯形图编程注意事项,4.2.2基本指令编程实例,a不正确;b正确,,,,,Y,,,,,,,1,3,5,,,,,,,4,3,2,,,,,,,,1,2,,,,,,,,4,5,,b,,,,,,Y,,,1,,a,,,,,,2,,,,4,,,,5,,,,3,4.2.1梯形图编程注意事项,,,,,,,,,,,,,,,,,,,,,,,,,OUT,,,,,,,LD,AND,,,,OR,,a,,,,,,,,OUT,,,,,,,LD,AND,,,,LD,,ORB,,,,串联多的电路尽量放上部,,,,,,,OUT,,,,,,,LD,AND,,,,OR,,b,,,,,并联多的电路尽量靠近母线,,,,,,,OUT,,,,,,,LD,,,,OR,LD,,,ANB,4.2.1梯形图编程注意事项,不能将接点画在线圈右边,只能在接点的右边接线圈,如图所示。,4.2.1梯形图编程注意事项,,,X1,,Y3,,输入处理,X1=ON,X2=OFF,第一次,,,,第二次,,输出处理,Y3=OFF,Y4=ON,双线圈输出不可用,4.2.1梯形图编程注意事项,,,,,,,Y4,,,,,,,X3,X2,,Y3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,X000,,,,,,a,,,b,,0,1,2,3,4,LD,AND,LDI,AND,ORB,5,6,LD,,,,OR,,Y002,,,,步序,指令,数据,7,8,9,10,OR,ANB,OR,OUT,X000,X001,X002,X003,X004,X006,X007,X005,Y002,并联连接,并联块结束,分支起点,与前面的电路连接,,,,X001,,,,,X006,X007,,,,,X002,X003,,,,,X004,,,,,X005,,ANB,,LD,,并联电路块,,ANB前,的OR,,ORB,,ANB后的OR,,,,,,,,,4.2.2基本指令编程实例,例1ORB、ANB指令的混用,例2四层栈电路,4.2.2基本指令编程实例,