好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据传送和数据比较指令教材.ppt

46页
  • 卖家[上传人]:我**
  • 文档编号:117135500
  • 上传时间:2019-11-18
  • 文档格式:PPT
  • 文档大小:646.50KB
  • / 46 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 数据传送和数据比较指令有两个以上操作数 要注意这些指令的操作数的含义及其范围 这些指令多数都有微分和非微分两种形式 要注意指令微分和非微分形式时用法的区别 数据传送指令数据比较指令 一、 数据传送指令 单字传送指令MOV数字传送指令MOVD 位传送指令MOVB 块设置指令BSET 块传送指令XFER单字分配指令DIST 数据交换指令XCHG 数据调用指令COLL S:源数据(通道或十六进制数 ) D:目的通道号 功 能 MOV (21) S D @MOV(21) S D MOV(21 ) S D @ MOV (21) S D 非微分:在执行条件为ON时,将S传送到D中 (每个扫描周期都执行) 微 分:在执行条件OFF→ON时,将S传送到D中 (只在条件满足时刻执行一次) 1. 单字传送指令MOV(21)/ @MOV (21) LD 25315 MOV (21) #0198 HR00 在PLC上电的第一个扫描周期,把0198传送到HR00中 25315 MOV(21 ) # 0198 HR00 分析程序的功能,并写出语句表. 使用MOV指令举例(1) 在此后的各扫描周期,不再执行MOV指令。

      使用DIFU指 令有何作用 ? 只要0000 OFF→ON, 就执行一次MOV 指令 20000 00000 DIFU(13) 20000 MOV(21) LR00 HR00 分析程序的功能: 使用MOV指令举例(2) 把LR00中的内容传送到 HR00中 LR00中的内容在变 化,必要时将其传 送到HR00中 00000 @MOV(21) LR00 HR00 分析程序的功能使用MOV指令举例(3) 只要00000 OFF→ON, 就执行一次MOV 指令 把LR00中的内容传送到 HR00中 与举例(2 )功能相同 20000 00000 DIFU(13) 20000 MOV(21) LR00 HR00 指令MOV几种使用方法的区别 (a)与(c)相同,指令MOV都只在00000 OFF→ON时执 行一次 (b ) 指令MOV只在PLC上电后的第一个扫描周期执 行一次 25315 MOV(21 ) LR00 HR00 00000 @MOV(21 ) LR00 HR00 (a ) (b ) (c) 20000 00000 DIFU(13) 20000 MOV(21) LR00 HR00 25313 MOV(21 ) HR00 LR00 从PLC上电开始,每个扫描 周期里,都将HR00中的内 容传送到LR00中。

      与上述几种MOV指令使用方法的区别是: 本程序中,每个扫描周期指令MOV都执行! 请注意MOV指令各种用法的区别 分析程序的功能使用MOV指令举例(4) PLC上电时,将0100传送到200 通道中,作为CNT000的设定值 ★ 改变计数器设定值的操作: ●使00001OFF→ON,将0200 传送到200通道中; 自00000 ON开始, CNT000按设 定值100开始计数(或定时) ●此后计数器按设定值200计数 ●断开00000,闭合一次触点 00002, 使CNT000复位; 00001 MOV(21 ) #0100 200 25315 25502 00001 00000 CNT000 200 00002 25315 @MOV(21) #0200 200 分析程序的功能使用MOV指令举例(5) 2. 块传送指令XFER (70 )/ @ XFER(70 ) N :通道数(BCD数 ) 功能 在执行条件为ON时,将几个连续通道中的数据传 送到另外几个连续通道中 S :源数据块首通道 D:目的通道首通道 XFER(70 ) N S D @ XFER(70 ) N S D XFER(70) N S D @XFER(70) N S D 执行块传送指令时数据传送如下所示: S 1 2 3 4 S+1 8 2 A C S+2 9 0 B 6 … S+N-1 0 D F E D 1 2 3 4 D+1 8 2 A C D+2 9 0 B 6 … D+N-1 0 D F E … 3. 块设置指令BEST(71)/ @ BEST(71) S :源数据(通道或十六进制数 ) 功能 在执行条件为ON时,将S传送到从St到E的各通道中。

      St :开始通道 E:结束通道号 BEST(71 ) S St E @ BEST(71) S St E BSET(71) S St E @BSET(71) S St E LD 00000 @MOV(21) #0100 HR00 TIM 000 HR00 AND TIM000 OUT 01000 LD 00001 @BSET(71) #0050 TIM 000 TIM 000 00001 @BSET(71) # 0050 TIM000 TIM000 TIM000 01000 @MOV(21) # 0100 HR00 00000 TIM000 HR00 分析程序的功能,写语句表使用BEST指令举例 00001 @BSET(71) # 0050 TIM000 TIM000 TIM000 01000 @MOV(21) # 0100 HR00 00000 TIM000 HR00 ① @BSET指令的第二、第三操作 数都是TIM000,即执行@BSET指 令,只把数据传送到TIM000中。

      功能 ②在00001OFF、00000 OFF→ON 时,执行一次MOV指令,将 #0100传送到通道HR00中 ③自此TIM 000以设定值10秒定时 ④ 经过10秒,定时器TIM000 ON, 线圈01000 ON 00001 @BSET(71) # 0050 TIM000 TIM000 TIM000 01000 @MOV(21) # 0100 HR00 00000 TIM000 HR00 ⑤当需要改变定时器TIM000 的当前值时,可通过执行 @BSET指令来实现 执行@BSET指令将0050传送 到TIM000中,TIM000的当 前值立即变为0050 例如,在TIM000的当前值为 0089时,令00001 ON一次: 自此,TIM000的当前值从 0050开始,每隔0.1秒减1,一 直减到为0000为止 00001 @BSET(71) # 0050 TIM000 TIM000 TIM000 01000 @MOV(21) # 0100 HR00 00000 TIM000 HR00 ⑥由于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) S C D @ MOVB (82) S C D MOVB (82) S C D @ MOVB(82) S C D S:源数据 D:目的通道 C (BCD) :控制数据 在执行条件为ON时,根据C的内容,将S传送到D中 。

      C内容的含义 指令的功能 分析程序的功能,写语句表使用MOVB指令举例 @MOVB (82) # 0050 HR00 200 25315 LD 00005 @MOV B (82) HR00 #1500 200 程序功能 C的含义 例:设 HR00 的内容为 1000 1000 1000 0101 执行指令之后——20015为ON( 1 ) bit00~bit07:S中的位 bit08~bit15:D中的位 在PLC上电之初,将HR0000的内容传送到 20015中 5. 数字传送指令MOVD (83)/ @ MOVD (83) MOVD (83) S C D @ MOVD (83) S C D MOVD (83) S C D @ MOVD(83) S C D 在执行条件为ON时,根据C的内容,将S中指 定的数字传送到D中指定的数字位中 指令的功能 S:源数据 D:目的通道 C:控制数据 C (BCD数)的含义 指令各操作数的含义 MOVD (83) S C D S中第一个要传送的数字位位号 不用 C数字3 数字2 数字1 数字0 S中要传送的数字位数 0→ 1位 1→2位 2→ 3位 3→4位 指定D中接收第一个数字的位号 C=#0030 使用MOVD指令举例(1)根据C、确定指令执行结果 S中第0位数字开始传送 传 送 4 位 数 字 D中从第0位开始接收第一个数字 MOVD (83) S #0030 D 0 1 2 3 D 0 1 2 3 S 被传送的数字位要连续 例如: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 #0023 D 0 1 2 3 D 0 1 2 3 S 第一个被传 送的数字 第二个被传 送的数字 第三个被传 送的数字 第一个接收 数字的位 C=#0123 使用MOVD指令举例(3)根据C、确定指令执行结果 S中第3位数字开始传送 传 送 3 位 数 字 D中从第1位开始接收第一个数字 MOVD (83) S #0123 D 0 1 2 3 D 0 1 2 3 S 第一个被传 送的数字 第二个被传 送的数字 第三个被传 送的数字 第一个接收 数字的位 6. 单字分配指令DIST(80)/ @ DIST (80) S:源数据 DBS:目标基准通道 C:控制数据(BCD) DIST(80) S DBS C @ COLL (81) S DBS C DIST(80) S DBS C @ DIST(80) S DBS C 在执行条件为ON时,根据C的内容,进行单字数据分配 或堆栈的进栈操作(栈区由C的低3位确定)。

      指令的功能 1. C的bit12~ bit15的内容≤8时,执行单字数据 分配 操作 控制数据C (BCD) 的含义 指令功能 当执行条件为ON时,将S的内容传 送到(DBS + C )中,如下图 DIST(80) S DBS C S 9 0 B 6 DBS+C 9 0 B 6 2. C的bit12~ bit15的内容= 9时,执行指令生 成一个堆栈,执行进栈操作 指令功能: 进栈方法: 每执行一次指令,将S的内容复制到(DBS + 堆栈指针 +1 )的栈区通道中,然后指针加1 当执行条件为ON时,执行指令生成一个堆栈(以C的 低3位确定栈区通道数),以DBS为堆栈指针进行进栈 操作 进栈过程。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.