CpM2A系列pLC常用指令有哪些?
发布时间:2016-10-26 10:38 来源:欧姆龙 阅读:
CpM2A系列pLC有185条应用指令,其中有些指令经常使用。本节先介绍这些指令的功能和使用方法。
1)IL和ILC指令格式:IL(02)ILC(03)功能: 互锁和互锁解除指令。IL定义互锁程序段的开始,该指令的条件就是互锁的条件。ILC定义互锁程序段的结束。说明:(1)不论IL的输入条件是ON还是OFFCpU都要对IL-ILC之间的程序段进行扫描。
(2)当IL前的逻辑条件为ON时,位于IL和ILC指令之间的互锁程序段照常运行。
(3)当IL前的逻辑条件为OFF时,互锁程序段将不被执行,此时该程序中的各个输出的状态为: 所有的输出线圈置为OFF,所有的定时器被复位,所有的计数器、移位寄存器以及SET和RSET指令的操作位都保持当前状态不变。
(4)IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不准嵌套使用,如IL-IL-ILC-ILC。当互锁条件00000为OFF时,无论其他条件如何变化,程序段中的所有输出均保持OFF不变。从逻辑运算上看具有完全相同的功能。程序有两个分支,也可以画成结构,在语句表中,多个IL指令只用一个ILC指令,在程序检查时会有出错信息显示,但不影响程序的正常执行。
2)TR指令功能: TR被称为暂存继电器。
利用TR可以方便编程,与LD和OUT指令配合,可以用来暂存程序运行的中间结果。只有在使用助记符编程时才使用TR。当直接输入梯形图时,不必使用TR。在程序中可以使用的TR共有8个,编号分别为TR0至TR7。当画梯形图时,除非必须,一般不用TR。画梯形图时不使用TR可以减少程序的指令数,并使程序更易于理解。N为跳转号,可以是00~49中任何十进制数字。功能: 跳转和跳转结束指令。当JMp指令前的执行条件为OFF时,CpU将跳过JMp和JME指令之间的程序段,且不占用扫描时间,直接执行其后面的程序内容。当JMp指令前的执行条件为ON时,则不进行跳转,如同没有跳转指令时一样执行。JMp、JME指令可以嵌套使用,但必须是不同跳转号的嵌套。JMp、JME指令和互锁程序的最大不同是,当发生跳转时,JMp和JME指令之间程序段中的所有输出、保持器、定时器和计数器状态都会保持不变。且被跳转的程序段不再占用扫描时间。例1-8:JMp和JME指令应用。00000是JMp(04)00的执行条件。当00000为OFF时,JMp(04)00与JME(05)00之间的程序不执行,而转去执行JME(05)00之后的程序,这时01000和01100保持跳转前的状态。若跳转前01000为OFF,则跳转期间也为OFF,即使00001为ON;当00000变为ON时,JMp(04)00与JME(05)00之间的程序才被执行。
4)定时器和计数器应用指令(1)TIM指令。
格式:TIM NSV其中,操作数N为定时器TC号,取值范围为十进制数000~255(CpM1A为000~127) 。操作数SV为定时器的设定值,由4位BCD码组成,可以是IR、SR、hR、AR、LR、DM、*DM、#,取值范围为0000~9999。功能: 定时器指令。TIM是最小单位为0.1s的减一计数器,故定时范围为0~999.9s。当输入条件为ON时,TIM开始计时。计时操作为每0.1s当前值pV减一。当pV等于0时,定时到,TIM状态置ON。当输入条件为OFF或电源掉电时,TIM被复位。复位后TIM状态置OFF,送SV为新的pV值。例1-9:TIM指令应用图例之一。定时器TIM000的定时时间为60s,即当00000为ON时,TIM开始计时。60s以后定时器定时到,程序段中的01000为ON。例1-10:TIM指令应用图例之二。定时器TIM000的定时时间由200通道中的数据确定。例1-11:脉冲输出程序。在CpM2A的SR区中有从1min到0.02s的各种方波脉冲可以利用。下面程序段则可以输出任意频率和占空比的脉冲序列。程序段中两个定时器的定时值分别用来指定输出脉冲高电平和低电平状态的维持时间。
(2)TIMh指令。格式:TIMh(15) NSV其中,操作数N和SV的定义和取值范围与TIM指令相同。功能: 高速定时器指令。最小定时单位为0.01s。定时范围为0~99.99s。其应用和使用方法与TIM指令相同。
(3)CNT指令。格式:Cp条件R条件CNT NSV其中,操作数N为计数器TC号,取值范围为十进制数000~255(CpM1A为000~127)。操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、hR、AR、LR、DM、*DM、#,取值范围为0000~9999。CNT在程序中有两个输入条件,故在格式中专门列出。在这里Cp为计数脉冲输入端,R为复位端。功能: 减一计数器。当R为OFF时计数器为计数状态。计数时,Cp每次由OFF变为ON计数一次,计数操作由pV值减一完成。当pV值减到0时计数到,计数器输出状态置ON。当R为ON时计数器为复位状态,复位后计数器输出状态置OFF,pV被重新置入SV值。例1-12:CNT指令的应用。CNT指令的程序段如下:LD 00000LD 00001CNT 127#0050LD CNT127OUT 01001
(4)CNTR指令。
格式:ACp条件SCp条件R条件CNTR(12) NSV其中,操作数N为计数器TC号,取值范围为十进制数000~255(CpM/A为000~127)。操作数SV为计数器的设定值,由4位BCD码组成,可以是IR、SR、hR、AR、LR、DM、*DM、#,取值范围为0000~9999。CNTR在程序中有三个输入条件: ACp为加计数脉冲输入端,SCp为减计数脉冲输入端,R为复位端。功能: 可逆循环计数器指令。当R为OFF时,为计数状态。计数时每当ACp由OFF变为ON时,pV值做一次加法运算。每当SCp由OFF变为ON时,pV值做一次减法运算。当pV值加到等于SV后再有加一脉冲,CNTR的状态置ON,pV值变为0。当pV值减到0再有减一脉冲,CNTR的状态置ON,pV值被置入SV值。当R为ON时为复位状态,ACp和SCp脉冲不起作用,复位时CNTR的当前值为0,CNTR的状态为OFF。例1-13:CNTR指令计数功能的应用。CNTR指令的程序段如下:LD 00000LD 00001LD 00002CNTR(12) 126#0100LD CNT126OUT 01000由程序可知,可逆计数器CNTR126的SV=100,在加一运算中,当加到pV=SV,再加一,pV=0时,CNTR为ON。若再加一,pV=1,则CNTR为OFF。在减一运算中,当减到pV=0,再减一,pV=SV时,CNTR为ON。若再减一,pV=SV-1,则CNTR为OFF。复位时,CNTR的当前值为0。例1-14:CNTR指令循环定时功能的应用。SCp端以25314(常OFF)作为输入条件,所以CNTR000作为加计数器使用。ACp端以25502与20000的串联作为输入条件,由25502产生的秒脉冲作为计数脉冲输入,此时计数器可作为定时器使用。R端以00001与25315的并联作为复位条件,使CNTR000在pLC上电的第一个扫描周期被复位。若00001为OFF,hR00中的数据是0300,试分析该图的功能。
例1-15:定时器、计数器容量的扩展。受到指令中操作数最大值的限制,可编程控制器定时器的最大定时时间十分有限。当用户需要延时时间较长的定时器时,有以下几种办法可以参考:(1)采用多个定时器级联的办法。使用两个定时器级联程序段的梯形图,总定时时间应为两个定时时间之和。
(2)采用定时器与计数器级联的办法。使用定时器与计数器级联程序段的梯形图,总定时时间应为CNT的计数值与TIM定时值之积。
(3)采用特殊继电器SR中的时钟脉冲与计数器配合的办法。用1s脉冲信号和CNTR000配合使用,CNTR000的常开触点连到CNT001的计数脉冲输入端,就可以构成大容量的定时器。例如,CNTR000指令的hR00中的数据为9999,CNT001的设定值为1000,则每经过10000×1000s,CNT001的输出就会ON一次,即总定时时间为10000000s。例1-16:比较IL-ILC与JMp-JME指令、TIM与CNT指令的区别。
(1)运行程序,接通00000后观察程序执行的全过程。注意01000、01001、01002的状态。
(2)断开00000,观察01000、01001和01002的状态。监视并记录CNT010、TIM000的内容。(3)运行程序,重做步骤(1)和(2),执行结果又将如何?