关于:先启先停的移位算法

已锁定

第七印记

  • 帖子

    197
  • 精华

    1
  • 被关注

    8

论坛等级:侠客

注册时间:2009-07-25

普通 普通 如何晋级?

关于:先启先停的移位算法

1899

13

2011-06-30 09:12:06

做一个恒压供水的系统,四台泵,采用移位算法,实现先启先停,使泵寿命均衡。
1.采用这种算法
水位低了,将00111000循环左移得01110000,与原来的00111000相“或”,得01111000,投入了一台泵。
水位高了,将01111000循环左移得11110000,与原来的01111000相“与”,得01110000,切除了一台泵
这种算法在第一个周期内(即移位到最高位),可以实现泵的先启先停,由于是四台泵,即 当寄存器的第四位位1时,在移位就要循环回去,启动第一位(假定第一位已经为0)例如:00001100,这种状态,再起应该变为 00001101。
这种情况我又把上面的加泵算法处理的结果进行如下处理:
第一步:原始数据X1复制一份,存储到X2。
第二步:X2 和 00010000 相与,得到X3.即取出第五位的状态。
第三步:X3 右移四位,得到 X4.即把取到的第五位状态转移到第一位状态
第四步:X2 和数据00001111相与,得到X5,把原始数据的高四位去掉
第五步:X5与X4相或,得到最终数据X6
这种算法已经可以实现上需那种状态:即 当数据位 00001100时,在增加泵 即可变为00001101,再加可以变为 00001111,已经通过测试,没有问题

目前的问题,原来的减泵算法肯定需要修改,想了一夜也没有个思路,希望大家给点建议,我目前的时 在第一个周期,增加泵0000011 00000111 00001111 这时开始减泵 变为00001110 00001100 这都没有问题 这时再增加泵 00001101,这时再减泵 就出问题了,这时我的算法该如何改进呢。没有个思路,这时应该变为00001001,再减应该位 00000001。
关于:先启先停的移位算法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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