omron-cpm1a-plc(四)

上传人:今*** 文档编号:106648842 上传时间:2019-10-15 格式:PPT 页数:151 大小:2.48MB
返回 下载 相关 举报
omron-cpm1a-plc(四)_第1页
第1页 / 共151页
omron-cpm1a-plc(四)_第2页
第2页 / 共151页
omron-cpm1a-plc(四)_第3页
第3页 / 共151页
omron-cpm1a-plc(四)_第4页
第4页 / 共151页
omron-cpm1a-plc(四)_第5页
第5页 / 共151页
点击查看更多>>
资源描述

《omron-cpm1a-plc(四)》由会员分享,可在线阅读,更多相关《omron-cpm1a-plc(四)(151页珍藏版)》请在金锄头文库上搜索。

1、第四章 数据传送和数据比较指令,数据传送和数据比较指令有两个以上操作数,要注意这些指令的操作数的含义及其范围,这些指令多数都有微分和非微分两种形式,要注意指令微分和非微分形式时用法的区别,数据传送指令,数据比较指令,一、 数据传送指令,单字传送指令MOV,数字传送指令MOVD,位传送指令MOVB,块设置指令BSET,块传送指令XFER,单字分配指令DIST,数据交换指令XCHG,数据调用指令COLL,S:源数据(通道或十六进制数 ) D:目的通道号,功 能,非微分:在执行条件为ON时,将S传送到D中 (每个扫描周期都执行)。,微 分:在执行条件OFFON时,将S传送到D中 (只在条件满足时刻执

2、行一次)。,1. 单字传送指令MOV(21)/ MOV (21),LD 25315 MOV (21) #0198 HR00,在PLC上电的第一个扫描周期,把0198传送到HR00中,分析程序的功能,并写出语句表.,使用MOV指令举例(1),在此后的各扫描周期,不再执行MOV指令。,使用DIFU指令有何作用?,只要0000 OFFON,就执行一次MOV 指令。,分析程序的功能:,使用MOV指令举例(2),把LR00中的内容传送到HR00中。,分析程序的功能,使用MOV指令举例(3),只要00000 OFFON,就执行一次MOV 指令。,把LR00中的内容传送到HR00中。,与举例(2 )功能相同

3、。,指令MOV几种使用方法的区别,(a)与(c)相同,指令MOV都只在00000 OFFON时执行一次。,(b ) 指令MOV只在PLC上电后的第一个扫描周期执行一次。,从PLC上电开始,每个扫描周期里,都将HR00中的内容传送到LR00中。,与上述几种MOV指令使用方法的区别是:,本程序中,每个扫描周期指令MOV都执行!,请注意MOV指令各种用法的区别,分析程序的功能,使用MOV指令举例(4),PLC上电时,将0100传送到200通道中,作为CNT000的设定值, 改变计数器设定值的操作:,使00001OFFON,将0200 传送到200通道中;,自00000 ON开始, CNT000按设定

4、值100开始计数(或定时)。,此后计数器按设定值200计数,断开00000,闭合一次触点 00002, 使CNT000复位;,分析程序的功能,使用MOV指令举例(5),2. 块传送指令XFER (70 )/ XFER(70 ),N :通道数(BCD数 ),功能,在执行条件为ON时,将几个连续通道中的数据传送到另外几个连续通道中。,S :源数据块首通道 D:目的通道首通道,执行块传送指令时数据传送如下所示:,3. 块设置指令BEST(71)/ BEST(71),S :源数据(通道或十六进制数 ),功能,在执行条件为ON时,将S传送到从St到E的各通道中。,St :开始通道 E:结束通道号,LD

5、00000 MOV(21) #0100 HR00 TIM 000 HR00 AND TIM000 OUT 01000 LD 00001 BSET(71) #0050 TIM 000 TIM 000, BSET指令的第二、第三操作数都是TIM000,即执行BSET指令,只把数据传送到TIM000中。,功能,在00001OFF、00000 OFFON 时,执行一次MOV指令,将 #0100传送到通道HR00中。,自此TIM 000以设定值10秒定时。, 经过10秒,定时器TIM000 ON, 线圈01000 ON 。,当需要改变定时器TIM000的当前值时,可通过执行BSET指令来实现。,执行BS

6、ET指令将0050传送到TIM000中,TIM000的当前值立即变为0050。,例如,在TIM000的当前值为0089时,令00001 ON一次:,自此,TIM000的当前值从0050开始,每隔0.1秒减1,一直减到为0000为止。,由于HR00中的数据没有改变,在下一次定时器TIM000工作时,其定时值仍然是0100。, 以上是用BSET指令改变定时器的当前值。, 用BSET指令也可以改变定时器的设定值。方法为:,本例中,令BSET指令的第2、3操作数为HR00,执行BSET指令后,TIM000的设定值就为0050了。,MOV与BSET指令的异同, 执行一次MOV指令,只能向一个通道传送一个

7、字;而执行一次BSET指令,可以向多个通道传送同一个字。, TIM / CNT的操作数是通道时,用MOV 和BSET指令都可以改变TIM / CNT的设定值。, 用BSET指令既可改变TIM/CNT的设定值、也可以改变TIM/CNT的当前值 。,因为MOV指令不能向TC区传送数据, 所以不能用MOV指令改变 TIM/CNT的当前值 !,4. 位传送指令MOVB (82)/ MOVB (82),bit00bit07指定S中的位号 bit08bit15指定D中的位号,S:源数据 D:目的通道 C (BCD) :控制数据,在执行条件为ON时,根据C的内容,将S传送到D中。,C内容的含义,指令的功能,

8、LD 00005 MOV B (82) HR00 #1500 200,程序功能,C的含义,例:设 HR00 的内容为 1000 1000 1000 0101,执行指令之后20015为ON( 1 ),bit00bit07:S中的位 bit08bit15:D中的位,在PLC上电之初,将HR0000的内容传送到 20015中 。,5. 数字传送指令MOVD (83)/ MOVD (83),在执行条件为ON时,根据C的内容,将S中指定的数字传送到D中指定的数字位中。,指令的功能,S:源数据 D:目的通道 C:控制数据,C (BCD数)的含义,指令各操作数的含义,S中第一个要传送的数字位位号,不用,指定

9、D中接收第一个数字的位号,C=#0030,使用MOVD指令举例(1),根据C、确定指令执行结果,S中第0位数字开始传送,传 送 4 位 数 字,D中从第0位开始接收第一个数字,被传送的数字位要连续,例如:1 2 3 0,例如:3 0 1 2,例如:2 3 0 1等,C=#0023,使用MOVD指令举例(2),根据C、确定指令执行结果,S中第3位数字开始传送,传 送 3 位 数 字,D中从第0位开始接收第一个数字,第一个被传送的数字,第二个被传送的数字,第三个被传送的数字,第一个接收数字的位,C=#0123,使用MOVD指令举例(3),根据C、确定指令执行结果,S中第3位数字开始传送,传 送 3

10、 位 数 字,D中从第1位开始接收第一个数字,第一个被传送的数字,第二个被传送的数字,第三个被传送的数字,第一个接收数字的位,6. 单字分配指令DIST(80)/ DIST (80),S:源数据 DBS:目标基准通道 C:控制数据(BCD),在执行条件为ON时,根据C的内容,进行单字数据分配或堆栈的进栈操作(栈区由C的低3位确定)。,指令的功能,1. C的bit12 bit15的内容8时,执行单字数据 分配 操作。,控制数据C (BCD) 的含义,指令功能,当执行条件为ON时,将S的内容传送到(DBS + C )中,如下图。,2. C的bit12 bit15的内容= 9时,执行指令生成一个堆栈

11、,执行进栈操作。,指令功能:,进栈方法:,每执行一次指令,将S的内容复制到(DBS + 堆栈指针+1 )的栈区通道中,然后指针加1。,当执行条件为ON时,执行指令生成一个堆栈(以C的低3位确定栈区通道数),以DBS为堆栈指针进行进栈操作。,进栈过程举例。,源数据,控制数据,堆栈指针,第一次执行,!,!,第二次执行,!,!,栈区,SBs是基准通道 D是目的通道 C是控制数据(BCD),7. 数据调用指令COLL (81)/ COLL (81),在执行条件为ON时,根据C的内容,进行调用数据或堆栈的出栈操作(栈区由C的低3位确定)。,指令的功能,1. C=00006655 数据调用,控制数据C (

12、BCD) 的含义,指令功能,当执行条件为ON时,将(SBS + C ) 传送到D中。,2. 出栈操作 (包括两种情况), C=90009999 先入先出的出栈操作,以SBS为堆栈指针,按先入先出的原则,将堆栈中的数据传送到D中,堆栈指针减1。, C=80008999 后入先出的出栈操作,以SBS为堆栈指针,按后入先出的原则,将堆栈中的数据复制到D中(堆栈中的内容不变),堆栈指针减1。,先入先出的出栈过程,分析:当SBs=DM0000、 C=#9007 、D=200时,指令COLL执行的结果。,执行一次,执行前,C=#9007,栈区 DM0001DM0007,先入先出,堆栈指针,指针减1,执行二

13、次,后入先出的出栈过程,分析:当SBs=DM0000、 C=#8007 、D=200时,指令COLL执行的结果。,执行一次,执行前,C=#8007,栈区为 DM0001DM0007,后入先出,堆栈指针,指针减1,执行二次,单字比较指令CMP,表比较指令TCMP,双字比较指令CMPL,块比较指令BCMP,二、 数据比较指令,1. 单字比较指令CMP,C1 :比较数1 C2 : 比较数2,在执行条件为ON时,将C1 和C2进行比较。,当 C1 C2时,标志位25505 ON,当 C1 = C2时,标志位25506 ON,当 C1 C2时,标志位25507 ON,功能,使用CMP指令举例(1),写语

14、句表、分析程序功能,LD 00000 TIM 000 #0030 CMP(20) TIM000 #0200 AND 25505 OUT 20000 AND 25506 OUT 20001 AND 25507 OUT 20002 LD TIM000 OUT 20003,分析程序功能,执行指令CMP时,将TIM000的当前值与 #0200进行比较。,当00000为ON时,TIM000开始定时、且开始执行CMP指令。,TIM000的当前值由0300每隔0.1秒减1。,可见:配合指令CMP,用一个定时器可以控制 多个输出位。,若TIM000当前值大于#0200时,25505 ON 20000 ON。,

15、若TIM000的当前值等于# 0200时,25506 ON 20001 ON。,若TIM000的当前值小于# 0200时,25507 ON 20002 ON。,当TIM000 定时到 时,20002和 20003 ON。,续,使用CMP指令举例 (2),分析本例使用微分指令的原因,由于CMP指令没有微分形式,若欲使指令CMP只在00000 OFFON时执行一次,则必须使用指令DIFU(13),2. 块比较指令BCMP,CD:比较数据 CB:数据块的起始通道 R:存结果通道,功能,当执行条件为ON时,将CD与每个数据区域比较。,当CD处于某个区域时,与该区域对应的R的位ON。,使用块比较指令BCMP举例,比较指令执行结果:HR 0514为 ON,数据块内容可预先写入,数据块,存结果,比较数据,块首通道,结果通道,3. 表比较指令TCMP,CD:比较数据 TB:数据表的起始通道 R: 结果通道,功能,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号