数据传送和数据比较指令_第1页
数据传送和数据比较指令_第2页
数据传送和数据比较指令_第3页
数据传送和数据比较指令_第4页
数据传送和数据比较指令_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

数据传送和数据比较指令第1页,共46页,2023年,2月20日,星期六数据传送和数据比较指令有两个以上操作数要注意这些指令的操作数的含义及其范围这些指令多数都有微分和非微分两种形式要注意指令微分和非微分形式时用法的区别数据传送指令数据比较指令第2页,共46页,2023年,2月20日,星期六一、数据传送指令单字传送指令MOV数字传送指令MOVD位传送指令MOVB块设置指令BSET块传送指令XFER单字分配指令DIST数据交换指令XCHG数据调用指令COLL第3页,共46页,2023年,2月20日,星期六S:源数据(通道或十六进制数)D:目的通道号功能MOV(21)SD@MOV(21)

SDMOV(21)

SD@MOV(21)SD非微分:在执行条件为ON时,将S传送到D中(每个扫描周期都执行)。微分:在执行条件OFF→ON时,将S传送到D中(只在条件满足时刻执行一次)。1.单字传送指令MOV(21)/@MOV(21)第4页,共46页,2023年,2月20日,星期六LD25315MOV(21)#0198HR00在PLC上电的第一个扫描周期,把0198传送到HR00中25315MOV(21)

#0198HR00分析程序的功能,并写出语句表.使用MOV指令举例(1)在此后的各扫描周期,不再执行MOV指令。第5页,共46页,2023年,2月20日,星期六使用DIFU指令有何作用?只要0000OFF→ON,就执行一次MOV指令。2000000000DIFU(13)20000MOV(21)

LR00HR00分析程序的功能:使用MOV指令举例(2)把LR00中的内容传送到HR00中。LR00中的内容在变化,必要时将其传送到HR00中。第6页,共46页,2023年,2月20日,星期六00000@MOV(21)

LR00HR00分析程序的功能使用MOV指令举例(3)只要00000OFF→ON,就执行一次MOV指令。把LR00中的内容传送到HR00中。与举例(2)功能相同。2000000000DIFU(13)20000MOV(21)

LR00HR00第7页,共46页,2023年,2月20日,星期六指令MOV几种使用方法的区别(a)与(c)相同,指令MOV都只在00000OFF→ON时执行一次。(b)指令MOV只在PLC上电后的第一个扫描周期执行一次。25315MOV(21)

LR00HR0000000@MOV(21)

LR00

HR00(a)(b)(c)2000000000DIFU(13)20000MOV(21)

LR00HR00第8页,共46页,2023年,2月20日,星期六25313MOV(21)

HR00LR00从PLC上电开始,每个扫描周期里,都将HR00中的内容传送到LR00中。与上述几种MOV指令使用方法的区别是:本程序中,每个扫描周期指令MOV都执行!请注意MOV指令各种用法的区别分析程序的功能使用MOV指令举例(4)第9页,共46页,2023年,2月20日,星期六PLC上电时,将0100传送到200通道中,作为CNT000的设定值★改变计数器设定值的操作:●使00001OFF→ON,将0200传送到200通道中;自00000ON开始,CNT000按设定值100开始计数(或定时)。●此后计数器按设定值200计数●断开00000,闭合一次触点00002,使CNT000复位;00001MOV(21)

#010020025315255020000100000CNT000

2000000225315@MOV(21)

#0200200分析程序的功能使用MOV指令举例(5)第10页,共46页,2023年,2月20日,星期六2.块传送指令XFER(70)/@XFER(70)N:通道数(BCD数)功能在执行条件为ON时,将几个连续通道中的数据传送到另外几个连续通道中。S:源数据块首通道D:目的通道首通道XFER(70)NSD@XFER(70)

NSDXFER(70)

N

S

D

@XFER(70)

N

S

D第11页,共46页,2023年,2月20日,星期六执行块传送指令时数据传送如下所示:S1234S+182ACS+290B6…S+N-10DFED1234D+182ACD+290B6…D+N-10DFE…第12页,共46页,2023年,2月20日,星期六3.块设置指令BEST(71)/@BEST(71)S:源数据(通道或十六进制数)功能在执行条件为ON时,将S传送到从St到E的各通道中。St:开始通道E:结束通道号BEST(71)SStE@BEST(71)SSt

EBSET(71)

S

St

E@BSET(71)

S

St

E第13页,共46页,2023年,2月20日,星期六LD00000@MOV(21)#0100HR00TIM000HR00ANDTIM000OUT01000LD00001@BSET(71)#0050TIM000TIM00000001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00分析程序的功能,写语句表使用BEST指令举例第14页,共46页,2023年,2月20日,星期六00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00①@BSET指令的第二、第三操作数都是TIM000,即执行@BSET指令,只把数据传送到TIM000中。功能②在00001OFF、00000OFF→ON时,执行一次MOV指令,将#0100传送到通道HR00中。③自此TIM000以设定值10秒定时。④经过10秒,定时器TIM000ON,线圈01000ON。第15页,共46页,2023年,2月20日,星期六00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00⑤当需要改变定时器TIM000的当前值时,可通过执行@BSET指令来实现。执行@BSET指令将0050传送到TIM000中,TIM000的当前值立即变为0050。例如,在TIM000的当前值为0089时,令00001ON一次:自此,TIM000的当前值从0050开始,每隔0.1秒减1,一直减到为0000为止。第16页,共46页,2023年,2月20日,星期六00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00⑥由于HR00中的数据没有改变,在下一次定时器TIM000工作时,其定时值仍然是0100。★以上是用BSET指令改变定时器的当前值。★用BSET指令也可以改变定时器的设定值。方法为:本例中,令BSET指令的第2、3操作数为HR00,执行BSET指令后,TIM000的设定值就为0050了。第17页,共46页,2023年,2月20日,星期六MOV与BSET指令的异同①执行一次MOV指令,只能向一个通道传送一个字;而执行一次BSET指令,可以向多个通道传送同一个字。②TIM/CNT的操作数是通道时,用MOV和BSET指令都可以改变TIM/CNT的设定值。③用BSET指令既可改变TIM/CNT的设定值、也可以改变TIM/CNT的当前值。因为MOV指令不能向TC区传送数据,所以不能用MOV指令改变TIM/CNT的当前值!第18页,共46页,2023年,2月20日,星期六4.位传送指令MOVB(82)/@MOVB(82)bit00~bit07指定S中的位号bit08~bit15指定D中的位号MOVB(82)SCD@MOVB(82)SCDMOVB(82)

S

CD@MOVB(82)

S

C

DS:源数据D:目的通道C(BCD):控制数据在执行条件为ON时,根据C的内容,将S传送到D中。C内容的含义指令的功能第19页,共46页,2023年,2月20日,星期六分析程序的功能,写语句表使用MOVB指令举例@MOVB(82)#0050HR0020025315LD00005@MOVB(82)HR00#1500200程序功能C的含义例:设HR00的内容为1000100010000101执行指令之后——20015为ON(1)bit00~bit07:S中的位bit08~bit15:D中的位在PLC上电之初,将HR0000的内容传送到

20015中。第20页,共46页,2023年,2月20日,星期六5.数字传送指令MOVD(83)/@MOVD(83)MOVD(83)SCD@MOVD(83)SCDMOVD(83)

S

CD@MOVD(83)

S

C

D在执行条件为ON时,根据C的内容,将S中指定的数字传送到D中指定的数字位中。指令的功能第21页,共46页,2023年,2月20日,星期六S:源数据D:目的通道C:控制数据C(BCD数)的含义指令各操作数的含义MOVD(83)

S

CDS中第一个要传送的数字位位号不用C数字3数字2数字1数字0

S中要传送的数字位数0→1位1→2位2→3位3→4位指定D中接收第一个数字的位号第22页,共46页,2023年,2月20日,星期六C=#0030使用MOVD指令举例(1)根据C、确定指令执行结果S中第0位数字开始传送

传送4位数字D中从第0位开始接收第一个数字MOVD(83)

S#0030D0123D0123S被传送的数字位要连续例如:1→2→3→0例如:3→0→1→2例如:2→3→0→1等第23页,共46页,2023年,2月20日,星期六C=#0023使用MOVD指令举例(2)根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第0位开始接收第一个数字MOVD(83)

S#0023D0123D0123S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位第24页,共46页,2023年,2月20日,星期六C=#0123使用MOVD指令举例(3)根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第1位开始接收第一个数字MOVD(83)

S#0123D0123D0123S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位第25页,共46页,2023年,2月20日,星期六6.单字分配指令DIST(80)/@DIST(80)S:源数据DBS:目标基准通道

C:控制数据(BCD)DIST(80)SDBSC@COLL(81)

SDBSCDIST(80)S

DBS

C@DIST(80)

S

DBS

C在执行条件为ON时,根据C的内容,进行单字数据分配或堆栈的进栈操作(栈区由C的低3位确定)。指令的功能第26页,共46页,2023年,2月20日,星期六1.C的bit12~bit15的内容≤8时,执行单字数据分配操作。控制数据C(BCD)的含义指令功能当执行条件为ON时,将S的内容传送到(DBS+

C)中,如下图。DIST(80)S

DBS

CS90B6

DBS+C90B6第27页,共46页,2023年,2月20日,星期六2.C的bit12~bit15的内容=9时,执行指令生成一个堆栈,执行进栈操作。指令功能:进栈方法:每执行一次指令,将S的内容复制到(DBS+

堆栈指针+1)的栈区通道中,然后指针加1。当执行条件为ON时,执行指令生成一个堆栈(以C的低3位确定栈区通道数),以DBS为堆栈指针进行进栈操作。第28页,共46页,2023年,2月20日,星期六进栈过程举例。@DIST(80)200DM0000

21600000200:FFFF216:90050000DM0000DM0001DM0002DM0003DM0004DM0005000000000000000000000001DM0000DM0001DM0002DM0003DM0004DM0005FFFF0000000000000000源数据控制数据堆栈指针第一次执行!!0002DM0000DM0001DM0002DM0003DM0004DM0005FFFFFFFF000000000000第二次执行!!栈区第29页,共46页,2023年,2月20日,星期六SBs是基准通道D是目的通道

C是控制数据(BCD)7.数据调用指令COLL(81)/@COLL(81)COLL(81)SBS

CD@COLL(81)

SBSCDCOLL(81)

SBS

CD@COLL(81)

SBS

C

D在执行条件为ON时,根据C的内容,进行调用数据或堆栈的出栈操作(栈区由C的低3位确定)。指令的功能第30页,共46页,2023年,2月20日,星期六1.C=0000~6655——数据调用控制数据C(BCD)的含义@COLL(81)

SBS

CD指令功能当执行条件为ON时,将(SBS+

C)传送到D中。第31页,共46页,2023年,2月20日,星期六2.出栈操作(包括两种情况)①C=9000~9999——先入先出的出栈操作以SBS为堆栈指针,按先入先出的原则,将堆栈中的数据传送到D中,堆栈指针减1。②C=8000~8999——后入先出的出栈操作以SBS为堆栈指针,按后入先出的原则,将堆栈中的数据复制到D中(堆栈中的内容不变),堆栈指针减1。@COLL(81)

SBS

CD第32页,共46页,2023年,2月20日,星期六先入先出的出栈过程@COOL(81)DM0000#9007200分析:当SBs=DM0000、C=#9007、D=200时,指令COLL执行的结果。执行一次执行前0156000711010001EEEE568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007568C000601561101EEEE0000EEEE9D6FDM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007IR2000001C=#9007栈区DM0001~DM0007先入先出堆栈指针指针减1栈区执行二次IR2001101第33页,共46页,2023年,2月20日,星期六后入先出的出栈过程@COOL(81)DM0000#9007200分析:当SBs=DM0000、C=#8007、D=200时,指令COLL执行的结果。执行一次执行前01560007110100011234568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007IR2001234C=#8007栈区为DM0001~DM0007后入先出堆栈指针指针减1栈区01560006110100011234568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007执行二次9D6F不变第34页,共46页,2023年,2月20日,星期六单字比较指令CMP表比较指令TCMP双字比较指令CMPL块比较指令BCMP二、数据比较指令第35页,共46页,2023年,2月20日,星期六1.单字比较指令CMPCMP(20)C1C2CMP(20)C1C2C1

:比较数1C2:

比较数2在执行条件为ON时,将C1和C2进行比较。当C1>C2时,标志位25505ON当C1

=C2时,标志位25506ON当C1

<C2时,标志位25507ON功能第36页,共46页,2023年,2月20日,星期六使用CMP指令举例(1)写语句表、分析程序功能LD00000TIM000#0030CMP(20)TIM000#0200AND25505OUT20000AND25506OUT20001AND25507OUT20002LDTIM000OUT200032550620001TIM000255072000320002CMP(20)

TIM000

#0200TIM000#0030000002550520000第37页,共46页,2023年,2月20日,星期六分析程序功能执行指令CMP时,将TIM000的当前值与#0200进行比较。2550620001TIM000255072000320002CMP(20)

TIM000#0200TIM000#0300000002550520000当00000为ON时,TIM000开始定时、且开始执行CMP指令。TIM000的当前值由0300每隔0.1秒减1。第38页,共46页,2023年,2月20日,星期六可见:配合指令CMP,用一个定时器可以控制多个输出位。若TIM000当前值大于#0200时,25505ON→20000ON。若TIM000的当前值等于#0200时,25506ON→20001ON。若TIM000的当前值小于#0200时,25507ON→20002ON。2550620001TIM000255072000320002CMP(20)

TIM000#0020TIM000#0030000002550520000当TIM000定时到时,20002和20003ON。续第39页,共46页,2023年,2月20日,星期六使用CMP指令举例(2)分析本例使用微分指令的原因由于CMP指令没有微分形式若欲使指令CMP只在00000OFF→ON时执行一次则必须使用指令DIFU(13)CMP(20)

TIM000#0020000002550501000DIFU(13)20000第40页,共46页,2023年,2月20日,星期六2.块比较指令BCMPBCMP(68)CDCBR@BMP(68)CDCBRBCMP(68)CD

CBR@BCMP(68)

CD

CB

RCD:比较数据CB:数据块的起始通道R:存结果通道功能当执行条件为ON时,将CD与每个数据区域比较。当CD处于某个区域时,与该区域对应的R的位ON。第41页,共46页,2023年,2月20日,星期六使用块比较指令BCMP举例@MOV(21)#1450200@BCMP200DM0000HR0500000

下限

上限DM00000000DM00010100HR0500DM00020101DM00030200HR0501DM00040201DM00050300HR0502DM00060301DM00070400HR0503DM00080401DM00090500HR0504DM00100501DM00110600HR0505DM00120601DM00130700HR0506DM00140701DM00150800HR0507DM00160801DM00170900HR0508DM00180901DM00191000HR0509DM00201001DM00211100HR0510DM00221101DM00231200HR0510DM00241201DM00251300HR0512DM00261301DM00

温馨提示

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

评论

0/150

提交评论