签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1557995&b_id=3&s_id=0&num=9
楼主,比较完之后,没说什么了?
你看啊,1和2345比,2和345比,3和45比,4和5比,一共比较了4321次,10次,(假设你的程序没错)现在换个方式,12比,23比,34比,45比,每次比都选择性调位,把较大值放后面。经过这么一比,4次,最大值就出现在第五位了。
在v区建立一个表单:
vw0 1 vw2时间1
vw4 2 vw6 时间2
vw8 ...
vw12...
vw16...
比较的话只比较时间,而调位的话连编号连时间一齐调。那么,第五位就可以知道编号和时间。
停机还有什么问题?
知道3号时间最大,还停不了3号?
1-5运行时间分别存到VW0-VW8中。VW0>VW2,VW0>VW4,VW0>VW6,VW0>VW8,则M0.1得电;
VW2>VW0,VW2>VW4,VW2>VW6,VW2>VW8,则M0.2得电;
VW4>VW0,VW4>VW2,VW4>VW6,VW4>VW8,则M0.3得电;
VW6>VW0,VW6>VW2,VW6>VW4,VW6>VW8,则M0.4得电;
VW8>VW0,VW8>VW2,VW8>VW4,VW8>VW6,则M0.5得电;
M0.1-M0.5哪个得电先停哪个
呃,这个就是最最最简单的算法,查找最大值而已。
百度一下最大值算法,就有一大堆。根本就不用什么排序!!!因为你只需要找到最大的那个停掉。
其实,这种多电机运行时间平衡逻辑,根本就不用计算运行时间的,只需要记录开机顺序,停机时判断哪个电机正在运行且开机顺序最小的就停它准没错!
用运行时间累计来做电机磨损平衡来做是非常不好的一种控制逻辑。先不说每个计时周期浪费大量的CPU时间去做运行时间累计浪费资源,还有就是当某台电机一直有过流问题时它的运行累计时间永远是最小的,那么每次轮换时间周期都是先开它导致它经常频繁短时间启动后过流报警设备整体工作在很不健康状态,还不如按顺序轮换避免每个轮换周期都去折腾那个矮个子更健康。
应该比较前面再加个当前电机正在运行的条件,如果电机已经停止就不参加比较了
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录