回复:怎样实现64位循环左移?(转)

风淡云晴

  • 帖子

    161
  • 精华

    3
  • 被关注

    12

论坛等级:游士

注册时间:2011-07-14

普通 普通 如何晋级?

发布于 2011-09-06 13:55:44

76楼

quote:以下是引用Automann在2011-04-05 13:22:14的发言:
本帖转自http://blog.gkong.com/blog.asp?name=liaochangchu

S7-200和S7-1200有字节、字和双字的循环移位指令。S7-300/400只有双字循环移位指令。在它的基础上,可以实现任意位的循环移位,下面以8位循环移位为例。本例来源于作者的《跟我动手学S7-300/400 PLC》。
MB0是双字MD0的最高字节,MD0每次循环左移1位后,最高位M0.7的数据被移到MD0最低位的M3.0(见下图)。为了实现MB0的循环移位,移位后如果M3.0为1状态,将MB0的最低位M0.0置位为1,反之将M0.0复位为0,相当于MB0的最高位M0.7移到了MB0的最低位M0.0。
MD0每次循环右移1位之后,MB0的最低位M0.0的数据被移到MB1最高位的M1.7。移位后根据M1.7的状态,将MB0的最高位M0.7置位或复位,相当于MB0的最低位M0.0移到了MB0的最高位M0.7。
在程序段3,用MOVE指令将MB0的值传送到QB4,可用QB4来控制8位彩灯。
根据本例的思路,不难实现任意位的循环移位。



谢谢,这方法挺好。
心晴朗,就会看得到永远;等一个晴天,阳光中,风筝会再飞上天。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54703条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。