《数据传送和数据比较指令精品文稿.ppt》由会员分享,可在线阅读,更多相关《数据传送和数据比较指令精品文稿.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据传送和数据比较指令第1页,本讲稿共46页数据传送和数据比较指令有两个以上操作数数据传送和数据比较指令有两个以上操作数要注意这些指令的操作数的含义及其范围要注意这些指令的操作数的含义及其范围这些指令多数都有微分和非微分两种形式这些指令多数都有微分和非微分两种形式要注意指令微分和非微分形式时用法的区别要注意指令微分和非微分形式时用法的区别数据传送指令数据传送指令数据比较指令数据比较指令第2页,本讲稿共46页一、一、数据传送指令数据传送指令单字传送指令单字传送指令MOV数字数字传送指令传送指令MOVD位位传送指令传送指令MOVB块设置指令块设置指令BSET块块传送指令传送指令XFER单字单字分配
2、指令分配指令DIST数据交换数据交换指令指令XCHG数据调用数据调用指令指令COLL第3页,本讲稿共46页S:源数据(通道或十六进制数:源数据(通道或十六进制数)D:目的通道号:目的通道号功功能能MOV(21)SDMOV(21)SDMOV(21)SDMOV(21)SD非微分:在执行条件为非微分:在执行条件为ON时,将时,将S传送到传送到D中中(每个扫描周期都执行)。(每个扫描周期都执行)。微微分:在执行条件分:在执行条件OFFON时,将时,将S传送到传送到D中中(只在条件满足时刻执行一次)。(只在条件满足时刻执行一次)。1.单字传送指令单字传送指令MOV(21)/MOV(21)第4页,本讲稿共
3、46页LD25315MOV(21)#0198HR00在在PLC上电的第一个扫描周期,把上电的第一个扫描周期,把0198传送到传送到HR00中中25315MOV(21)#0198HR00分析程序的功能,并写出语句表分析程序的功能,并写出语句表.使用使用MOV指令举例指令举例(1)在此后的各扫描周期,不再执行在此后的各扫描周期,不再执行MOV指令。指令。第5页,本讲稿共46页使用使用DIFU指指令有何作用令有何作用?只要只要0000OFFON,就执,就执行行一次一次MOV指令。指令。2000000000DIFU(13)20000MOV(21)LR00HR00分析程序的功能:分析程序的功能:使用使用
4、MOV指令举例指令举例(2)把把LR00中的内容传送到中的内容传送到HR00中。中。LR00中的内容在变中的内容在变化,必要时将其传化,必要时将其传送到送到HR00中。中。第6页,本讲稿共46页00000MOV(21)LR00HR00分析程序的功能分析程序的功能使用使用MOV指令举例(指令举例(3)只要只要00000OFFON,就执,就执行行一次一次MOV指令。指令。把把LR00中的内容传送到中的内容传送到HR00中。中。与举例(与举例(2)功能相同。)功能相同。2000000000DIFU(13)20000MOV(21)LR00HR00第7页,本讲稿共46页指令指令MOV几种使用方法的区别几
5、种使用方法的区别(a)与与(c)相同,指令相同,指令MOV都只在都只在00000OFFON时执行时执行一次。一次。(b)指令指令MOV只在只在PLC上电后的第一个扫描周期执行一上电后的第一个扫描周期执行一次。次。25315MOV(21)LR00HR0000000MOV(21)LR00HR00(a)(b)(c)2000000000DIFU(13)20000MOV(21)LR00HR00第8页,本讲稿共46页25313MOV(21)HR00LR00从从PLC上电开始,每个扫描周期上电开始,每个扫描周期里,都将里,都将HR00中的内容传送到中的内容传送到LR00中。中。与上述几种与上述几种MOV指令
6、指令使用方法的区别是:使用方法的区别是:本程序中,每个扫描周期指令本程序中,每个扫描周期指令MOV都执行!都执行!请注意请注意MOV指令指令各种用法的区别各种用法的区别分析程序的功能分析程序的功能使用使用MOV指令举例(指令举例(4)第9页,本讲稿共46页PLC上电时,将上电时,将0100传送到传送到200通道中通道中,作为作为CNT000的设定值的设定值改变计数器设定值的操作:改变计数器设定值的操作:使使00001OFFON,将,将0200传送到传送到200通道中;通道中;自自00000ON开始,开始,CNT000按设定按设定值值100开始计数开始计数(或定时或定时)。此后计数器按设定值此后
7、计数器按设定值200计数计数断开断开00000,闭合一次触点,闭合一次触点00002,使使CNT000复位;复位;00001MOV(21)#010020025315255020000100000CNT0002000000225315MOV(21)#0200200分析程序的功能分析程序的功能使用使用MOV指令举例(指令举例(5)第10页,本讲稿共46页2.块传送指令块传送指令XFER(70)/XFER(70)N:通道数(:通道数(BCD数数)功能功能在执行条件为在执行条件为ON时,将几个连续通道中的数据传送时,将几个连续通道中的数据传送到另外几个连续通道中。到另外几个连续通道中。S:源数据块首通
8、道:源数据块首通道D:目的通道首通道:目的通道首通道XFER(70)NSDXFER(70)NSDXFER(70)NSDXFER(70)NSD第11页,本讲稿共46页执行块传送指令时数据传送如下所示:执行块传送指令时数据传送如下所示:S1234S+182ACS+290B6S+N-10DFED1234D+182ACD+290B6D+N-10DFE第12页,本讲稿共46页3.块设置指令块设置指令BEST(71)/BEST(71)S:源数据(通道或十六进制数:源数据(通道或十六进制数)功能功能在执行条件为在执行条件为ON时,将时,将S传送到从传送到从St到到E的各通道中。的各通道中。St:开始通道:开
9、始通道E:结束通道号:结束通道号BEST(71)SStEBEST(71)SStEBSET(71)SStEBSET(71)SStE第13页,本讲稿共46页LD00000MOV(21)#0100HR00TIM000HR00ANDTIM000OUT01000LD00001BSET(71)#0050TIM000TIM00000001BSET(71)#0050TIM000TIM000TIM00001000MOV(21)#0100HR0000000TIM000HR00分析程序的功能,写语句表分析程序的功能,写语句表使用使用BEST指令举例指令举例第14页,本讲稿共46页00001BSET(71)#0050
10、TIM000TIM000TIM00001000MOV(21)#0100HR0000000TIM000HR00BSET指令的第二、第三操作数都是指令的第二、第三操作数都是TIM000,即执行,即执行BSET指令,只把数据传指令,只把数据传送到送到TIM000中。中。功能功能在在00001OFF、00000OFFON时,执行一次时,执行一次MOV指令,将指令,将#0100传送到通道传送到通道HR00中。中。自此自此TIM000以设定值以设定值10秒定时。秒定时。经过经过10秒,定时器秒,定时器TIM000ON,线线圈圈01000ON。第15页,本讲稿共46页00001BSET(71)#0050TI
11、M000TIM000TIM00001000MOV(21)#0100HR0000000TIM000HR00当需要改变定时器当需要改变定时器TIM000的当的当前值时,可通过执行前值时,可通过执行BSET指令来指令来实现。实现。执行执行BSET指令将指令将0050传送到传送到TIM000中,中,TIM000的当前值立的当前值立即变为即变为0050。例如,在例如,在TIM000的当前值为的当前值为0089时,令时,令00001ON一次:一次:自此,自此,TIM000的当前值从的当前值从0050开始,每隔开始,每隔0.1秒减秒减1,一,一直减到为直减到为0000为止。为止。第16页,本讲稿共46页00
12、001BSET(71)#0050TIM000TIM000TIM00001000MOV(21)#0100HR0000000TIM000HR00由于由于HR00中的数据没有改变,在下中的数据没有改变,在下一次定时器一次定时器TIM000工作时,其定时值工作时,其定时值仍然是仍然是0100。以上是用以上是用BSET指令改变定时器指令改变定时器的当前值。的当前值。用用BSET指令也可以改变定时器的设指令也可以改变定时器的设定值。方法为:定值。方法为:本例中,令本例中,令BSET指令的第指令的第2、3操作操作数为数为HR00,执行,执行BSET指令后,指令后,TIM000的设定值就为的设定值就为0050
13、了。了。第17页,本讲稿共46页MOV与与BSET指令的异同指令的异同执执行行一一次次MOV指指令令,只只能能向向一一个个通通道道传传送送一一个个字字;而而执执行行一一次次BSET指指令令,可可以以向向多多个个通通道道传传送送同同一个字。一个字。TIM/CNT的的操操作作数数是是通通道道时时,用用MOV和和BSET指指令都可以改变令都可以改变TIM/CNT的设定值。的设定值。用用BSET指指令令既既可可改改变变TIM/CNT的的设设定定值值、也也可可以以改改变变TIM/CNT的当前值的当前值。因为因为MOV指令不能向指令不能向TC区传送数据,区传送数据,所以不能用所以不能用MOV指令改变指令改
14、变TIM/CNT的当前值的当前值!第18页,本讲稿共46页4.位传送指令位传送指令MOVB(82)/MOVB(82)bit00bit07指定指定S中的位号中的位号bit08bit15指定指定D中的位号中的位号MOVB(82)SCDMOVB(82)SCDMOVB(82)SCDMOVB(82)SCDS:源数据:源数据D:目的通道:目的通道C(BCD):控制数据:控制数据在执行条件为在执行条件为ON时,根据时,根据C的内容,将的内容,将S传送到传送到D中。中。C内容的含义内容的含义指令的功能指令的功能第19页,本讲稿共46页分析程序的功能,写语句表分析程序的功能,写语句表使用使用MOVB指令举例指令
15、举例MOVB(82)#0050HR0020025315LD00005MOVB(82)HR00#1500200程序功能程序功能C的含义的含义例:设例:设HR00的内容为的内容为1000100010000101执行指令之后执行指令之后20015为为ON(1)bit00bit07:S中的位中的位bit08bit15:D中的位中的位在在PLC上电之初,将上电之初,将HR0000的内容传送到的内容传送到20015中中。第20页,本讲稿共46页5.数字传送指令数字传送指令MOVD(83)/MOVD(83)MOVD(83)SCDMOVD(83)SCDMOVD(83)SCDMOVD(83)SCD在执行条件为在
16、执行条件为ON时,根据时,根据C的内容,的内容,将将S中指定的中指定的数字传送到数字传送到D中指定的数字位中。中指定的数字位中。指令的功能指令的功能第21页,本讲稿共46页S:源数据:源数据D:目的通道:目的通道C:控制数据:控制数据C(BCD数数)的含义的含义指令各操作数的含义指令各操作数的含义MOVD(83)SCDS中第一个要传送的数字位位号中第一个要传送的数字位位号不用不用C数字数字3 数字数字2 数字数字1 数字数字0S中要传送的数字位数中要传送的数字位数01位位12位位23位位34位位指定指定D中接收第一个数字的位号中接收第一个数字的位号第22页,本讲稿共46页C=#0030使用使用
17、MOVD指令举例指令举例(1)根据根据C、确定指令执行结果、确定指令执行结果S中第中第0位数字开始传送位数字开始传送传传送送4位位数数字字D中从第中从第0位开始接收第一个数字位开始接收第一个数字MOVD(83)S#0030D0123D0123S 被传送的数字位要连续被传送的数字位要连续例如:例如:1230例如:例如:3 012例如:例如:2 301等等第23页,本讲稿共46页C=#0023使用使用MOVD指令举例指令举例(2)根据根据C、确定指令执行结果、确定指令执行结果S中第中第3位数字开始传送位数字开始传送传传送送3位位数数字字D中从第中从第0位开始接收第一个数字位开始接收第一个数字MOV
18、D(83)S#0023D0123D0123S第一个被传第一个被传送的数字送的数字第二个被传第二个被传送的数字送的数字第三个被传送第三个被传送的数字的数字第一个接收第一个接收数字的位数字的位第24页,本讲稿共46页C=#0123使用使用MOVD指令举例指令举例(3)根据根据C、确定指令执行结果、确定指令执行结果S中第中第3位数字开始传送位数字开始传送传传送送3位位数数字字D中从第中从第1位开始接收第一个数字位开始接收第一个数字MOVD(83)S#0123D0123D0123S第一个被传送第一个被传送的数字的数字第二个被传送第二个被传送的数字的数字第三个被传送第三个被传送的数字的数字第一个接收第一
19、个接收数字的位数字的位第25页,本讲稿共46页6.单字分配指令单字分配指令DIST(80)/DIST(80)S:源数据:源数据DBS:目标基准通道:目标基准通道C:控制数据:控制数据(BCD)DIST(80)SDBSCCOLL(81)SDBSCDIST(80)SDBSCDIST(80)SDBSC在执行条件为在执行条件为ON时,根据时,根据C的内容,进行单字数据分配或堆的内容,进行单字数据分配或堆栈的进栈操作(栈区由栈的进栈操作(栈区由C的低的低3位确定)位确定)。指令的功能指令的功能第26页,本讲稿共46页1.C的的bit12bit15的内容的内容8时,执行单字数据时,执行单字数据分配分配操作
20、。操作。控制数据控制数据C(BCD)的含义的含义指令功能指令功能当执行条件为当执行条件为ON时,将时,将S的内容传送的内容传送到(到(DBS+C)中,如下图。中,如下图。DIST(80)SDBSCS90B6DBS+C90B6第27页,本讲稿共46页2.C的的bit12bit15的内容的内容=9时,执行指令生成时,执行指令生成一个堆栈,执行进栈操作。一个堆栈,执行进栈操作。指令功能:指令功能:进栈方法:进栈方法:每执行一次指令,将每执行一次指令,将S的内容复制到(的内容复制到(DBS+堆栈指针堆栈指针+1)的栈区通道的栈区通道中,然后指针加中,然后指针加1。当执行条件为当执行条件为ON时,执行指
21、令生成一个堆栈(以时,执行指令生成一个堆栈(以C的低的低3位确定栈区通道数),以位确定栈区通道数),以DBS为堆栈指针进行进栈操作。为堆栈指针进行进栈操作。第28页,本讲稿共46页进栈过程举例。进栈过程举例。DIST(80)200DM000021600000200:FFFF216:90050000DM0000DM0001DM0002DM0003DM0004DM0005000000000000000000000001DM0000DM0001DM0002DM0003DM0004DM0005FFFF0000000000000000源数据源数据控制数据控制数据堆栈指针堆栈指针第一次执行第一次执行!00
22、02DM0000DM0001DM0002DM0003DM0004DM0005FFFFFFFF000000000000第二次执行第二次执行!栈区栈区第29页,本讲稿共46页SBs是基准通道是基准通道D是目的通道是目的通道C是控制数据是控制数据(BCD)7.数据调用指令数据调用指令COLL(81)/COLL(81)COLL(81)SBSCDCOLL(81)SBSCDCOLL(81)SBSCDCOLL(81)SBSCD在执行条件为在执行条件为ON时,根据时,根据C的内容,的内容,进行调用数据或堆栈进行调用数据或堆栈的出栈操作(栈区由的出栈操作(栈区由C的低的低3位确定)位确定)。指令的功能指令的功能
23、第30页,本讲稿共46页1.C=00006655数据调用数据调用控制数据控制数据C(BCD)的含义的含义COLL(81)SBSCD指令功能指令功能当执行条件为当执行条件为ON时,将(时,将(SBS+C)传送传送到到D中。中。第31页,本讲稿共46页2.出栈操作出栈操作(包括两种情况包括两种情况)C=90009999先入先出的出栈操作先入先出的出栈操作以以SBS为堆栈指针,按先入先出为堆栈指针,按先入先出的原则,将堆栈中的数据传送的原则,将堆栈中的数据传送到到D中,堆栈指针减中,堆栈指针减1。C=80008999后入先出的出栈操作后入先出的出栈操作以以SBS为堆栈指针,按后入先出的原则,将堆栈中
24、为堆栈指针,按后入先出的原则,将堆栈中的数据复制到的数据复制到D中(堆栈中的内容不变),堆栈指中(堆栈中的内容不变),堆栈指针减针减1。COLL(81)SBSCD第32页,本讲稿共46页先入先出的出栈过程先入先出的出栈过程COOL(81)DM0000#9007200分析:当分析:当SBs=DM0000、C=#9007、D=200时,指令时,指令COLL执行执行的结果。的结果。执行一次执行一次执行前执行前0156000711010001EEEE568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007568C000601561101E
25、EEE0000EEEE9D6FDM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007IR2000001C=#9007栈区栈区DM0001DM0007先入先出先入先出堆栈指针堆栈指针指针减指针减1栈栈区区执行二次执行二次IR2001101第33页,本讲稿共46页后入先出的出栈过程后入先出的出栈过程COOL(81)DM0000#9007200分析:当分析:当SBs=DM0000、C=#8007、D=200时,指令时,指令COLL执行的结果。执行的结果。执行一次执行一次执行前执行前01560007110100011234568C9D6F0000DM0000D
26、M0001DM0002DM0003DM0004DM0005DM0006DM0007IR2001234C=#8007栈区为栈区为DM0001DM0007后入先出后入先出堆栈指针堆栈指针指针减指针减1栈栈区区01560006110100011234568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007执行二次执行二次9D6F不不变变第34页,本讲稿共46页单字比较指令单字比较指令CMP表比较表比较指令指令TCMP双字比较指令双字比较指令CMPL块块比较指令比较指令BCMP二、二、数据比较指令数据比较指令第35页,本讲稿共46页1.单
27、字比较指令单字比较指令CMPCMP(20)C1C2CMP(20)C1C2C1:比较数:比较数1C2:比较数比较数2在执行条件为在执行条件为ON时,将时,将C1和和C2进行比较。进行比较。当当C1C2时,标志位时,标志位25505ON当当C1=C2时,标志位时,标志位25506ON当当C1C2时,标志位时,标志位25507ON功能功能第36页,本讲稿共46页使用使用CMP指令举例指令举例(1)写语句表、分析程序功能写语句表、分析程序功能LD00000TIM000#0030CMP(20)TIM000#0200AND25505OUT20000AND25506OUT20001AND25507OUT20
28、002LDTIM000OUT200032550620001TIM000255072000320002CMP(20)TIM000#0200TIM000#0030000002550520000第37页,本讲稿共46页分析程序功能分析程序功能执行指令执行指令CMP时,将时,将TIM000的的当前值与当前值与#0200进行比较。进行比较。2550620001TIM000255072000320002CMP(20)TIM000#0200TIM000#0300000002550520000当当00000为为ON时,时,TIM000开始定时、开始定时、且开始执行且开始执行CMP指令。指令。TIM000的当前
29、值由的当前值由0300每隔每隔0.1秒秒减减1。第38页,本讲稿共46页可见:配合指令可见:配合指令CMP,用一个定时器可以控制,用一个定时器可以控制多个输出位。多个输出位。若若TIM000当前值大于当前值大于#0200时,时,25505ON20000ON。若若TIM000的当前值等于的当前值等于#0200时,时,25506ON20001ON。若若TIM000的当前值小于的当前值小于#0200时,时,25507ON20002ON。2550620001TIM000255072000320002CMP(20)TIM000#0020TIM000#0030000002550520000当当TIM000
30、定时到定时到时,时,20002和和20003ON。续续第39页,本讲稿共46页使用使用CMP指令举例指令举例(2)分析本例使用微分指令的原因分析本例使用微分指令的原因由于由于CMP指令没有微分形式指令没有微分形式若欲使指令若欲使指令CMP只在只在00000OFFON时执行一次时执行一次则必须使用指令则必须使用指令DIFU(13)CMP(20)TIM000#0020000002550501000DIFU(13)20000第40页,本讲稿共46页2.块比较指令块比较指令BCMPBCMP(68)CDCBRBMP(68)CDCBRBCMP(68)CDCBRBCMP(68)CDCBRCD:比较数据比较数
31、据CB:数据块的起始通道数据块的起始通道R:存结果通道存结果通道功能功能当执行条件为当执行条件为ON时,将时,将CD与每个数据区域比较。与每个数据区域比较。当当CD处于某个区域时,与该区域对应的处于某个区域时,与该区域对应的R的位的位ON。第41页,本讲稿共46页使用块比较指令使用块比较指令BCMP举例举例MOV(21)#1450200BCMP200DM0000HR0500000 下限下限 上限上限DM00000000DM00010100HR0500DM00020101DM00030200HR0501DM00040201DM00050300HR0502DM00060301DM00070400H
32、R0503DM00080401DM00090500HR0504DM00100501DM00110600HR0505DM00120601DM00130700HR0506DM00140701DM00150800HR0507DM00160801DM00170900HR0508DM00180901DM00191000HR0509DM00201001DM00211100HR0510DM00221101DM00231200HR0510DM00241201DM00251300HR0512DM00261301DM00271400HR0513DM00281401DM00291500HR0514DM0030150
33、1DM00311600HR0515HR05比较指令执行结果:比较指令执行结果:HR0514为为ON数据块内容可数据块内容可预先写入预先写入数据块数据块存结果存结果比较数据比较数据块首通道块首通道结果通道结果通道第42页,本讲稿共46页3.表比较指令表比较指令TCMPTCMP(85)CDTBRTCMP(68)CDTBRTCMP(85)CDTBRTCMP(85)CDTBRCD:比较数据比较数据TB:数据表的起始通道数据表的起始通道R:结果通道结果通道功能功能当执行条件为当执行条件为ON时,将时,将CD与数据表中的数据比较。与数据表中的数据比较。当当CD与表中某个通道的数据相同时,与该通道对应的与表
34、中某个通道的数据相同时,与该通道对应的R的的位为位为ON。第43页,本讲稿共46页使用表比较指令使用表比较指令TCMP举例举例MOV(21)#0005200TCMP200HR00HR1900000数据表内容可数据表内容可预先写入预先写入存结果存结果比较数据比较数据数据表数据表结果通道结果通道对应位状态对应位状态HR000101HR19000HR010151HR19010HR020005HR19021HR150605HR19150表首通道表首通道结果通道结果通道该程序执行结果:该程序执行结果:HR1902为为ON。第44页,本讲稿共46页数据传送和数据比较指令小结数据传送和数据比较指令小结1.数
35、据传送指令数据传送指令(2)注意块传送和块设置指令功能的区别。注意块传送和块设置指令功能的区别。(3)注意单字分配、数据调用和数据交换指令的区别。注意单字分配、数据调用和数据交换指令的区别。区别位传送和数字传送指令目的通道内容存放的方法区别位传送和数字传送指令目的通道内容存放的方法(1)注意各种传送指令的区别。注意各种传送指令的区别。单字传送单字传送MOV是常用的指令,要牢记其使用方法。是常用的指令,要牢记其使用方法。块设置指令块设置指令BSET可以向可以向TC区传送数据,用该指令可以改变定区传送数据,用该指令可以改变定时器的当前值。时器的当前值。第45页,本讲稿共46页2.数据比较指令数据比较指令(1)单字单字/双字比较指令是常用的指令,要牢记其格式、双字比较指令是常用的指令,要牢记其格式、梯形图、操作数范围和使用方法。梯形图、操作数范围和使用方法。使用单字使用单字/双字比较指令要影响标志位双字比较指令要影响标志位2550525507:在需在需要保存标志位状态时,要编写相应程序。要保存标志位状态时,要编写相应程序。注意触点注意触点2550525507的使用方法。的使用方法。(2)注意块比较和表比较指令执行结果的表示方法。注意块比较和表比较指令执行结果的表示方法。第46页,本讲稿共46页
限制150内