CPM1A系列PLC的指令系统.ppt
CPM1A系列PLC的指令系统,基本指令与应用指令,概述,基本指令,常用的应用指令,内容,1概述,,1.指令的分类,基本指令,应用指令,2.指令的格式,助记符指令码操作数1操作数2操作数3,助记符表示指令的功能,指令码是指令的代码,操作数提供指令执行的对象或数据,,操作数可以是通道号、继电器号或常数。,操作数的个数,取决于各种指令的需要。,★关于操作数的讨论,操作数设为常数时,在数据前面要加号。,操作数采用哪种进制,取决于指令的需要。,间接寻址的操作数用*DM来表示。,间接寻址的操作数,是以DM中的数据为地址的另一个DM通道中的数据。,DM中的内容必须是BCD码,且不得超出DM区的范围。,,例如,计数器指令的格式为CNT000SV,000是计数器的编号,SV是操作数,若SV200,表明000号计数器的设定值是200通道中的内容。,若SV0200,表明000号计数器的设定值是常数200。,,例如,计数器的指令格式为CNT000*DM1000,设DM1000的内容为0010,则000号计数器的设定值是2500,设DM0010的内容为2500,如果设DM1000的内容为9990,如果设DM1000的内容08FA,,3.执行指令对标志位的影响,SR区的25503~25507是指令执行结果的标志位。,某些指令的执行结果影响标志位25503~25507的状态。,标志位25503~25507的状态表示的意义要牢记。,25503ON时,表示当前执行的程序出错且停止执行。,25503是出错标志位,,4.指令的微分、非微分形式,微分型要在指令的助记符前加标记。,两种指令的区别,非微分型指令,只要其执行条件为ON,每个扫描周期都执行该指令。,微分型指令,仅在指令的执行条件由OFF变为ON时才执行一次。,,,2基本指令,常用的基本指令,块与指令ANDLD和块或指令ORLD,置位、复位指令SET和RESET,锁存继电器指令KEEP,基本编程规则和编程方法,前/后沿微分指令DIFU和DIFD,,1.LDLDNOTANDANDNOTORORNOTOUTOUTNOT,这是些基本逻辑操作指令,必须牢记其用法。,LD常开触点与母线相连的指令,AND常开触点相与(串联)的指令,OUT将执行结果输出到某位的指令,OR常开触点相或(并联)的指令,,,一、常用的基本指令,LD00000OR01000ANDNOT00001OUT01000LDNOT00002ORNOT00003AND01000OUTNOT01001,梯形图程序,语句表程序,使用指令举例,,,,,,,,,,,,指出图示程序对KM1和KM2的控制作用,没按下按钮SB1→,线圈01000断电→,触点01000闭合→,线圈01001断电→,断开,闭合,KM1断电,KM2断电,断电,断电,线圈00000断电→,触点00000断开→,使用指令举例,触点00001闭合→,,,按一下SB1→,触点00000闭合→,线圈01000通电→,触点01000断开→,闭合,KM1通电,KM2通电,闭合,线圈01001通电→,通电,通电,线圈00000通电→,断开,触点00001闭合→,,,按一下SB2→,触点00001断开→,线圈01000断电→,触点01000闭合→,KM1断电,KM2断电,线圈01001断电→,断开,闭合,断电,断电,线圈00001通电→,,,,2.END指令,程序的结尾一定要安排END指令,否则程序不执行。,LD00000ANDNOT00001ORNOT00003AND00002OR00004OUT01002END01,,,使用指令举例,,,,,,LD00000AND00001ANDNOT00002OUT20000,LD00000NOP(00)ANDNOT00002OUT20000,3.NOP指令,NOP是空操作指令,用NOP代替ANDN,可把AND语句中的触点N短接,用NOP代替ORN,可把OR语句中的触点N断掉,将梯形图中的触点00001删掉。,,,,使用指令举例,,,NOP(00)LD00001ANDNOT00002OUT20000,将梯形图中的触点00000删掉。,将梯形图中的触点00001删掉。,LD00000NOP(00)ANDNOT00002OUT20000,,,,,,,使用指令举例,使用指令举例,,,二、块与指令ANDLD和块或指令ORLD,1.ANDLD是将并联触点组相串联的指令,方法1LD00000AND00001ORNOT00002LD00003OR00004ANDLDLD00005ORNOT00006ANDLDOUT20000,方法2LD00000AND00001ORNOT00002LD00003OR00004LD00005ORNOT00006ANDLDANDLDOUT20000,在方法2中,ANDLD之前的触点组个数应小于等于8,,,,使用指令举例,,,2.ORLD是串联触点组相并联连接的指令,方法1LD00000ANDNOT00001LDNOT00002AND20005ORLDLD01004AND00003ORLDOUT01100,方法2LD00000ANDNOT00001LDNOT00002AND20005LD01004AND00003ORLDORLDOUT01100,在方法2中,ORLD之前的触点组个数应小于等于8,,,,使用指令举例,,,三、置位指令SET和复位指令RESET,SET将某继电器置为ON,LD00000SET20000LD00003RESET20000,,,RESET将某继电器置为OFF,SET、RESET指令的执行条件常为短信号(脉冲信号),SET和RESET指令可以单独使用(不一定成对使用),,,,,,当S端ON时,N为ON且保持。,★当N为保持继电器HR时,有保持功能。,四、锁存继电器KEEP指令,当R端ON时,N复位。,当S与R端同时为ON时,N复位优先。,继电器位,,,LD00002LD00003KEEP1120000,,,KEEP指令的工作时序,,,置位和复位条件都可以是短信号(脉冲信号),,,,,语句表,画出图示程序的工作时序,写出语句表。,,使用KEEP指令举例,,,,,,,,★比较几个相同具有功能程序之区别,相同,都可以实现启、保、停的控制,不同,KEEP编程需3条语句(最少),KEEP编程用HR作输出时,具有保持功能。,SET和RESET编程时,指令间可插别的指令。,SET和RESET编程HR作输出时,有保持功能。,,,,,,,五、微分指令DIFU和DIFD,DIFU和DIFD上升沿微分和下降沿微分指令,DIFU和DIFD指令的操作位只ON一个扫描周期。,开机时就OFF的执行条件,DIFD指令不执行。,,,TS,TS,LD00005DIFU1320000DIFD14HR0000,扫描周期,,,执行条件,开机时就ON的执行条件,DIFU指令不执行。,,,画出图示程序的工作时序,写出语句表。,,,LD00000DIFU1320000LD20000LD00001KEEP1101000,使用DIFU指令举例,扫描周期,,,六、基本编程规则和基本编程方法,1.基本编程规则,1每梯级都起始于左母线,线圈或指令应画在最右边,2必须与左母线相连的线圈或指令,可通过25313连接,3用OUT指令输出时,要避免双线圈输出的现象。,输出无效,双线圈输出引起逻辑混乱,,,4梯形图必须遵循从左到右、从上到下的顺序,不允许两行之间垂直连接触点。,5程序结束一定要安排END指令,否则程序不被执行,,没END指令的程序,检查时显示信息“NOENDINST”,,,2.基本编程方法,1两个或两个以上的线圈或指令可以并联输出。,2触点组与单个触点并联,单个触点应放在下面。,LD00000LD00001ANDNOT20000ORLDOUT01100,LD00001ANDNOT20000OR00000OUT01100,,,,,2触点组与单个触点并联,单个触点应放在下面。,LD00000LD00001ANDNOT20000ORLDOUT01100,LD00001ANDNOT20000OR00000OUT01100,,,,,,,3并联触点组与几个触点串联时,并联触点组应放在最左边。,LD00002AND00000LD00006AND00001OR20000ANDLDOUT01001,,LD00006AND00001OR20000AND00002AND00000OUT01001,,,,,,,此后,如果00001ON使01000复位,则在PLC本次上电期间,01000不会再被置位(即KEEP不再执行)。,4如果一条指令只需在PLC上电之初执行一次,可以用25315作为其执行条件。,PLC上电后的第一个扫描周期,01000被置为ON。,,,5结构复杂的梯形图程序,重新安排顺序后,可方便编写语句表。,,6当某梯级有两个分支时,若其中一条分支从分支点到输出线圈之间无触点,该分支应放在上方。,7尽量使用那些操作数少、执行时间短的指令编程。,,,,,基本指令小结,1.本节介绍的全部指令都要牢记其格式、梯形图、操作数范围及功能。,2.学会将梯形图程序转换为语句表的方法。,4.牢记基本编程规则和基本编程方法。,3.学会用工作时序图描述程序执行过程的方法。,,,3常用的应用指令,,分支和分支结束指令,暂存继电器,跳转和跳转结束指令,定时器/计数器指令,,一、分支和分支结束指令IL/ILC,IL02/ILC03用于控制程序流向的指令,所有OUT指令的输出位为OFF;所有定时器都复位;,IL/ILC的用法,1.不论IL的输入条件是ON还是OFF,CPU都要对IL/ILC之间的程序段进行扫描。,2.只有当IL的执行条件为ON时,IL和ILC之间的程序执行否则不执行。此时IL和ILC间各器件的状态为,KEEP指令的操作位、计数器、移位寄存器以及SET和RESET指令的操作位保持执行条件为OFF以前的状态。,,,嵌套使用IL-IL-ILC-ILC,3.IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不准嵌套使用。,LD00000IL02LD00001OUT01000LD00002ANDNOT00003OUT01001ILC03LD00004OUT01002,当00000为ON时,IL02与ILC之03间的程序执行,01000和01001的状态,取决于A右侧各触点的状态。,,,,,,,,LD00000IL02LD00001OUT01000LD00002IL02LD00003OUT01001LD00004OUT01002ILC03LD00005OUT01003,,,,,连续分支的例子,,,,,,,,,,,二、暂存继电器TR,暂存继电器用于暂时存储指令执行的结果。,暂存继电器编号TR0~TR7,对暂存继电器作如下说明,1.在同一分支程序段中,TR号不能重复使用。,2.TR不是编程指令,要与其他指令配合使用。,用暂存继电器也可以处理梯形图的分支。,,,LD00000OUTTR0AND00001OUT01000LDTR0AND00002OUT01001,LD00000IL02LD00001OUT01000LD00002OUT01001ILC03,用TR处理分支,用IL/ILC处理分支,两种处理分支方法的区别,用TR时用AND指令连接下一个分支的触点,在分支多时,用TR处理分支程序要烦琐一些。,用IL/ILC时用LD指令连接下一个分支的触点,,,,,,,使用暂存继电器举例,,,三、跳转和跳转结束指令JMP/JME,JMP04/JME05控制程序执行流向,JMP/JME的用法,发生跳转时,JMPN和JMEN之间的程序不执行,且不占用扫描时间。,2发生跳转时所有继电器、定时器、计数器均保持跳转前的状态不变。,3同一个跳转号N只能在程序中使用一次。但当N取00时,JMP00/JME00可以在程序中多次使用。,,,LD00000JMP0400LD00001OUT01000AND00002OUT01100JME0500LD00003OUT01004,4.以00作为跳转号时,比其他跳转号的执行时间长。,5.不同跳转号时可以嵌套使用。,例如JMP00-JMP01-JME01-JME00,当00000为ON时,IL与ILC之间的程序执行。,01000和01100的状态,取决于其输入条件的状态。,,,使用跳转指令举例,,,6.多个JMP可以共用一个JME,00000OFF、00001OFF时,只执行程序C,00000ON、00001OFF时,执行程序A→程序C,00000ON、00001ON时,执行程序A→程序B→程序C,,,JMP/JME指令的用途举例,00000对应一操作开关,执行手动操作程序,当00000为OFF时,执行自动操作程序,当00000为ON时,用一个开关,实现对系统自动和手动操作的控制。,,,IL/ILC与JMP/JME指令的共性,1.对IL/ILC与JMP/JME指令之间的程序段,不论IL的执行条件OFF还是ON,CPU都对IL和ILC之间的程序段扫描。,当发生跳转时,JMPN和JMEN之间的程序不执行,且CPU不对其扫描。,IL/ILC与JMP/JME指令的区别,它们都具有控制程序执行流向的作用。,,,对IL/ILC之间的程序段所有OUT指令的输出位为OFF;所有定时器都复位;KEEP指令的操作位、计数器、移位寄存器以及SET和RESET指令的操作位,都保持IL为OFF以前的状态。,对JMP/JME之间的程序段发生跳转时所有继电器、定时器、计数器均保持跳转前的状态不变。,2.当IL和JMP的执行条件不满足时,,,四、定时器/计数器指令TIM/CNT,使用TIM/CNT注意事项,①TIM/CNT共同使用编号000~127,在程序中TIM和CNT的编号不能重复。,②TIM/CNT的操作数可以是常数,也可以是通道,但常数或通道内容必须是BCD数。,④计数器有保持功能,而定时器没有此功能。,③TIM/CNT的设定值是通道时,通道内容改变、设定值即改变。但必须在TIM的输入条件断开、CNT复位后,下一次定时/计数才执行新设定值。,,,1.定时器TIM/TIMH,TIM普通定时器定时时间为0999.9s,TIMH高速定时器定时时间为099.99s,N000127(TIM与TIMH共用这些编号),SV09999单位TIM为0.1s;TIMH为0.01s,,,定时器ON后,若执行条件OFF,定时器复位。,③当扫描时间Ts0.1秒时,TIM会不准确;当Ts0.01秒时,TIMH会不准确。,★定时器的功能,当执行条件ON时开始定时,定时过程中执行条件要保持ON。,定时时间到,定时器ON、其所属触点动作。此后只要执行条件保持ON,其ON状态保持。,⑤定时器ON后,若PLC断电,定时器复位。,当定时器复位时,其当前值为设定值。,,,★定时器TIM、TIMH的用法,LD00000TIM0000050LDTIM000OUT01000,TIM定时时间500.15s,开始定时,定时到,定时器复位,,对TIMH计算500.010.5s,,,分析程序对线圈01000的控制,00000对应启动按钮、00001对应停车按钮。,按下启动按钮→线圈00000ON→,线圈20000ON→,闭合,闭合,闭合,触点20000闭合→,TIM001开始定时→,经过5s→,TIM001ON→,触点TIM001闭合→,线圈01000ON,触点00000闭合→,定时器定时功能例1,自按下启动按钮5s后线圈01000ON,,,线圈01000ON期间按下停车按钮→,线圈00001断电→,线圈20000断电→,断开,TIM001复位→,断开,断开,触点00001断开→,触点20000断开→,触点TIM001断开→,线圈01000OFF,按下停车按钮,线圈01000OFF,自按下启动按钮5s后线圈01000ON,,,分析程序对01000的控制作用。,00000闭合→20000接通→,10秒到→TIM001ON→,TIM001自复位,设HR00中数据为0100,TIM001的定时值为10秒。,TIM001开始定时→,闭合,线圈01000ON,闭合,断开,欲保持01000ON需加自锁,自锁,定时器定时功能例2,常开触点TIM001ON→,常闭触点TIM001OFF,断开,,,TIM001自复位后,即开始下一轮定时。,当改变通道HR00中的内容时,TIM的设定值即改变,在01000ON期间,若线圈00001ON→,线圈20000断电→,TIM001复位→,线圈01000OFF,断开,断开,断开,触点00001断开→,但需TIM复位后、下一次定时才执行新设定值,,,分析程序对01000的控制作用。,自00000ON→线圈20000ON→,900秒到→TIM001ON→,900秒到→TIM002ON→,定时器级联使用SVSV1SV2,TIM02开始定时→,线圈01000ON,TIM01开始定时→,★定时器定时时间的扩展,闭合,闭合,闭合,,,练习写出梯形图的语句表。,LD00000,OR20000,ANDNOT00001,OUT20000,LD20000,TIM0019000,LDTIM001,TIM0029000,LDTIM002,OUT01000,,,★关于接通延时ON和接通延时OFF的控制,LD00000IL(02)TIM0000600LDTIM000OUT01000LDNOTTIM000OUT01001ILC(03),,,,自00000为ON开始→01000经过60秒接通,自00000为ON开始→01001经过60秒断开,接通延时ON,接通延时OFF,,,根据00000和00001的波形,画出程序的工作时序。,,,,,,使用KEEP、TIM指令举例,,,2.计数器指令CNT,N000127SVBCD09999,CP计数输入端(每输入一个脉冲,CNT计一个数),R复位端(R端ON时计数器复位,即CNT清零),,,⑤CNTON后,若输入条件OFF,或PLC断电,计数器当前值能保持。,③CNTON后,此后输入的计数脉冲无效。,★计数器的用法,计数器的SV值可以是常数,也可以是通道号。,计数达到设定值时CNTON、其所属接点动作。,④计数器ON后,只要不清零,CNT将保持ON。,当计数器复位时,其当前值为设定值。,,,,,,,PV10,PV10,(停止计数),,计数,计数,(停止计数),CNT是减计数器,每输入一个计数脉冲,由SV值减1。,★计数器的工作时序,98210,ON保持,98210,ON保持,SV10时CNT的工作波形,清零,清零,,,★CNT的计数功能举例,分析程序对01000的控制作用。,00000每通断一次,向CNT000输入一个计数脉冲。,00000通断3次→,CNT000ON→,线圈01000ON,闭合,闭合,断开,此后若触点00001ON→,CNT000复位→,线圈01000OFF,CNT000断电再复电时,能保持断电前的当前值。,若将0003换成200,则计数值是通道200中的数据。,,,写出梯形图程序的语句表,LD00000LD00001CNT0000003LDCNT000OUT01000,SV为常数,CNT000计数器的工作时序,,,,,210,ON保持,,,,CNT000采用自清零。,每当CNT000计数设定值到,当CNT001计数到,01000ON。,00000通断了10000次时01000ON,★计数器级联SVSV1SV2,a.向CNT001输入一个计数脉冲。,b.自清零、并开始下一轮计数。,分析程序对01000的控制作用,★计数器容量的扩展,上电之初25315为两个计数器零。,自清零,,,分析程序对01000的控制作用。,25502能产生周期为1秒的脉冲,CNT000完成计数100所经历的时间是100秒。,计数器作为定时器使用,用计数器作定时器时,该定时器具有保持功能。,经历10000秒后01000ON,★计数器的定时器功能,CNT001完成计数100所经历的时间是10000秒。,,,,3.可逆计数器指令CNTR,SV设定值(BCD09999),加计数输入,复位端,减计数输入,N编号(与CNT共用000127),,,④加/减计数有进/借位时,输出ON一个计数脉冲周期。,③计数器复位时,不论是加还是减计数,其PV均为0。,①从ACP或SCP输入计数脉冲,可组成加或减计数器。,⑤可逆计数器可作为循环计数器。,★可逆计数器的功能,计数器达到设定值ON时,若再来一个计数脉冲,CNTROFF、且开始下一个循环的计数。,②从ACP和SCP端同时输入计数脉冲,计数器不计数。,,,★可逆计数器的工作时序,,,★可逆计数器的计数功能举例,设00003OFF、00002OFF,00001输入计数脉冲。,加计数器,00001每输入一个计数脉冲,CNTR046的当前值加1。,当PV0200时,再输入一个计数脉冲,PV值变为0000(进位),同时CNTR046变为ON。,此后再来一个计数脉冲时,PV值变为0001,CNTR046为OFF,且开始下一个循环的计数。,,,,,减计数器,设00003OFF、00001OFF,00002输入计数脉冲。,00002每输入一个计数脉冲,CNTR046的当前值减1。,当PV0000时,再输入一个计数脉冲,PV值变为0200(借位),同时CNTR046变为ON。,此后再来一个计数脉冲时,PV0199,CNTR046为OFF,且开始下一个循环的计数。,,,★可逆计数器的定时器功能举例,LD00000OR20000OUT20000LD25502AND20000LD25314LD00001OR25315CNTR12000HR00LDCNT000OUT01000,,CNTR000是加计数器,控制位,秒脉冲,常OFF,上电复位,CNTR000的触点,由于计数脉冲是秒脉冲,所以可作定时器。,,,,,,设00001为OFF,HR00中数据是0500,分析功能。,自00000ON开始,CNTR000开始计数→,计数达500CNTR000ON→,闭合,即经过500秒线圈01000ON,PLC上电,计数器即复位。,CNTR000的触点ON→,线圈01000ON,再过1秒,线圈01000又OFF,CNTR000开始下一循环计数,线圈01000每过500秒ON1秒,,,常用的应用指令小结,1.本节介绍的应用指令都经常使用,要牢记其格式、梯形图、操作数范围及功能。,2.IL/ILC和JMP/JME是控制程序执行流向的指令,要注意区别两种指令的用法。,3.注意指令TIM/CNT/CNTR的编号方法。,4.学会用时序图描述定时器、计数器工作状态的方法。,5.学会定时器和计数器容量扩展的编程方法。,,,