plc编程常用指令介绍_第1页
plc编程常用指令介绍_第2页
plc编程常用指令介绍_第3页
plc编程常用指令介绍_第4页
plc编程常用指令介绍_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 常用指令与编程现代plc都具有丰富的指令系统,利用这些指令编程,能够容易地实现各种复杂的控制操作。对于plc系统,指令是最基础的编程语言,掌握常用指令的功能及其应用方法,这对用好plc及其系统设计极其重要。本章主要介绍cs1的各类指令,但由于该机型的指令数量较多,限于篇幅等因素,本书只对常用的指令进行介绍。按功能可将这些指令分为基本指令、数据操作指令、常用控制指令和高级指令等。其他指令,可参考omron公司提供的编程手册和操作手册等资料。3.1 基本指令可编程序控制器的基本指令主要包括顺序输入指令、顺序输出指令、顺序控制指令、定时器和计数器指令等。这些指令用来执行以位(bit)为单位的

2、逻辑操作,它们是用plc替代继电器控制的基础。梯形图中每个条件是否为on或off,取决于分配给它的操作数位的状态。一般来说,当该操作数位为1时,对应的继电器线圈通电、常开条件变为on和常闭条件变为off;反之,该操作数位为0,则对应的继电器线圈断电、常开条件为off和常闭条件为on。在梯形图中,一条指令前面的常开、常闭等条件的逻辑组合产生了执行条件,执行条件是否具备,决定于指令的状态。对于继电器线圈类指令,当执行条件on(具备)时,则对应的继电器线圈得电;当执行条件为off(不具备)时,对应的继电器线圈断电。对于功能类指令,当执行条件为on时,该功能指令执行;当执行条件为off时,则该功能指令

3、不执行。指令行上的逻辑组合可以分成几个部分,每一部分均为一个逻辑块。利用逻辑块能更有效地编程。3.1.1顺序输入指令常用顺序输入指令包括加载、基本逻辑运算、逻辑块,主要用于对继电器进行最基本的输入操作,如表3-1所示。表3-1 顺序输入指令表指令名称助记符a典型梯形图一般功能可用数据区备注加载ld 以常开触点a开始一个逻辑运算,用于将常开触点a接到母线上,或在分支接点处使用。cio区、w区、h区、a区、t区、c区、任务标志区、条件标志、时钟脉冲、使用变址寄存器间接寻址。特定功能加载非ld nota1a2a 以常闭触点a开始一个逻辑运算,可将一常闭触点a接到母线或分支接点上。其他的同上条指令。与

4、and与逻辑操作指令,用于将一个常开触点a1和另一个常开触点a2串联。与非and nota1a2 用一个常开触点a1和另一个常闭触点a2串联,其他的同上条指令。或or a1a2或逻辑操作指令,用于将一个常闭触点a1和另一个常闭触点a2并联。指令名称助记符a1a2典型梯形图一般功能可用数据区备注或非or not用一个常开触点a1和另一个常闭触点a2并联,其他的同上条指令。cio区、w区、h区、a区、t区、c区、任务标志区、条件标志、时钟脉冲、使用变址寄存器间接寻址。特定功能逻辑块与and ldab逻辑块与指令,用于触点组a和触点组b之间的串联。 无无逻辑块或or ld a b逻辑块或指令,用于触

5、点组a和触点组b之间的并联。 非notnot(520)取反指令,该指令的功能是将该指令的运算结果取反。条件onupup(521)当执行条件从off on时,up(521)把执行条件在一个周期内变on。条件offdowndown(522)当执行条件从on off时,down(522)把执行条件在一个周期内变on 。位测试ld tsttst(350)s nld tst(350),and tst(350)和or tst(350)指令在程序中的用途类似于ld、and 和or 指令,当指定字s中的指定位n为on 时,执行条件变为on , 反之执行条件变为off 。cio区、w区、h区、a区、t区、c区、

6、dm区、无区号em区、有区号em区、二进制间接dm/em地址、bcd间接dm/em地址、数据寄存器、使用变址寄存器间接寻址。操作数n还可以是常数#0000#000f,即&0&15。指令名称助记符典型梯形图一般功能可用数据区备注位测试and tsts nandtst(350)见上。同上。无or tsts ntst(350)or位测试ld tstns ntstn(351)ld tstn(351)( t tst(350)ld tstn(351), and tstn(351)和or tstn(351)指令在程序中的用途类似于ld not、ant not 和or not 指令,当指定字s中的指定位n为o

7、n 时,执行条件为off ,反之执行条件为on 。cio区、w区、h区、a区、t区、c区、dm区、无区号em区、有区号em区、二进制间接dm/em地址、bcd间接dm/em地址、数据寄存器、使用变址寄存器间接寻址。操作数n还可以是常数#0000#000f,即&0&15。无and tstnand tst(350)s ntstn(351)or tstnor s ntstn(351) tst(350)2. 几点说明上表中指令除了列出的一般功能外,有些指令还加注前缀符号,下面分别加以说明。(1)操作数位上表中顺序输入指令的操作数,以位为单位进行操作,且不影响标志位。 (2)指令的特定功能表中的特定功能

8、是指这些指令具有微分和刷新功能等,其中上升沿微分的前缀标志为“”,下降沿微分的前缀标志为“%”,刷新的前缀标志为“!”,它们还可以组合成前缀标志为 “!”和“!%”。如加载ld指令,有ld,%ld,!ld,!ld,!%ld。因此,上表中的特定功能指这些指令具有,%,!,!,!%所规定的功能,在后面章节里,有一些只标明了其中一种,说明它只具有其中的某一种特定功能。a在指令符号前没有加前缀 “”和“%”及其组合标志的指令,称为微分型指令。当执行条件为on时,指令在每个循环周期都将执行。而对于微分型指令,当执行条件为offon(上升沿)或onoff(下降沿)变化时,该指令只执行一次。在梯形图中,上升

9、沿和下降沿微分指令中,通常采用和符号表示,例如ld a的梯形图可用 表示。(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)控制工作位来控制指令的执行。

10、(6)对于操作数中的可用数据区cio、w、h、a、t、c等,如果没有特别说明,均指这些区中所有的位。而任务标志区为tk0000tk0031;时钟脉冲有0.02s、0.1s、0.2s、1s、1min时钟脉冲。dm区为d00000d32767,无区号em区为e00000e32767;有区号em区为en_00000en_32767(n=0c)。二进制间接dm/em地址为d00000d32767、e00000e32767、en_00000en_32767(n=0c)。数据寄存器为dr0dr15。bcd间接dm/em地址为* d00000*d32767、*e00000*e32767、*en_00000*

11、en_32767(n=0c)。(7)常见的条件标志,如表3-2所示。 表3-2 常见的条件标志条件标志编程器标志cx-p标志错误标志erp-er访问错误标志aerp-aer进位标志cyp-cy大于标志p-gt等于标志p-eq小于标志p-lt负标志np-n上溢出标志ofp-of下溢出标志ufp-uf大于或等于标志p-ge不等于标志p-ne本书后面出现的特定功能以上述为参考,不再累述。3.1.2顺序输出指令1.顺序输出指令表常用顺序输出指令,包括输出和输出非、各种置位和复位以及保持指令等,如表3-3所示。表3-3 常用的顺序输出指令表指令名称助记符a典型梯形图一般功能特定功能输出out a输出指令

12、,将把执行运算的结果(执行条件)输出到指定的继电器(位),是继电器线圈的驱动指令。!out输出非out not输出非指令,将把执行运算的结果(执行条件)取反后,再输出到指定的继电器(位),也是继电器线圈的驱动指令。!out not保持r(复位)s(置位)bkeep(011)keep用于将输出继电器置为on并保持。当置位端s为on时,keep(011)使b为on,直到复位端r为on。当s和r同时为on时,r端输入优先。!keep上升沿微分difubdifu(013)当检测到执行条件从offon(上升沿)变化瞬间,继电器触点b(位)仅接通一个扫描周期。!difu下降沿微分difdbdifd(014

13、)当检测到执行条件从onoff(下降沿)变化瞬间,继电器触点b(位)仅接通一个扫描周期。注:difu和difd指令对使用次数不加限制。!difd置位setsetb当执行条件为on时,把操作位b变为on,并且当执行条件为off时,不影响操作数的状态。简单讲就是将输出继电器置为on状态,简称置位。是复位rsetrsetb 当执行条件为on时,把操作位b置为off,并且当执行条件为off时,不再影响操作数的状态。简单讲是将输出继电器置为off状态,简称复位。是多位置位setaseta(530) dn1 n2将指定连续位的数都置为on。其中d为起始字, n1为起始位, n2为位数。即 seta(530

14、)将从d的n1位开始连续到n2位的数都变为on,其他位保持不变。seta指令名称助记符典型梯形图一般功能特定功能多位复位rstarsta(531) dn1 n2rsta(531)各个表示和seta(530)一致,只是结果相反,使从d的n1位开始连续到 n2位的数都变为off,其他位保持不变。rsta单位置位setbsetb(532) dn 当执行条件为on时,setb(532)将指定字中的某位n置为on。当执行条件为off时,该位状态保持不变。它与set指令不同,setb(532)可用在一个dm或em字中将某一位置为on。其中,d为字地址,n为位(015)号。setb!setb单位复位rstb

15、rstb(533)dn这条指令用法和setb大致相同,不同的是当执行条件为on时,setb(532)将指定字中的某位n置为off。rstb单位输出outboutb(534)dnoutb(354)将指令执行条件的状态输出给指定位。与out不同的是outb(534)能控制dm区或em区。当执行条件为on时,outb(534)使字d的第n位变为on;当执行条件为off时,outb(534)使字d第n位变为off。outb!outb2. 可用数据区的说明(1)out、out not指令可用的数据区有cio区、w区、h区、a区、tr区以及可使用变址寄存器间接寻址。(2)keep、difu、difd、se

16、t和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区为a448a959,n或n1、n2在a区为a000a959。setb/rstb、outb指令n的操作数也可以是常数,其值为015。seta/rsta的操作数n1的范围为015,操作数n2的范围为065

17、535。顺序输入和顺序输出指令是最基本的指令,也是最常用的指令,这些指令在所有程序中几乎都会用到。除此之外,还有顺序控制、定时器和计数器指令,它们也是plc程序中常用的指令,下面分别加以介绍。3.1.3 顺序控制指令1. 顺序控制指令表顺序控制指令包括联锁与解锁、跳转、循环以及结束指令等,如表3-4所示。表3-4 顺序控制指令表指 令助记符典型梯形图一般功能空操作nop(000)此指令不执行任何操作,简称空操作。在编程时插入该指令便于程序的检查和修改。结束end(001)end(001)il(002)ilc(003)njmp(004)njme(005)ncjp(510)ncjpn(511)jm

18、p0(515)jme0(516)nfor(512)next(513)表示主程序结束。程序最后结束时若无此指令,执行时将视为错误。联锁与联锁解除il(002)ilc(003)联锁il(002) 和联锁解除ilc(003) 指令用于互锁il(002)和ilc(003)之间的所有输出,它们总是一起使用,用于成组控制il(002) 和ilc(003)之间的指令, 可解决分支点执行条件的存储问题。跳转与跳转结束jmp(004)jme(005)jmp(004)是根据一个指定条件,可跳过程序中的某一个程序段。当执行条件为on时,则程序和没有跳转指令一样运行;当条件为off时,则程序立即跳转到跳转结束指令之后

19、的程序继续执行,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

20、(516)当jmp0(515)的执行条件为off时,从jmp0(515)至下一个jme0(516)的所有指令都被当作是空操作nop(000)。jmp0(515)和jme0(516)也是成对使用。在程序中使用的对数无任何限制。循环for-nextfor(512)next(513)对for(512)和next(513)之间的指令,重复执行指定的次数n。r然后继续执行next后面的程序,可用break(512)指令退出循环。for(512)和next(513)成对使用。退出循环break(514)break(514)(514)(514)在for-next(513)循环中编程,break(514)指令

21、对所给的执行条件取消循环执行。循环中余下的指令作为空操作处理。 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

22、-1(a)所示。图中a点为分支点,右侧分为三条支路,且每条支路都有触点控制,这种连接方式既不同于触点与触点的连接或逻辑块与逻辑块的连接,也不同于连续输出,因此用前面介绍的输入或逻辑等指令都不能编程,此时需要用到联锁和联锁解除指令。分析该图的功能可以看出,当000000为off时,000210、000211、000212都处于断电状态;当000000为on时,000210、000211、000212的状态取决于各自支路上的控制触点。所以,将图(a)用联锁和联锁解除指令时,梯形图可修改为图(b)所示, 000000用于控制il和ilc之间的联锁程序执行。当000000为on时,il(002)和il

23、c(003)之间的程序正常执行,相当于没有这对指令存在一样;当000000为off时,在il和ilc之间的所有程序互锁,则三条支路都处于断开状态,每个线圈都处于断电状态。可见,图(a)与图(b)的功能完全一样,这种电路又称为复合输出。000000000213000212000211000210(002)(003)000000000210000211000212000213 (a) (b) 图3-1 il/ilc在分支电路中的应用几点说明: 不论il前面的条件是on或off,plc都要对ililc之间的联锁程序段处理,因此使用该指令需要占用扫描时间;当条件000000由on变为off时,il与i

24、lc指令之间的所有输出都被复位。 il和ilc指令可以成对使用,也可以用多个il指令只配一个ilc指令,但不允许嵌套使用(如ilililcilc)。在图3-2中,图(a)联锁程序实现的功能和图(b)一样,图(c)是用助记符编写的同一程序。当多个il指令配一个ilc指令使用时,程序检查时虽然会有出错信息显示,但不影响程序的正常执行。000000000000021100021200021000021000021100021200021200021000021100000(002)(002)(003)(a) (b) (c) 图3-2 il/ilc的应用举例0000000000000000000000

25、210000211000212000210000211000212000212000211000210处理分支的梯形图还有另一种办法,即使用暂存继电器tr,暂存继电器tr共有16位,分别为tr00tr15。tr位可用来暂时存储执行结果,如果一个tr位被设置于一个分支点处,则当前的执行结果就会被存储在指定的tr位中。例如图3-3 (a) 中梯形图存在一个分支点,用tr位来处理,其等效电路如图3-3 (b) 所示,与图 (a) 的功能完全一样,助记符见图的中间所示。一般情况下,用tr位处理,比用联锁指令处理的程序要长一些。 (a)原电路 (b)等效电路图3-3 用tr位处理分支的编程举例几点说明:

26、 tr位只有16位,在使用次数上虽然没有限制,但在在同一程序段中,tr号不能重复使用; tr不是独立的编程指令,只能和ld或out等基本指令一起使用; 直接用梯形图形式编程时,则不用tr,该程序能够自动执行; tr位不能用编程器或其他设备进行监视。【例3.2】 跳转指令的编程方法 如图3-4所示为 jmp(004)和jme(005)指令的应用示例000000jmp00000001000210000002000211000003000212jme00ld 000000jmp(004) 00ld 000001out 000210ldnot 000002out 000211ld 000003out

27、000212jme(005) 00000000000210000211000212000013jme00jmp00000001 (a) (b) (c)图3-4 jmp(004)和jme(005)指令的应用示例上例中,000000作为jmp00指令的条件,当000000为on时,jmp和jme指令之间的程序顺序连续执行,相当于没有这对指令一样,不会发生跳转;当000000为off时,跳过jmp和jme指令之间的程序,即输出000210、000211和000212保持原来状态(当前值),转到jme00之外的程序去执行。使用jmp和jme指令时,需注意以下几点: 在一个程序中可以有多组jmp和jme

28、指令,用跳转号对其进行编号,跳转号的范围为001023。若跳转号不在此范围时,er将出错(on)。 跳转号00是专用跳转号。当jmp00指令的输入条件off时,在jmp00和jme00指令之间的程序将被扫描但是不被执行。因此,它将占用扫描时间,而其他跳转号的跳转指令在相同条件下,相应程序段不被扫描; 在一个程序中,jmp00和jme00指令可以多次使用,而其他跳转号的跳转指令只能使用一次,故jmp00和jme00指令可以不成组使用,即“jmpjmpjme”格式。虽然这种格式在程序检查时会提示出错,但程序能够正常执行。 jme(005)-jmp(004)可做循环用,在jmp(004)前用jme(

29、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按abbc ,abbc 和 abbc的顺序循环执行3次。 使用一个break(

30、514),则从一个for-next循环中退出;若需要从嵌套循环中退出,则需要多个break(514)指令,break (514)后循环中余下的指令作空操作处理。如图3-5(b)所示为break(514)在多个for-next循环指令中的运用。图3-5(c)为循环的一个简单例子,循环程序段中将d00100的内容传给d00200中所示的地址里,然后,d00200中的内容+1。循环程序段循环了3次。for#2a for#3b nexttttc nextttt(a)1for#3nextttt(b)for#2nextttt2break退出循环2break退出循环1(c)for#3nexttttmovd0

31、01000d002000+d002000重复3次图3-5 for(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、0

32、00001和000002为异常输入信号。当控制电路发生异常情况时,保持继电器000015工作,是输出继电器000200得电,可接通报警信号灯进行报警,直至复位(r)输入时报警才能解除。keep(011)000015 00000000005000000000000200rs000003000001000002000015图3-6 应用keep指令的梯形图程序利用setb(532)/rstb(533)也可以和keep指令一样直接对操作数的位进行置位或复位,但使用时也有不同点。keep指令的置位和复位输入必须与这个指令一起被编入程序,而setb(532)/rstb(533)完全可以独立编程,并可任意

33、次使用。3.1.4 定时器和计数器指令定时器和计数器的指令主要包括普通定时器、高速定时器、1ms定时器、累积定时器、长定时器、多路输出定时器和普通计数器、可逆计数器以及复位定时器/计数器。除长定时器、多路输出定时器的指令外,其他的指令都有一个定时器/计数器(编)号n。其中,1ms定时器号为00000015之间,其他的定时器号为00004095之间。在编程时,定时器号不能重叠。计数器号为00004095,计数器号也不能重叠。与小型机不同,cs1系列的定时器号和计数器号是各自独立编号的。在定时方式上,除了累积定时器和多路输出定时器是递增方式之外,其他的都为递减方式。在刷新方法上,除了可以用bcd码

34、之外,还可以用二进制数设置。用二进制数时,只要在bcd码指令助记符的后缀加“x”字母即可。如普通定时器tim,输入是bcd码;而timx(550)输入为二进制数。输入bcd码的设定值(sv)为09999,而二进制数的sv为065535。当使用二进制数指令进行计算时,其中间结果也可以直接用于定时器/计数器的sv(值)。1.普通定时器和高速定时器(1) 普通定时器指令tim/timx(550) 普通定时器tim/timx(550)是单位为0.1s的递减计数器,其梯形图如图3-7所示。timx(550)nsvtimnsv 图3-7 普通定时器的梯形图n 为定时器号,tim和timx(550)的定时器

35、号都为04095;sv为设定值,tim的sv为09999,定时精度为0.1s,则定时的时间范围为0999.9s;timx(550)的sv为065535,定时精度是0.1s,故定时范围为06553.5s。在cio区、w区、h区、a区、定时器区、dm区、无区号em区和有区号em区的字可以作为sv的操作数;二进制间接dm/em地址、bcd间接dm/em地址、常数数据寄存器、使用变址寄存器间接寻址这些数据以及常数也可以作为sv的操作数。当sv为常数时,若输入用bcd码表示,应加前缀#符号;用二进制数表示时,其前缀符号和数的范围为&0000&65535,而用十六进制表示为#0000#ffff。n操作数只

36、能是定时器区和使用寄存器区的间接寻址数据。关于sv和n的设置涉及到标志问题,如果n通过变址寄存器间接寻址,但变址寄存器中的地址不是定时器pv的地址;或者在bcd模式下,而sv不包含bcd数据时,则er标志都变为on。等于标志(=)、负标志(n)为off。其他情况下的er标志为off。当定时器输入为off时,指定的定时器n被复位,即定时器当前值(pv)恢复为sv,并且完成标志位变为off;当定时器输入(条件)从off到on时,定时器开始从pv=sv递减,只要定时器输入保持为on,则当前值每间隔0.1s就自动减1,且连续递减;直到pv减为0000时,定时器的完成标志才变为on;此后,pv值和完成标

37、志状态将保持,直到重新启动定时器,即定时器输入由off再变on时, pv恢复为sv,重新进入定时。定时器的时序关系如图3-8所示。on定时器当前值offonoffonoff定时器输入完成标志图3-8 普通定时器的时序图(2) 高速定时器指令timh(015)/timhx(551)timh(015)nsv 高速定时器timh(015)/timhx(551)的梯形图如图3-9所示。timhx(015)nsv 图3-9 高速定时器的梯形图高速定时器timh(015)和定时器tim的符号含义相同,n是定时器号,其范围为04095,sv为设定值,设定范围为09999。它们的主要差异是定时精度不同。高速定

38、时器timh(015)/timhx(551)的定时精度为0.01s,所以timh(015)的定时范围为099.99s,而timhx(551)的定时范围为0655.35s。高速定时器timh(015)的sv 和n值的操作数、功能和注意事项与普通定时器基本一致,这里不再累述。2.其他定时器指令(1) 1ms定时器指令tmhh(540)1ms定时器指令是单位为1ms的递减定时器,其梯形图如图3-10所示。tmhhx(540) n svtmhh(540) n sv图3-10 1ms定时器的梯形图这里的n与前面的定时器号不同,只能在十进制的00000015之间选择。sv的设定值为09999,则定时时间为

39、09.999s;tmhhx(552)的sv为065535,所以它的定时范围为065.535s。1ms定时器指令的基本功能与tim指令一致,但定时器的精度为0.001s,即1ms。1ms定时器指令的操作数sv 与tim指令一致;操作数n也在定时器区和可使用变址寄存器间接寻址,只是范围不一样。1ms定时器指令的注意事项也与tim 指令一致。(2)累积定时器指令ttim(087)累积定时器ttim(087)/ttimx(555)是单位为0.1s的递增定时器,其梯形图如图3-11所示。ttim(087) n sv定时器输入复位输入ttimx(087) n sv定时器输入复位输入 图3-11 累积定时器

40、的梯形图n的范围为04095,ttim(087)的设定值sv必须为#0000#9999。所以,其累积时间为0999.9s。ttimx(555) 的设定值sv必须为&0&65535,用十六进制表示为#0000#ffff,其累积时间为06553.5s。当定时器输入(条件)为on,ttim(087)开始从当前值递增。当定时器输入为off,定时器当前值会停止递增,但维持原值。当定时器输入又为on,定时器在原值的基础上继续递增计时。当前值pv到达设定值sv时,则定时器完成标志变为on。其时序关系如图3-12所示。定时器输入定时器pv值完成标志位复位输入pv保持计时继续sv图3-12 累积定时器的时序图累

41、积定时器与其他定时器的最大区别在于其输入为off时,pv值会维持原值,在输入再次为on时,pv值会继续递增。这种功能可应用于许多间断定时的控制程序,可防止意外如断电时能够记忆前段的计时时间。例如在传送带操作过程中意外断电,当继续上电后,在累积定时器的控制下,传送物品可以准时传送。(3)长定时器timl(542)/ timlx(534)长定时器timl(542)是单位为0.1s的递减定时器,其梯形图如图3-13所示。timl(542)d1d2svtimlx(542)d1d2sv 。图3-13 长定时器的梯形图d1为完成标志,其中0位作为timl(542)的完成标志,其他位不用;d2为pv字,由d

42、2和d2+1两个字的bcd码组成,d2和d2+1必须在同一数据区; sv字由s和s+1两个字的bcd码组成,sv和sv+1必须在同一数据区,timl(542)的sv范围为099999999,而timl(542)的sv范围为#0#99999999。因此,timl(542)最长的定时时间可达到115天,而timlx(534)最长的定时时间可达49710天。上述三者操作数可用的数据区为cio区、w区、h区、a区、dm区、无区号em区、有区号em区。在这些区里,d1操作数为这些区里所有的单元,而d2和sv这些区的最高单元不可用,如d1的操作是在cio区为00006143,而d2和sv则为0000614

43、2。另外采用二进制间接(寻址)dm/em区、bcd间接dm/em区和使用变址寄存器间接寻址时,都可作为这三者的操作数。对于sv,定时器区、计数器区的单元和常数也可以用作操作数。 注意:d2和d2+1中包含的pv值或sv和sv+1中包含的sv值,如果它们不是bcd码,则长定时器的错误标志(er)为on,其他情况都为off。(4)多路输出定时指令mtim(543)/ mtimx(544)多路输出定时器指令mtim(543)/ mtimx(544)是一个具有8个独立的sv和完成标志,单位为0.1s的递增定时器,梯形图如图3-14所示。mtimx(544)d1d2smtim(543)d1d2s图3-1

44、4 多路输出定时器的梯形图d1为完成标志字,包括了8位完成标志、暂停和复位(位),其中前8位即第0位到第7位为完成标志位,第8、9位为复位和暂停位。d2为pv字,其数值范围为#0000#9999。s为具有8个独立的sv字,其中s0s+7的每个s字分别对应一个完成标志位,即s0对应d1中的第0位完成标志位,s+1对应d1中的第1位完成标志位,依此类推,s+7对应d1字中的第7位完成标志位。每个sv的bcd码范围为#0000#9999。mtimx(544)指令仅与mtim(543)的sv范围不同而已,为&0&65535,用十六进制表示为#0#ffff。d1、d2和s的操作数可用的数据区为cio区、

45、w区、h区、a区、dm区、无区号em区、有区号em区、定时器区、计数器区。d1和d2为上述区中所有的字,而s为这些区除后面7个字的所有字。如在cio区,d1和d2为00006143,而s 为00006136。另外二进制间接dm/em地址,bcd间接dm/em地址、使用变址寄存器间接寻址也可作为这三者的操作数。特别提醒的是数据寄存器dr0dr15可作为d2的操作数,而常数不能作为这三者的操作数。当执行条件为on,而复位和暂停位为off时,mtim(543)在d2中pv值递增(加);如果复位为off和暂停位为on时,定时器则暂时停止递加pv值,并保持原值;当暂停位再次变为off时,mtim(543

46、)恢复定时,即在原来定时器定时的(保持值)基础上继续递加pv值。每次mtim(543)执行后,pv(d2中的内容)会与s0s+7中的8个sv相比较。如果其中一些小于或等于pv值,相应完成标志(d1位0007)会变为on。当pv递增到达最大值9999时,则pv自动复位到0000,并且所有的完成标志位都变为off。当复位为on时,不管暂停位如何,pv都复位到0000,所有的标志位都变为off,并且pv不会被更新。如果d1指定为cio区域中的字,则可用set和rsst指令来控制暂停和复位(位状态)。当使用少于8个sv时,则对应最后一个被用的sv后面的字应设置为0000,mtim(543)会忽略为sv

47、值为0000及余下的所有sv。多路输出定时器的pv值及完成标志都在mtim(543)执行时刷新。多路输出定时器用在il(002)和ilc(003)、jmp(004)和jme(005)程序时,其pv值都会被保持。用mtim(543)时要确定完成标志和pv(d1和d2)所指定的字没有被其他指令所用,否则,定时器可能导致定时不准确。3.普通计数器和可逆计数器指令(1)普通计数器cnt/ cntx(546) 普通计数器cnt是递减计数器,其梯形图如图3-15所示。cntx(546) n sv复位输入r计数输入cpcnt n sv复位输入r计数输入cp 图3-15 普通计数器的梯形图图中,n为计数器号,

48、十进制数范围为04095,一般不能重叠,如果有两个计数器使用相同的计数器号,但并不同时使用,在程序检查时会产生一条重复错误,但不影响计数器的正常操作;sv为设置值,cnt的sv范围为00019999,而cntx的sv范围为&0&65535。sv操作数可用的数据区规定为cio区、w区、h区、a区、t区、dm区、em区的所有字,都可以作为sv的操作数;另外,二进制间接dm/em地址、bcd间接dm/em地址、常数数据寄存器、使用变址寄存器间接寻址这些数据也可以作为sv的操作数。 计数器为递减计数。当复位端r为off,在cp端执行条件从off变on(相当于上升沿)时,计数器从pv=sv值开始依次减计数;当计数器的当前值pv计到零时,计数器的完成标志变为on,并一直保持on,直到复位为止。计数器具有断电保持功能,当电源断电时,计数器的当前值保持不变。当sv不是bcd数或间接寻址的dm通道不存在时,er标志位置为on(出错)。(2)可逆计数器指令cntr(012)/ cntrx(012)可逆计数器指令的梯形图,如图3-16所示,n和sv的操作数规定与cnt指令一致。cntr(012)nsv增量输入减量输入复位输入cntrx(012)nsv增量输入减量输入复位输入 图3-16 可逆计数器指令的梯形图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论