plc移位寄存器指令的应用

编程语言及工具

99人已加入

描述

  PLC 作为新一代工业控制装置,广泛应用于各种逻辑控制、顺序控制等工业现场,其丰富的指令系统使得其在各种控制系统中大显身手,本文以彩灯控制系统为例,介绍移位及移位寄存器指令应用,并通过对比不同的控制效果,总结三者的用法及区别。

  移位寄存器指令SFT类似于一个串行移位寄存器。在移位信号的上升沿,SFT指令将参与移位的字的数据依次向高位移动1位,最高位的值溢出,并采集数据输入信号将其放置在最低位。其梯形图符号如图所示。

  plc

  操作数区域为:

  D1是起始字,其范围是CIO、WR、HR、AR(448~959)。

  D2是结束字,其范围是CIO、WR、HR、AR(448~959)。

  SFT指令要求参与移位的字必须是相同类型,移位寄存器包括起始字到结束字及之间的所有字,而且结束字的地址应大于或等于起始字的地址。当复位端为ON时,所有的移位寄存器的数据将清零。

  可编程序控制器(PLC)是以自动控制技术、微计算机技术和通信技术为基础发展起来的新一代工业控制装置。PLC 广泛应用于逻辑控制、顺序控制等方面。PLC 具有丰富的指令系统,包括基本指令、功能指令和高级指令等。本文以彩灯控制系统为例,介绍逻辑移位、循环移位及移位寄存器指令的应用。

  逻辑移位指令应用

  逻辑移位指令包括左移和右移 2 种,移位数据类型包括字节、字和双字 3 种,本文以字节逻辑左移指令(SLB)为例介绍其应用。SLB 的梯形图和语句表如图 1 所示,其功能是当 EN 有效时,把从 IN 端输入的数据左移 N 位后,结果输出到 OUT 存储单元中。移出位自动补 0,最后一个移出位保存在 SM1.1 中,当存储单元中的结果为 0 时SM1.0 为 1。应用 SLB 指令设计的彩灯控制系统梯形图如图 2 所示。

  plc

  程序分析:开关闭合后首先将数据 1 传送至 QB0,此时点亮第一组彩灯,然后每隔 1s 轮流点亮下一组彩灯,当第八组彩灯点亮后,彩灯系统停止工作。由此可见,对于SLB 指令其最高位溢出、最低位补 0,因此最多移位次数为 8,且不能循环工作。

  循环移位指令应用

  循环移位指令也包括左移和右移 2 种,移位数据类型包括字节、字和双字 3 种,本文以字节循环左移指令(RLB)为例介绍其应用。RLB 指令的梯形图和语句表如图3 所示,其功能是当 EN 有效时,把从 IN 端输入的字节数据循环左移 N 位后,结果输出到 OUT 存储单元中。最后一个移出位保存在 SM1.1 中,当存储单元中的结果为 0时 SM1.0 为 1。应用 RLB 指令设计的彩灯控制系统梯形图如图 4 所示。

  程序分析:开关闭合后首先将数据 1 传送至 QB0,此时点亮第一组彩灯,然后每隔 1s 依次点亮下一组彩灯,当第八组彩灯点亮后,彩灯系统循环工作。由此可见,对于RLB 指令由于其高位移至低位、低位移至高位,因此实际移位次数为对 8 取余的结果,并能循环工作。

  plc

  移位寄存器指令应用

  移位寄存器指令(SHRB)可实现左移和右移功能,移位数据类型为位,本文以左移情况为例介绍其应用。SHRB指令的梯形图和语句表如图 5 所示,其功能是当 EN 有效时,把输入端 DATA 采样的数值移入移位寄存器中,整个移位寄存器移动 1 位。S_BIT 指定移位寄存器的最低位,N指定移位寄存器的长度和移位方向,N》0 时左移,N《0 时右移,N 的最大值为 64。移出位保存在 SM1.1 中,当移位寄存器中的结果为 0 时 SM1.0 为 1。应用 SHRB 指令设计的彩灯控制系统梯形图如图 6 所示。

  plc

  程序分析:开关闭合后 Q0.0 为高电平,此时点亮第一组彩灯,然后每隔 1s 依次点亮下一组彩灯,当第八组彩灯点亮后,彩灯系统循环工作。由此可见,对于移位寄存器指令由于其最低位 S_BIT 位补充数据由 DATA 决定、其他位依次向左移位,因此要实现循环工作,需要对其进行复位操作。

  通过逻辑移位、循环移位和移位寄存器指令实现的彩灯控制的不同效果可知三者区别如下:

  相同点:


        ①均可实现左移和右移功能;

  ②移位后均影响标志位;

  ③使能端均为上升沿有效。

  不同点:

  ①逻辑移位指令和循环移位指令均为 2 个数据端,而移位寄存器指令为 3 个数据端;

  ②逻辑移位指令和循环移位指令的移位数据类型可为字节、字或双字,移位寄存器指令移位数据类型为位;

  ③逻辑移位指令的 N 值大于 0,且受 IN 端初值影响,循环移位指令的 N 大于 0,且实际移位次数为对数据类型取余的结果,移位寄存器指令的 N 可大于 0,也可小于 0,其最大值为 64;

  ④逻辑移位指令不能实现循环功能,循环移位指令和移位寄存器指令可实现循环功能。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分