4.4 欧姆龙CPM1A系列PLC的编程指令介绍
PLC是通过用户所编程序对系统进行控制的,欧姆龙CPM1A系列PLC属于小型机,但它的指令系统却很丰富。而指令系统又反映出控制功能的强弱。
欧姆龙CPM1A系列PLC的编程指令共有153条,按功能的不同,可分为基本指令和应用指令。基本指令是直接对输入输出点进行操作的指令,如“与”、“或”、“非”等指令。应用指令是进行数据传送、数据处理、数据运算等操作的指令。指令的表示方式为梯形图和语句表。指令的格式表示为:
助记符(指令码) 操作数1
操作数2
操作数3
4.4.1 基本指令
CPM1A系列PLC有17条基本指令,在实际编程时,基本指令使用频率最高。以下一一介绍。
1.取指令
指令符:LD N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR,TC,TR。
功能:读入逻辑行的第一个常开接点。以位为单位进行操作。
2.LD NOT指令
指令符:LD NOT N 梯形图符:
数据:同取指令。
功能:读入逻辑行的第一个常闭接点。以位为单位进行操作。
3.AND指令
指令符:AND N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR,TC。
功能:逻辑与操作,即串联一个常开接点。以位为单位进行操作。
4.AND NOT指令
指令符:AND NOT N 梯形图符:
数据:同AND指令。
功能:逻辑与非操作,即串联一个常闭接点。以位为单位进行操作。
5.OR指令
指令符:OR N 梯形图符:
数据:同AND指令。
功能:逻辑或操作,即并联一个常开接点。以位为单位进行操作。
6.ORNOT指令
指令符:OR NOT N 梯形图符:
数据:同AND指令。
功能:逻辑或非操作,即并联一个常闭接点。以位为单位进行操作。
7.OUT指令
指令符:OUT N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR,TC,TR。
功能:将逻辑行的运算结果输出。以位为单位进行操作。(除了IR中已作为输入通道的位)
8.OUTNOT指令
指令符:OUT NOT N 梯形图符:
数据:同OUT指令。
功能:将逻辑行的运算结果取反后输出。以位为单位进行操作。(除了IR中已作为输入通道的位)
图4-4-1 PLC控制接线图及其控制程序梯形图
例1 电动机启动/停止电路的编程。
图3-2-2是继电器控制原理图,图4-4-1a,b是PLC控制接线图及PLC控制程序梯形图,其中启动按钮为SB1,停止按钮是SB2。
9.END指令
指令符:END 梯形图符:
数据:无。
功能:是程序最后一条指令,表示程序的结束。PLC执行到END指令就停止执行程序阶段,转入输出处理阶段。如果程序中遗漏END指令,在程序运行和查错时将显示:“NO END INSET”。插入END指令后,PLC才能正常运行。END指令还可用来分段调试程序,可以将END指令插在各段程序之后,调试结束时再删除插在中间各段程序后的END指令。
10.NOP指令
指令符:NOP 梯形图符:无
数据:无。
功能:CPU执行这条指令不作任何逻辑操作,该指令只占一序号和一定的执行时间。它常用来修改程序。在输入程序时加入该指令可留出地址,以便调试程序时加入指令,还可用于扫描时间的微调。
11.AND LD指令
指令符:AND LD 梯形图符:无
数据:无。
功能:将两个电路块串联起来。
图4-4-2给出了两个电路块串联的例子。
图4-4-2 AND LD指令的应用
12.OR LD指令
指令符:OR LD 梯形图符:无
数据:无。
功能:将两个电路块并联起来。
图4-4-3给出了两个电路块并联的例子。
图4-4-3 OR LD指令的应用
13.SET指令
指令符:SET N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR。
功能:当执行条件为ON时,将指定的继电器N置为ON且保持。以位为单位进行操作。
14.RESET指令
指令符:RESET N 梯形图符:
数据:同SET指令。
功能:当执行条件为ON时,将指定的继电器置为OFF且保持。以位为单位进行操作。
SET和RESET指令常成对使用,一般用SET指令将某继电器置为ON,再用RESET指令将其置为OFF。也可以单独使用RESET指令将为ON的继电器置为OFF。
15.KEEP指令
指令符:KEEP N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR(除了IR中已作为输入通道的位)。
功能:锁存继电器指令。当S端输入为ON时,继电器N被置为ON且保持;当R端输入为ON时,N被置为OFF。N为HR区继电器时有掉电保持功能。
图4-4-4 使用KEEP指令的例子
如图4-4-4所示,当输入触点00001由OFF变为ON时,20000被置为ON并保持,即使00001又变为OFF,20000也保持为ON,只有当00002由OFF变为ON时,20000被复位为OFF并保持,即使00002再变为OFF,20000也为OFF。
16.上升沿微分DIFU指令
指令符:DIFU N 梯形图符:
数据:N可以是IR,SR,HR,AR,LR(除了IR中已作为输入通道的位)。
功能:当执行条件由OFF变为ON时,使指定的继电器接通一个扫描周期。以位为单位进行操作。
17.下降沿微分DIFD指令
指令符:DIFD N 梯形图符:
数据:同DIFU。
功能:当执行条件由ON变为OFF时,使指定的继电器接通一个扫描周期。以位为单位进行操作。
图4-4-5 使用DIFU和DIFD指令的例子
图4-4-5使用了DIFU和DIFD指令,T为扫描周期。当00000由OFF变为ON开始,20000只接通一个扫描周期。当00000由ON变为OFF开始,20001只接通一个扫描周期。
DIFU和DIFD指令常用在下面几种场合:一是利用DIFU和DIFD指令的操作位作为某指令的执行条件,使某指令只在一个扫描周期中执行一次。另外利用DIFU和DIFD指令产生脉冲信号。
4.4.2 常用的应用指令
CPM1A系列PLC有136条应用指令,其中有些应用指令经常使用,下面介绍这些常用应用指令的功能和使用方法。
1.分支IL指令
指令符:IL 梯形图符:
数据:无。
功能:程序分支开始指令。当IL的输入条件为ON时,IL和ILC之间的程序正常执行;当IL的输入条件为OFF时,IL和ILC之间的程序不执行。
2.分支结束ILC指令
指令符:ILC 梯形图符:
数据:无。
功能:程序分支结束指令。常用于控制程序的流向。
使用IL/ILC指令时应注意:
①不论IL的输入条件是ON还是OFF,CPU都要对IL/ILC之间的程序进行扫描。
②如果IL的执行条件为OFF,则位于IL和ILC之间的程序不执行,此时IL和ILC之间各内部器件的状态为:所有OUT和OUT NOT指令的输出位为OFF;所有定时器都复位;KEEP指令的操作位、计数器、移位寄存器及SET和RESET指令的操作位都保持IL为OFF以前的状态。
③IL和ILC可以成对使用,也可以多个IL指令配一个ILC指令,但不能嵌套使用,如IL—IL—ILC—ILC。
3.暂存继电器(TR)
暂存继电器可用来暂时存储当前指令执行的结果,所以处理梯形图的分支还有另外一种方法,即使用暂存继电器。
CPM1A系列PLC有编号为TR0-TR7的8个暂存继电器。如果某个TR位被设置在一个分支点处,则分支前面的执行结果就会存储在这个TR位中。但要注意,在同一分支程序段中,同一TR号不能重复使用。并且TR不是编程指令,只能配合LD或OUT等基本指令一起使用。
4.跳转JMP指令
指令符:JMP N 梯形图符:
数据:N为00~49。
功能:是跳转开始指令,当JMP的执行条件为OFF时,跳过JMP和JME之间的程序转去执行JME之后的程序;当JMP的执行条件为ON时,JMP和JME之间的程序被执行。
5.跳转结束JME指令
指令符:JME N 梯形图符:
数据:N为00~49。
功能:是跳转结束指令。
JMP/JME指令常用于控制程序的流向。在使用时应注意:
①发生跳转时,JMP N和JME N之间的程序不执行,不占用扫描时间。
②发生跳转时,JMP N和JME N之间的所有器件保持跳转前的状态不变。
③对同一跳转号N,程序只能使用一次。但当N取00时,可以多次使用。
④以00为跳转号时,指令的执行时间比其他跳转号的执行时间长,因为CPU要花时间寻找下一个JME 00。
⑤跳转指令可以嵌套使用,但必须是不同跳转号的嵌套,如JMP00~JMP01~JME01~JME00等。
图4-4-6是使用跳转指令的例子。00000是JMP00的执行条件。当00000为OFF时,JMP00到JME00之间的程序不执行,这时01000和01100保持跳转前的状态;当00000为ON时,它们之间的程序才被执行。
图4-4-6 使用跳转指令的例子
与IL/ILC指令一样,多个JMP可以共用一个JME,如图4-4-7所示。如在两段程序间切换时,常采用跳转指令,如图4-4-8,当输入00001为ON时,执行手动程序而不执行自动程序;当00001为OFF时,跳过手动程序转去执行自动程序。
图4-4-7 多个JMP共用一个JME指令 图4-4-8 跳转指令的应用
6.定时器TIM指令
指令符:TIM N 梯形图符:
SV
数据:占两行,N是定时器TC号,范围000~127;SV是定时器的设定值(BCD0000~9999),其范围为IR,SR,HR,AR,LR,DM。
功能:定时时间到接通定时器接点。从输入条件为ON开始定时(定时时间为SV×0.1秒),定时时间到,定时器的输出为ON且保持;当输入条件为OFF时,不管定时器当前处于什么状态都复位,输出变为OFF,对应的常开触点断开。并停止定时,其当前值恢复为SV。定时器无掉电保持功能。
例如图4-4-9所示,当00000为ON时TIM000开始定时,其值从0050开始每隔0.1秒减去1,减50次(5秒)后,当前值为0000,此时TIM000输出为ON,其常开触点闭合,使01000为ON。若00000一直为ON,则TIM000的状态也一直保持ON,输出01000也为ON。若00000变为OFF,则TIM000复位,当前值恢复为设定值0050,01000变为OFF。
图4-4-9 使用TIM指令的例子
一个定时器的最大定时时间是999.9s,但如果几个定时器连用,则可获得更长的定时时间。如图4-4-10所示,将两个定时器连用,每一个定时器定时时间设为900秒,则定时总时间为900+900=1800秒。或者利用定时器和计数器以及特殊辅助继电器也可以实现定时器的扩展。请同学们自己做做试试。
图4-4-10 定时器容量的扩展
7.计数器CNT指令
指令符:CNT N 梯形图符:
SV
数据:占两行,N是计数器TC号,范围000~127;SV是计数器的设定值(BCD 0000~9999),其范围为IR,SR,HR,AR,LR,DM。
功能:计数到时,接通计数器常开触点。从CP端输入计数脉冲,当计数到设定值时,其输出为ON且保持,并停止计数。当复位端R输入为ON时,计数器复位即OFF,当前值恢复到设定值SV。计数器有掉电保持功能。
图4-4-11 使用计数器的例子
图4-4-11为使用计数器的例子。当00001为OFF,每当00000由OFF-ON-OFF一次(即一个脉冲),CNT000的当前值就减1,当减到0000时,即00000发来100个脉冲时就停止计数,此时CNT000输出为ON且保持,其常开触点闭合,使01000为ON且保持。若在计数过程中或计数满以后,00001由OFF变为ON,则计数器立即复位并停止计数,01000也变为OFF。
一个计数器的计数最大值为9999,与定时器的扩展方法相似,将计数器串联组合,也可以完成计数器的扩展,如图4-4-12所示。图中CNT000对00002的通断次数计数,当计到1000次时CNT000的常开接点接通一个扫描周期,使CNT001计一次数,下一个扫描又使CNT000复位,又开始新的计数过程。当CNT001计数2000次时,它的常开接点闭合,01000接通。此时00002共闭合1000×2000=2000000次。该电路的计数值为两个计数器计数值的乘积。
8.高速定时器TIMH指令
高速定时器TIMH指令定时时间为SV×0.01s,其余同TIM指令。
图4-4-12 计数器扩展
9.可逆计数器CNTR指令
指令符:CNTR N 梯形图符:
SV
数据:同计数器CNT指令。
功能:可逆循环计数器指令。只要复位R端为ON,计数器即复位为OFF并停止计数,且不论加计数还是减计数,其当前值均为0。从ACP端输入计数脉冲为加计数;从SCP端输入计数脉冲为减计数;加/减计数有进位/借位时,输出ON一个计数脉冲周期。当ACP端和SCP端同时输入计数则不计数。该指令也有掉电保持功能。
如图4-4-13所示,当复位端00002为ON时,CNTR 045复位,当前值变为0000,此时既不作加法计数,也不作减法计数。当00002变为OFF时计数器开始计数。
若00001为OFF、由00000输入计数脉冲时为加计数器。00000每输入一个计数脉冲,CNTR 045的当前值加1。当加到0100时,再输入一个计数脉冲,当前值变为0000(有进位),同时CNTR 045的输出变为ON。若再来一个计数脉冲,当前值为1,CNTR 045的输出变为OFF,且开始下一个循环的计数。
图4-4-13 可逆循环计数器指令的例子
若00000为OFF、由00001输入计数脉冲时为减计数器。00001每输入一个计数脉冲,CNTR 045的当前值减1。当减到0000时,再输入一个计数脉冲,当前值变为0100(有错位),同时CNTR 045的输出变为ON。若再来一个计数脉冲,当前值为0099,CNTR 045的输出变为OFF,且开始下一个循环的计数。
当00000和00001同时输入计数脉冲时,计数器不计数。
CNT和CNTR指令的区别是:当计数器CNT达到设定值后,只要不复位,其输出就一直为ON,即使计数脉冲仍在输入;高速计数器CNTR达到设定值后,其输出为ON,只要不复位,在下一个计数脉冲到来时,计数器CNTR立即变为OFF,且开始下一轮计数,即CNTR是个循环计数器。
10.数据传送MOV/@MOV指令
指令符:MOV 梯形图符:
S
D
数据:S是源数据,其范围:IR,SR,HR,AR,LR,TC,DM,#。
D是目的通道,其范围:IR,SR,HR,AR,LR,DM。
功能:当执行条件为ON时,将源数据S传送到通道D中。只要条件一直ON,每个扫描周期MOV指令都执行。
@MOV传送指令是微分型指令,只有在执行条件由OFF变为ON时才执行将源数据S传送到通道D中。
如图4-4-14所示,当00000为ON,执行MOV指令,将常数2000传送到通道
图4-4-14 MOV和@指令的例子
HR00中去,如果00000一直为ON,每个扫描周期都执行MOV指令。当00001由OFF变为ON时,微分型指令@MOV执行一次,将常数2001传送到通道HR01中,此后00001即使一直为ON,@MOV指令也不再执行。
11.数据比较CMP指令
指令符:CMP 梯形图符:
C1
C2
数据:C1是比较数1,C2是比较数2。范围:IR,SR,HR,AR,LR,TC,DM,#。
功能:单字比较指令。在执行条件为ON时,将C1和C2进行比较,并将比较结果送到各标志位:当C1>C2,大于标志位25505为ON。
当C1=C2,等于标志位25506为ON。
当C1<C2,小于标志位25507为ON。
如图4-4-15所示,当00000为ON时,TIM000开始定时、CMP指令开始执行,由于每隔0.1s TIM000当前值减1,经过10秒当前值减为0200时,25506、20000为ON,当TIM000的当前值等于0000时,TIM000常开触点闭合,20001为ON。
图4-4-15 CMP指令的例子
12.数据移位SFT指令
指令符:SFT 梯形图符:
St
E
数据:St是移位的开始通道号,E是移位的结束通道号。范围是:IR,SR,HR,AR,LR。St和E必须在同一区域,且St≤E。
功能:移位寄存器指令。当复位端R为OFF时,在SP端的每个移位脉冲的上升沿时刻,St到E通道中的所有数据按位依次左移一位。E通道中数据的最高位溢出丢失,St通道中的最低位则移进IN端的数据;SP端没有移位脉冲则不移位;当复位端R为ON时,St到E所有通道均复位为零,且移位指令不执行。
如图4-4-16中,SFT指令的首通道和末通道都是300,说明移位是在300通道内进行。特殊辅助继电器25502产生的秒脉冲(每秒产生一个脉冲)作为移位脉冲,00000的ON和OFF状态作为输入数据。当00001为ON,移位寄存器即复位,300通道内的16个位均为0,当00001为OFF后,00000输入ON状态马上在变OFF状态。在SP端输入的第一个移位脉冲前沿时刻,00000的ON状态移入30000,使30000原来的OFF状态移入30001,以下类推。在第四个移位脉冲前沿时刻30003变为ON,使01000变为ON。在第五个移位脉冲时30003为OFF,01000也变为OFF。
图4-4-16 SFT指令的例子
此外,CPM1A系列PLC还有很多其他功能的指令,在此就不一一叙述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。