回复:一道PLC编程题目

Zane

版主 西门子1847工业学习平台

  • 帖子

    21113
  • 精华

    401
  • 被关注

    1487

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2011-03-21 23:16:26

36楼

quote:以下是引用H.L在2011-03-21 22:40:04的发言:
我最近在调一套污水厂的系统,也正在考虑着如何将这个问题做的更好一些,我的工况是这样的:
1、液位从低到高分为n个液位,随着液位的上升,每到达一个液位时,启一台泵,反之停一台泵,液位值可设定。
2、泵的运行时间要均衡。
3、有故障的或处于现场控制状态的泵不参与自动控制启停。
4、运行时间最短的泵优先启动,但也要轮询控制,即刚停下的泵不允许再次启动,要轮询到另一台运行时间最短的泵上。
5、其中有带变频的泵,也在考虑在此基础上加上PID控制,以往是不做PID控制的。
6、最终目的就是使水量平稳些。
目前的想法是:
1、在每次液位到达需要启泵前先调用一次排序程序,排序时先将不满足条件(故障的、正在运行的、刚停止运行的、不在自控状态的)的这些泵去掉,然后去比较剩余泵的运行时间,只选择出时间最短的,这样只需要遍历一次就可以了。
2、排序的方法很多,我选择用两个指针,最终一个指向最短的这个时间值,一个指向其对应的泵的序号。
3、考虑做成功能块,将所有泵的运行时间放入一个连续的地址空间,将来用时只需指定一个起始地址,和几个标志位(用来决定哪些泵参与排序的),块的输出值一个是最短的时间,一个是泵的序号(标志位)。
4、停止时就采用先启先停的原则。



H.L

你的做法已经很接近循环移位法了,或许你表达的还不是那么清楚。刻意去比较最短运行时是没有意义的,总是在变化的,而且,最低的肯定是故障率最高的那台,有个恶性循环,一切顺其自然啦。
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54650条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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