OMRON CPM1A PLC教程(四)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据传送和数据比较指令有两个以上操作数要注意这些指令的操作数的含义及其范围这些指令多数都有微分和非微分两种形式要注意指令微分和非微分形式时用法的区别数据传送指令数据比较指令一、数据传送指令单字传送指令MOV数字传送指令MOVD位传送指令MOVB块设置指令BSET块传送指令XFER单字分配指令DIST数据交换指令XCHG数据调用指令COLLS:源数据(通道或十六进制数)D:目的通道号功能MOV(21)SD@MOV(21)SDMOV(21)SD@MOV(21)SD非微分:在执行条件为ON时,将S传送到D中(每个扫描周期都执行)。微分:在执行条件OFF→ON时,将S传送到D中(只在条件满足时刻执行一次)。1.单字传送指令MOV(21)/@MOV(21)LD25315MOV(21)#0198HR00在PLC上电的第一个扫描周期,把0198传送到HR00中25315MOV(21)#0198HR00分析程序的功能,并写出语句表.使用MOV指令举例(1)在此后的各扫描周期,不再执行MOV指令。使用DIFU指令有何作用?只要0000OFF→ON,就执行一次MOV指令。2000000000DIFU(13)20000MOV(21)LR00HR00分析程序的功能:使用MOV指令举例(2)把LR00中的内容传送到HR00中。LR00中的内容在变化,必要时将其传送到HR00中。00000@MOV(21)LR00HR00分析程序的功能使用MOV指令举例(3)只要00000OFF→ON,就执行一次MOV指令。把LR00中的内容传送到HR00中。与举例(2)功能相同。2000000000DIFU(13)20000MOV(21)LR00HR00指令MOV几种使用方法的区别(a)与(c)相同,指令MOV都只在00000OFF→ON时执行一次。(b)指令MOV只在PLC上电后的第一个扫描周期执行一次。25315MOV(21)LR00HR0000000@MOV(21)LR00HR00(a)(b)(c)2000000000DIFU(13)20000MOV(21)LR00HR0025313MOV(21)HR00LR00从PLC上电开始,每个扫描周期里,都将HR00中的内容传送到LR00中。与上述几种MOV指令使用方法的区别是:本程序中,每个扫描周期指令MOV都执行!请注意MOV指令各种用法的区别分析程序的功能使用MOV指令举例(4)PLC上电时,将0100传送到200通道中,作为CNT000的设定值★改变计数器设定值的操作:●使00001OFF→ON,将0200传送到200通道中;自00000ON开始,CNT000按设定值100开始计数(或定时)。●此后计数器按设定值200计数●断开00000,闭合一次触点00002,使CNT000复位;00001MOV(21)#010020025315255020000100000CNT0002000000225315@MOV(21)#0200200分析程序的功能使用MOV指令举例(5)2.块传送指令XFER(70)/@XFER(70)N:通道数(BCD数)功能在执行条件为ON时,将几个连续通道中的数据传送到另外几个连续通道中。S:源数据块首通道D:目的通道首通道XFER(70)NSD@XFER(70)NSDXFER(70)NSD@XFER(70)NSD执行块传送指令时数据传送如下所示:S1234S+182ACS+290B6…S+N-10DFED1234D+182ACD+290B6…D+N-10DFE…3.块设置指令BEST(71)/@BEST(71)S:源数据(通道或十六进制数)功能在执行条件为ON时,将S传送到从St到E的各通道中。St:开始通道E:结束通道号BEST(71)SStE@BEST(71)SStEBSET(71)SStE@BSET(71)SStELD00000@MOV(21)#0100HR00TIM000HR00ANDTIM000OUT01000LD00001@BSET(71)#0050TIM000TIM00000001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00分析程序的功能,写语句表使用BEST指令举例00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00①@BSET指令的第二、第三操作数都是TIM000,即执行@BSET指令,只把数据传送到TIM000中。功能②在00001OFF、00000OFF→ON时,执行一次MOV指令,将#0100传送到通道HR00中。③自此TIM000以设定值10秒定时。④经过10秒,定时器TIM000ON,线圈01000ON。00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00⑤当需要改变定时器TIM000的当前值时,可通过执行@BSET指令来实现。执行@BSET指令将0050传送到TIM000中,TIM000的当前值立即变为0050。例如,在TIM000的当前值为0089时,令00001ON一次:自此,TIM000的当前值从0050开始,每隔0.1秒减1,一直减到为0000为止。00001@BSET(71)#0050TIM000TIM000TIM00001000@MOV(21)#0100HR0000000TIM000HR00⑥由于HR00中的数据没有改变,在下一次定时器TIM000工作时,其定时值仍然是0100。★以上是用BSET指令改变定时器的当前值。★用BSET指令也可以改变定时器的设定值。方法为:本例中,令BSET指令的第2、3操作数为HR00,执行BSET指令后,TIM000的设定值就为0050了。MOV与BSET指令的异同①执行一次MOV指令,只能向一个通道传送一个字;而执行一次BSET指令,可以向多个通道传送同一个字。②TIM/CNT的操作数是通道时,用MOV和BSET指令都可以改变TIM/CNT的设定值。③用BSET指令既可改变TIM/CNT的设定值、也可以改变TIM/CNT的当前值。因为MOV指令不能向TC区传送数据,所以不能用MOV指令改变TIM/CNT的当前值!4.位传送指令MOVB(82)/@MOVB(82)bit00~bit07指定S中的位号bit08~bit15指定D中的位号MOVB(82)SCD@MOVB(82)SCDMOVB(82)SCD@MOVB(82)SCDS:源数据D:目的通道C(BCD):控制数据在执行条件为ON时,根据C的内容,将S传送到D中。C内容的含义指令的功能分析程序的功能,写语句表使用MOVB指令举例@MOVB(82)#0050HR0020025315LD00005@MOVB(82)HR00#1500200程序功能C的含义例:设HR00的内容为1000100010000101执行指令之后——20015为ON(1)bit00~bit07:S中的位bit08~bit15:D中的位在PLC上电之初,将HR0000的内容传送到20015中。5.数字传送指令MOVD(83)/@MOVD(83)MOVD(83)SCD@MOVD(83)SCDMOVD(83)SCD@MOVD(83)SCD在执行条件为ON时,根据C的内容,将S中指定的数字传送到D中指定的数字位中。指令的功能S:源数据D:目的通道C:控制数据C(BCD数)的含义指令各操作数的含义MOVD(83)SCDS中第一个要传送的数字位位号不用C数字3数字2数字1数字0S中要传送的数字位数0→1位1→2位2→3位3→4位指定D中接收第一个数字的位号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等C=#0023使用MOVD指令举例(2)根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第0位开始接收第一个数字MOVD(83)S#0023D0123D0123S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位C=#0123使用MOVD指令举例(3)根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第1位开始接收第一个数字MOVD(83)S#0123D0123D0123S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位6.单字分配指令DIST(80)/@DIST(80)S:源数据DBS:目标基准通道C:控制数据(BCD)DIST(80)SDBSC@COLL(81)SDBSCDIST(80)SDBSC@DIST(80)SDBSC在执行条件为ON时,根据C的内容,进行单字数据分配或堆栈的进栈操作(栈区由C的低3位确定)。指令的功能1.C的bit12~bit15的内容≤8时,执行单字数据分配操作。控制数据C(BCD)的含义指令功能当执行条件为ON时,将S的内容传送到(DBS+C)中,如下图。DIST(80)SDBSCS90B6DBS+C90B62.C的bit12~bit15的内容=9时,执行指令生成一个堆栈,执行进栈操作。指令功能:进栈方法:每执行一次指令,将S的内容复制到(DBS+堆栈指针+1)的栈区通道中,然后指针加1。当执行条件为ON时,执行指令生成一个堆栈(以C的低3位确定栈区通道数),以DBS为堆栈指针进行进栈操作。进栈过程举例。@DIST(80)200DM000021600000200:FFFF216:90050000DM0000DM0001DM0002DM0003DM0004DM0005000000000000000000000001DM0000DM0001DM0002DM0003DM0004DM0005FFFF0000000000000000源数据控制数据堆栈指针第一次执行!!0002DM0000DM0001DM0002DM0003DM0004DM0005FFFFFFFF000000000000第二次执行!!栈区SBs是基准通道D是目的通道C是控制数据(BCD)7.数据调用指令COLL(81)/@COLL(81)COLL(81)SBSCD@COLL(81)SBSCDCOLL(81)SBSCD@COLL(81)SBSCD在执行条件为ON时,根据C的内容,进行调用数据或堆栈的出栈操作(栈区由C的低3位确定)。指令的功能1.C=0000~6655——数据调用控制数据C(BCD)的含义@COLL(81)SBSCD指令功能当执行条件为ON时,将(SBS+C)传送到D中。2.出栈操作(包括两种情况)①C=9000~9999——先入先出的出栈操作以SBS为堆栈指针,按先入先出的原则,将堆栈中的数据传送到D中,堆栈指针减1。②C=8000~8999——后入先出的出栈操作以SBS为堆栈指针,按后入先出的原则,将堆栈中的数据复制到D中(堆栈中的内容不变),堆栈指针减1。@COLL(81)SBSCD先入先出的出栈过程@COOL(81)DM0000#9007200分析:当SBs=DM0000、C=#9007、D=200时,指令COLL执行的结果。执行一次执行前0156000711010001EEEE568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007568C000601561101EEEE0000EEEE9D6FDM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007IR2000001C=#9007栈区DM0001~DM0007先入先出堆栈指针指针减1栈区执行二次IR2001101后入先出的出栈过程@COOL(81)DM0000#900

1 / 151
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功