OMRON常用指令.docx
- 文档编号:6497624
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:112
- 大小:1.29MB
OMRON常用指令.docx
《OMRON常用指令.docx》由会员分享,可在线阅读,更多相关《OMRON常用指令.docx(112页珍藏版)》请在冰豆网上搜索。
OMRON常用指令
第3章常用指令与编程
现代PLC都具有丰富的指令系统,利用这些指令编程,能够容易地实现各种复杂的控制操作。
对于PLC系统,指令是最基础的编程语言,掌握常用指令的功能及其应用方法,这对用好PLC及其系统设计极其重要。
本章主要介绍CS1的各类指令,但由于该机型的指令数量较多,限于篇幅等因素,本书只对常用的指令进行介绍。
按功能可将这些指令分为基本指令、数据操作指令、常用控制指令和高级指令等。
其他指令,可参考OMRON公司提供的编程手册和操作手册等资料。
3.1基本指令
可编程序控制器的基本指令主要包括顺序输入指令、顺序输出指令、顺序控制指令、定时器和计数器指令等。
这些指令用来执行以位(bit)为单位的逻辑操作,它们是用PLC替代继电器控制的基础。
梯形图中每个条件是否为ON或OFF,取决于分配给它的操作数位的状态。
一般来说,当该操作数位为1时,对应的继电器线圈通电、常开条件变为ON和常闭条件变为OFF;反之,该操作数位为0,则对应的继电器线圈断电、常开条件为OFF和常闭条件为ON。
在梯形图中,一条指令前面的常开、常闭等条件的逻辑组合产生了执行条件,执行条件是否具备,决定于指令的状态。
对于继电器线圈类指令,当执行条件ON(具备)时,则对应的继电器线圈得电;当执行条件为OFF(不具备)时,对应的继电器线圈断电。
对于功能类指令,当执行条件为ON时,该功能指令执行;当执行条件为OFF时,则该功能指令不执行。
指令行上的逻辑组合可以分成几个部分,每一部分均为一个逻辑块。
利用逻辑块能够更有效地编程。
3.1.1顺序输入指令
常用顺序输入指令包括加载、基本逻辑运算、逻辑块,主要用于对继电器进行最基本的输入操作,如表3-1所示。
表3-1顺序输入指令表
指令名称
助记符操作数
典型梯形图
一般功能
操作数范围
备注
加载
将常开触点(A)接到母线上,在每个行或块的起点处使用,常用于创建一个ON/OFF执行条件。
CIO区、W区、
H区、A区、
T区、C区、任务标志区、条件标志、时钟脉冲、使用变址寄存器间接寻址。
特
定
功
能
加载非
将常闭触点(A)接到母线上,其他同上。
与
将常开触点(A1)与常开触点(A2)串联。
与非
将(常开或常闭)触点(A1)与常闭触点(A2)串联。
或
将常开触点(A1)和常开触点(A2)并联。
指令名称
助记符
典型梯形图
一般功能
操作数范围
备注
或非
将(常开或常闭)触点(A1)和
常闭触点(A2)并联。
同上。
同上。
逻辑块与
ANDLD
将触点组(块)A和触点组(块)
B串联。
无
无
逻辑块或
ORLD
将触点组(A块)和触点组(B
块)并联。
非
NOT
每个循环将执行条件取反,在非指令的右侧需接指令(执行条件)。
条件通
UP
当输入条件从OFF→ON时,UP(521)把执行条件在一个周期内变ON。
条件断
DOWN
当输入条件从ON→OFF时,DOWN(522)把执行条件在一个周期内变ON。
指令名称
助记符操作数
典型梯形图
一般功能
操作数范围
备注
位测试
LDTST(350),ANDTST(350)和ORTST(350)指令在程序中的用途类似于LD、AND和OR指令,当指定字S中的指定位N为ON时,执行条件变为ON,反之执行条件变为OFF。
CIO区、W区、H区、A区、T区、C区、DM区、无区号EM区、有区号EM区、二进制间接DM/EM地址、BCD间接DM/EM地址、数据寄存器、使用变址寄存器间接寻址。
操作数N还可以是常数#0000~#000F,即&0~&15。
无
位测试
ANDTST
同上。
ORTST
位测试
LDTSTN
LDTSTN(351),ANDTSTN(351)和ORTSTN(351)指令在程序中的用途类似于LDNOT、ANTNOT和ORNOT指令,当指定字S中的指定位N为ON时,执行条件为OFF,反之执行条件为ON。
无
ANDTSTN
ORTSTN
2.几点说明
上表中指令除了列出的一般功能外,有些指令还加注前缀符号,下面分别加以说明。
(1)操作数位
上表中顺序输入指令的操作数,以位为单位进行操作,且不影响标志位。
(2)指令的特定功能
表中的特定功能是指这些指令具有微分和刷新功能等,其中上升沿微分的前缀标志为“@”,下降沿微分的前缀标志为“%”,刷新的前缀标志为“!
”,它们还可以组合成前缀标志为“!
@”和“!
%”。
如加载LD指令,有@LD,%LD,!
LD,!
@LD,!
%LD。
因此,上表中的特定功能指这些指令具有@,%,!
,!
@,!
%所规定的功能,在后面章节里,有一些只标明了其中一种,说明它只具有其中的某一种特定功能。
在指令符号前没有加前缀“@”和“%”及其组合标志的指令,称为微分型指令。
当执行条件为ON时,指令在每个循环周期都将执行。
而对于微分型指令,当执行条件为OFF→ON(上升沿)或ON→OFF(下降沿)变化时,该指令只执行一次。
在梯形图中,上升沿和下降沿微分指令中,通常采用↑和↓符号表示,例如@LDA的梯形图可用表示。
(3)输入指令中的UP和DOWN指令与上述上升沿微分或下降沿微分的输入指令有相似功能。
当UP(521)所接收的执行条件从OFF变为ON时,使下一个指令的执行条件变ON一个循环。
当DOWN(522)说接收的执行条件ON变为OFF时,使下一个指令的执行条件变ON一个循环。
(4)在下面的顺序输出指令中的DIFU和DIFD指令也有微分功能,且可以和刷新指令相结合。
(5)下降沿微分(%)仅LD、AND、OR和REST指令有效。
为建立其他指令的下降沿微分变化,可用DIRU(014)或DOWN(522)控制工作位来控制指令的执行。
(6)对于操作数中的可用数据区CIO、W、H、A、T、C等,如果没有特别说明,均指这些区中所有的位。
而任务标志区为TK0000~TK0031;时钟脉冲有0.02s、0.1s、0.2s、1s、1min时钟脉冲。
DM区为D00000~D32767,无区号EM区为E00000~E32767;有区号EM区为En_00000~En_32767(n=0~C)。
二进制间接DM/EM地址为D00000~D32767、E00000~E32767、En_00000~En_32767(n=0~C)。
数据寄存器为DR0~DR15。
BCD间接DM/EM地址为*D00000~*D32767、*E00000~*E32767、*En_00000~*En_32767(n=0~C)。
(7)常见的条件标志,如表3-2所示。
表3-2常见的条件标志
条件标志
编程器标志
CX-P标志
错误标志
ER
P-ER
访问错误标志
AER
P-AER
进位标志
CY
P-CY
大于标志
>
P-GT
等于标志
=
P-EQ
小于标志
<
P-LT
负标志
N
P-N
上溢出标志
OF
P-OF
下溢出标志
UF
P-UF
大于或等于标志
>=
P-GE
不等于标志
<>
P-NE
本书后面出现的特定功能以上述为参考,不再累述。
3.1.2顺序输出指令
1.顺序输出指令表
常用顺序输出指令,包括输出和输出非、各种置位和复位以及保持指令等,如表3-3所示。
表3-3常用的顺序输出指令表
指令名称
助记符
典型梯形图
一般功能
特定功能
输出
OUT
输出指令,将把执行运算的结果(执行条件)输出到指定的继电器(位),是继电器线圈的驱动指令。
!
OUT
输出非
OUTNOT
输出非指令,将把执行运算的结果(执行条件)取反后,再输出到指定的继电器(位),也是继电器线圈的驱动指令。
!
OUTNOT
保持
KEEP
用于将输出继电器置为ON并保持。
当置位端S为ON时,KEEP(011)使B为ON,直到复位端R为ON。
当S和R同时为ON时,R端输入优先。
!
KEEP
上升沿微分
DIFU
当检测到执行条件从OFF→ON(上升沿)变化瞬间,继电器触点B(位)仅接通一个扫描周期。
!
DIFU
下降沿微分
DIFD
当检测到执行条件从ON→OFF(下降沿)变化瞬间,继电器触点B(位)仅接通一个扫描周期。
注:
DIFU和DIFD指令对使用次数不加限制。
!
DIFD
置位
SET
当执行条件为ON时,把操作位B变为ON,并且当执行条件为OFF时,不影响操作数的状态。
简单讲就是将输出继电器置为ON状态,简称置位。
是
复位
RSET
当执行条件为ON时,把操作位B置为OFF,并且当执行条件为OFF时,不再影响操作数的状态。
简单讲是将输出继电器置为OFF状态,简称复位。
是
多位置位
SETA
将指定连续位的数都置为ON。
其中D为起始字,N1为起始位,N2为位数。
即SETA(530)将从D的N1位开始连续到N2位的数都变为ON,其他位保持不变。
@SETA
指令名称
助记符
典型梯形图
一般功能
特定功能
多位复位
RSTA
RSTA(531)各个表示和SETA(530)一致,只是结果相反,使从D的N1位开始连续到N2位的数都变为OFF,其他位保持不变。
@RSTA
单位置位
SETB
当执行条件为ON时,SETB(532)将指定字中的某位N置为ON。
当执行条件为OFF时,该位状态保持不变。
它与SET指令不同,SETB(532)可用在一个DM或EM字中将某一位置为ON。
其中,D为字地址,N为位(0~15)号。
@SETB
!
SETB
单位复位
RSTB
这条指令用法和SETB大致相同,不同的是当执行条件为ON时,SETB(532)将指定字中的某位N置为OFF。
@RSTB
单位输出
OUTB
OUTB(354)将指令执行条件的状态输出给指定位。
与OUT不同的是OUTB(534)能控制DM区或EM区。
当执行条件为ON时,OUTB(534)使字D的第N位变为ON;当执行条件为OFF时,OUTB(534)使字D第N位变为OFF。
@OUTB
!
OUTB
2.可用数据区的说明
(1)OUT、OUTNOT指令可用的数据区有CIO区、W区、H区、A区、TR区以及可使用变址寄存器间接寻址。
(2)KEEP、DIFU、DIFD、SET和RESET指令可用的数据区有CIO区、W区、H区、A区、使用变址寄存器间接寻址,没有TR区。
(3)SETA/RSTA、SETB/RSTB、OUTB指令可用的数据区有CIO区、W区、H区、T区、C区、DM区、无区号EM区、有区号EM区、二进制间接DM/EM地址、BCD间接DM/EM地址、数据寄存器、使用变址寄存器间接寻址。
特别是SETA/RSTA、SETB/RSTB、OUTB指令的操作数D在A区为A448~A959,N或N1、N2在A区为A000~A959。
SETB/RSTB、OUTB指令N的操作数也可以是常数,其值为0~15。
SETA/RSTA的操作数N1的范围为0~15,操作数N2的范围为0~65535。
顺序输入和顺序输出指令是最基本的指令,也是最常用的指令,这些指令在所有程序中几乎都会用到。
除此之外,还有顺序控制、定时器和计数器指令,它们也是PLC程序中常用的指令,下面分别加以介绍。
3.1.3顺序控制指令
1.顺序控制指令表
顺序控制指令包括联锁与解锁、跳转、循环以及结束指令等,如表3-4所示。
表3-4顺序控制指令表
指令
助记符
典型梯形图
一般功能
空操作
NOP(000)
此指令不执行任何操作,简称空操作。
在编程时插入该指令便于程序的检查和修改。
结束
END(001)
表示主程序结束。
程序最后结束时若无此指令,执行时将视为错误。
联锁与
联锁解除
IL(002)
ILC(003)
联锁IL(002)和联锁解除ILC(003)指令用于互锁IL(002)和ILC(003)之间的所有输出,它们总是一起使用,用于成组控制IL(002)和ILC(003)之间的指令,可解决分支点执行条件的存储问题。
跳转与
跳转结束
JMP(004)
JME(005)
JMP(004)是根据一个指定条件,可跳过程序中的某一个程序段。
当执行条件为ON时,则程序和没有跳转指令一样运行;当条件为OFF时,则程序立即跳转到跳转结束指令之后的程序继续执行,JMP(004)与
JME(005)之间维持上一扫描周期的执行结果。
条件跳转
CJP(510)
CJP(510)的用法和JMP(004)相反。
当CJP(510)的执行条件为ON时,程序直接跳转至CJP(510)指令相同编号N的第一个JME(005)去执行。
CJP(510)与JME(005)总是成对使用。
条件跳转
CJPN(511)
CJPN(511)用法几乎等同于JMP(004)。
当CJPN(511)的执行条件为OFF时,程序直接跳转至与CJPN(511)指令相同编号N的第一个JME(005)。
CJPN(511)和JME(005)总是成对使用。
多路跳转与跳转结束
JMP0(515)
JME0(516)
当JMP0(515)的执行条件为OFF时,从JMP0(515)至下一个JME0(516)的所有指令都被当作是空操作NOP(000)。
JMP0(515)和JME0(516)也是成对使用。
在程序中使用的对数无任何限制。
循环
FOR-NEXT
FOR(512)
NEXT(513)
对FOR(512)和NEXT(513)之间的指令,重复执行指定的次数N。
R然后继续执行NEXT后面的程序,可用BREAK(512)指令退出循环。
FOR(512)和NEXT(513)成对使用。
退出循环
BREAK(514)
在FOR-NEXT(513)循环中编程,BREAK(514)指令对所给的执行条件取消循环执行。
循环中余下的指令作为空操作处理。
2.可用数据区的说明
(1)END、IL/ILC、JMP0/JME0、NEXT和BREAK指令无操作数。
(2)JMP、CJP、CJPN、FOR指令可用的数据区为CIO区、W区、H区、A区、T区、C区、DM区、有区号EM区、无区号EM区、二进制间接DM/EM地址、BCD间接DM/EM地址、常数,数据寄存器使用变址寄存器间接寻址。
当这些指令的操作数为常数时,取值范围为#0000~#03FF,即&0~&1023。
(3)JME指令的操作数只能为常数,范围为#0000~#03FF,即&0~&1023。
【例3.1】分支电路的编程方法
分支电路如图3-1(a)所示。
图中A点为分支点,右侧分为三条支路,且每条支路都有触点控制,这种连接方式既不同于触点与触点的连接或逻辑块与逻辑块的连接,也不同于连续输出,因此用前面介绍的输入或逻辑等指令都不能编程,此时需要用到联锁和联锁解除指令。
分析该图的功能可以看出,当000000为OFF时,000210、000211、000212都处于断电状态;当000000为ON时,000210、000211、000212的状态取决于各自支路上的控制触点。
所以,将图(a)用联锁和联锁解除指令时,梯形图可修改为图(b)所示,000000用于控制IL和ILC之间的联锁程序执行。
当000000为ON时,IL(002)和ILC(003)之间的程序正常执行,相当于没有这对指令存在一样;当000000为OFF时,在IL和ILC之间的所有程序互锁,则三条支路都处于断开状态,每个线圈都处于断电状态。
可见,图(a)与图(b)的功能完全一样,这种电路又称为复合输出。
(a)(b)
图3-1IL/ILC在分支电路中的应用
几点说明:
①不论IL前面的条件是ON或OFF,PLC都要对IL—ILC之间的联锁程序段处理,因此使用该指令需要占用扫描时间;当条件000000由ON变为OFF时,IL与ILC指令之间的所有输出都被复位。
②IL和ILC指令可以成对使用,也可以用多个IL指令只配一个ILC指令,但不允许嵌套使用(如IL—IL—ILC—ILC)。
在图3-2中,图(a)联锁程序实现的功能和图(b)一样,图(c)是用助记符编写的同一程序。
当多个IL指令配一个ILC指令使用时,程序检查时虽然会有出错信息显示,但不影响程序的正常执行。
(a)(b)(c)
图3-2IL/ILC的应用举例
处理分支的梯形图还有另一种办法,即使用暂存继电器TR,暂存继电器TR共有16位,分别为TR00~TR15。
TR位可用来暂时存储执行结果,如果一个TR位被设置于一个分支点处,则当前的执行结果就会被存储在指定的TR位中。
例如图3-3(a)中梯形图存在一个分支点,用TR位来处理,其等效电路如图3-3(b)所示,与图(a)的功能完全一样,助记符见图的中间所示。
一般情况下,用TR位处理,比用联锁指令处理的程序要长一些。
(a)原电路(b)等效电路
图3-3用TR位处理分支的编程举例
几点说明:
①TR位只有16位,在使用次数上虽然没有限制,但在在同一程序段中,TR号不能重复使用;
②TR不是独立的编程指令,只能和LD或OUT等基本指令一起使用;
③TR位不能用编程器或其他设备进行监视;
④直接用梯形图编程时,则不用TR,该程序能够自动执行图(a)的梯形图;如果梯形图用图(b)表示时,则会提示“会和地址混淆,TR00不允许作为符号名”。
所以,图(b)是对应于图(a)的一种等效,只是为了说明问题方便。
【例3.2】跳转指令的编程方法
如图3-4所示为JMP(004)和JME(005)指令的应用示例
(a)(b)(c)
图3-4JMP(004)和JME(005)指令的应用示例
上例中,000000作为JMP00指令的条件,当000000为ON时,JMP和JME指令之间的程序顺序连续执行,相当于没有这对指令一样,不会发生跳转;当000000为OFF时,跳过JMP和JME指令之间的程序,即输出000210、000211和000212保持原来状态(当前值),转到JME00之外的程序去执行。
在程序的梯形图中使用图(b)形式进行编程。
使用JMP和JME指令时,需注意以下几点:
1在一个程序中可以有多组JMP和JME指令,用跳转号对其进行编号,跳转号的范围为00~1023。
若跳转号不在此范围时,ER将出错(ON)。
2跳转号00是专用跳转号。
当JMP00指令的输入条件OFF时,在JMP00和JME00指令之间的程序将被扫描但是不被执行。
因此,它将占用扫描时间,而其他跳转号的跳转指令在相同条件下,相应程序段不被扫描;
3在一个程序中,JMP00和JME00指令可以多次使用,而其他跳转号的跳转指令只能使用一次,故JMP00和JME00指令可以不成组使用,即“JMP…JMP…JME”格式。
虽然这种格式在程序检查时会提示出错,但程序能够正常执行。
④JME(005)-JMP(004)可做循环用,在JMP(004)前用JME(005),只要JMP(004)的执行条件OFF,在JME(005)和JMP(004)间的指令会重复执行,如果执行条件不变ON或在最大循环时间内不执行结束指令END(001)会产生循环时间太长错误。
⑤不同的任务块之间不允许相互跳转,即JMP(004)和JME(005)必须在同一任务块中使用,否则ERR会出错(ON)。
【例3.3】循环指令的编程方法
FOR(512)和NEXT(513)循环可以嵌套使用,且多至15级,如图3-5(a)所示为FOR(512)和NEXT(513)循环调用的举例。
在这个例子中,程序段A、B和C按A→B→B→C,A→B→B→C和A→B→B→C的顺序循环执行3次。
使用一个BREAK(514),则从一个FOR-NEXT循环中退出;若需要从嵌套循环中退出,则需要多个BREAK(514)指令,BREAK(514)后循环中余下的指令作空操作处理。
如图3-5(b)所示为BREAK(514)在多个FOR-NEXT循环指令中的运用。
图3-5(c)为循环的一个简单例子,循环程序段中将D00100的内容传给D00200中所示的地址里,然后,D00200中的内容+1。
循环程序段循环了3次。
图3-5FOR(512)和NEXT(513)循环指令的应用示例
使用循环指令FOR-NEXT时,应注意以下问题。
①当FOR-NEXT的嵌套循环数超过15个时,错误标志ER为ON;
②FOR-NEXT循环一定要编在同一个任务中,如果这些指令不在同一个任务中,则不执行重复;
③JMP(004)跳转指令可以在FOR-NEXT循环中执行,但它不能跳出FOR-NEXT循环;
④块编程指令、多重跳转和结束指令、步定义和步开始指令不能用在FOR-NEXT循环指令中。
【例3.4】KEEP指令的应用
利用KEEP指令可以设计报警输出,如图3-6所示,图中000000、000001和000002为异常输入信号。
当控制电路发生异常情况时,继电器380000工作,使输出继电器000200得电,可接通报警信号灯进行报警,直至复位(R)输入时报警才能解除。
图3-6应用KEEP指令的梯形图程序
利用SETB(532)/RSTB(533)也可以和KEEP指令一样直接对操作数的位进行置位或复位,但使用时也有不同点。
KEEP指令的置位和复位输入必须与这个指令一起被编入程序,而SETB(532)/RSTB(533)完全可以独立编程,并可任意次使用。
3.1.4定时器和计数器指令
定时器和计数器的指令主要包括普通定时器、高速定时器、1ms定时器、累积定时器、长定时器、多路输出定时器和普通计数器、可逆计数器以及复位定时器/计数器。
除长定时器、多路输出定时器的指令外,其他的指令都有一个定时器/计数器(编)号N。
其中,1ms定时器号为0000~0015之间,其他的定时器号为0000~4095之间。
在编程时,定时器号不能重叠。
计数器号为0000~4095,计数器号也不能重叠。
与小型机不同,CS1系列的定时器号和计数器号是各自独立编号的。
在定时方式上,除了累积定时器和多路输出定时器是递增方式之外,其他的都为递减方式。
在刷新方法上,除了可以用BCD码之外,还可以用二进制数设置。
用二进制数时,只要在BCD码指令助记符的后缀加“X”字母即可。
如普通定时器TIM,输入是BCD码;而TIMX(550)输入为二进制数。
输入BCD码的设定值(SV)为0~9999,而二进制数的SV为0~65535。
当使用二进制数指令进行计算时,其中间结果也可以直接用于定时器/计数器的SV(值)。
1.普通定时器和高速定时器
(1)普通定时器指令TIM/TIMX(550)
普通定时器TIM/TIMX(550)是单位为0.1s的递减计数器,其梯形图如图3-7所示。
图3-7普通定时器的梯形图
N为定时器号,TIM和TIMX(550)的定时器号都为0~4095;SV为设定值,TIM的SV为0~9999,定时精度为0.1s,则定时的时间范围为0~999.9S;TIMX(550)的SV为0~65535,定时精度是0.1s,故定时范围为0~6553.5s。
在CIO区、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OMRON 常用 指令