技术论坛

一道PLC编程题目

作者 主题
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
主题:一道PLC编程题目


只看楼主 只看精华 楼主 2011-03-19 13:00:05
标签:
刚接触了一个关于PLC编程的问题,觉得很有意思,提出来供大家思考练习:


n个水位限位值,x个排水泵:
水位越高,加入运转的水泵越多。
各水泵的运转寿命要均衡。

其它未尽的细节,你自己从工程应用合理的角度来考虑就好了。


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=819555&b_id=4&s_id=0&num=121

侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 1楼 2011-03-19 13:28:02
恒压供水的简化版。
恒压供水启动泵时,会要求启动运转时间最短的,就是为了保证水泵的运转寿命均衡。
没有
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:一道PLC编程题目


只看楼主 只看精华 楼主 2楼 2011-03-19 15:17:25
哈简化版,你从恒压供水的程序里面可以摘出来现成的控制逻辑吗?

恒压供水有pid,大部分精力在变频器的控制上面呢,这里则一概没有。

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 3楼 2011-03-19 17:09:18
quote:以下是引用万泉河在2011-03-19 15:17:25的发言:
哈简化版,你从恒压供水的程序里面可以摘出来现成的控制逻辑吗?

恒压供水有pid,大部分精力在变频器的控制上面呢,这里则一概没有。


版主火气蛮大的。
我解释一下:
恒压供水是控制水压稳定,换在这里是控制液位稳定,实际上并无区别。
恒压供水包含多个泵的控制,液位控制也是多个泵的控制。
之所以说简化版,是这里没有了变频器PID控制这一块。
假设在还没有变频器的时候,有一供水系统,由于对于水的用量经常变化,导致一台泵供水时水压时高时低,不能满足需要。于是想办法,将一台大泵换成多台小功率的水泵,根据用水量决定开几台小泵。用水量通过总管压力来检测。与上面题目是否类似呢?
没有
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 4楼 2011-03-19 17:14:42
另外,这道题目一定用不到PID么,因为你没对进水量与水泵数量进行限制。假设水泵功率与进水量相比相差很大,需要很多水泵一起工作时,即X的值很大时,是否可以用离散输出的PID算法来进行控制?
没有
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 5楼 2011-03-19 17:41:35
这道题目我先给一个不用PID的算法:
由于未说明水位检测是联续的还是离散的,先假定水位检测是连续的。
首先得设定一个水位的上限和下限,在上下限范围内,认为水位是正常的,不需要调节。因为这种方式不可能保证水位一直保持在一个值不变,而只能保证水位稳定在一个范围内。所以上面的设定并无问题。
初始状态,水泵都没有开,水位是上升的。
当水位子超出设定上限时,先开一台泵,然后检测水位状态,如果还是在上升,则开第二台泵,第三台泵,直到水位出现下降趋势。这时候记录下此时的开泵数量。
这时候停止开泵还有些早,因为此时水位可能下降很慢,所以还要开泵,再开的泵的数量与实际水位到目标水位的差值按一定比例来计算。
当水位下降到上限水位以下时,调整开泵数量到刚才记录下的开泵数。并检测水位变化趋势。如水位下降,则不处理,如水位上升,则一台一台的增加水泵数量,直至水位下降停止。
当这样运行一段时间后,水位会接近下限,此时要关闭一台水泵。并检测水位变化。如果水位仍在下降,继续关闭水泵,直到水位开始回升时停止。
水位变化状态的检测在整个过程中都是在进行的,当水位处于上下限以内,但变化趋势与期望的不一致时,就要开泵或关泵,每次一台。直到水位变化与期望一致。
没有
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:一道PLC编程题目


只看楼主 只看精华 楼主 6楼 2011-03-19 21:27:49
没有液位设定要求,只是根据液位高低判断了来水量多少,决定启动泵数多少而已
把限位值替代原来的设定值了,省得有的人误解。
微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:一道PLC编程题目


只看楼主 只看精华 楼主 7楼 2011-03-19 21:31:08
quote:以下是引用寒音在2011-03-19 17:09:18的发言:
quote:以下是引用万泉河在2011-03-19 15:17:25的发言:
哈简化版,你从恒压供水的程序里面可以摘出来现成的控制逻辑吗?

恒压供水有pid,大部分精力在变频器的控制上面呢,这里则一概没有。


版主火气蛮大的。
我解释一下:
恒压供水是控制水压稳定,换在这里是控制液位稳定,实际上并无区别。
恒压供水包含多个泵的控制,液位控制也是多个泵的控制。
之所以说简化版,是这里没有了变频器PID控制这一块。
假设在还没有变频器的时候,有一供水系统,由于对于水的用量经常变化,导致一台泵供水时水压时高时低,不能满足需要。于是想办法,将一台大泵换成多台小功率的水泵,根据用水量决定开几台小泵。用水量通过总管压力来检测。与上面题目是否类似呢?


读题错误还装什么大尾巴狼。我说过控制液位稳定吗?
我还不知道液位等于压力。
1kg=10m 水,学过物理的都知道。

如果坚持恒压供水程序里面有,直接抛出代码来不就得了。

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 10197
发帖数: 2115
精华帖: 3
回复:一道PLC编程题目


只看楼主 只看精华 8楼 2011-03-19 22:23:53
太好了!我最喜欢看到两个前辈就技术问题打得火热!这样很好嘛,可以让我们好好学习下。
Kapok
以下网友喜欢您的帖子:

  
游侠

经验值: 522
发帖数: 246
精华帖: 0
回复:一道PLC编程题目


只看楼主 只看精华 9楼 2011-03-19 23:14:54
版主也没有把问题说清楚,模糊的东西怎么做都有道理,大家只是讨论。
不准讨论何必还要大家思考,直接给答案得了。

各水泵的运转寿命要均衡 我认为这句话是最饶人的。

如果水位一直不高,达不到限位,那么这些泵还要轮流的开启,关闭了
我喜欢天天沉浸在项目中,不喜欢坐着喝茶。
以下网友喜欢您的帖子:

  
奇侠

经验值: 8896
发帖数: 2782
精华帖: 72
回复:一道PLC编程题目
精华帖精华帖星级1级


只看楼主 只看精华 10楼 2011-03-19 23:47:10
1.n个水位限位值,x个排水泵:水位越高,加入运转的水泵越多。
我的理解:超高限,开排水泵,开多少要看出力效果
超底线,关排水泵,关多少也要看液位情况。
我想这个理解大家都很清楚,具体如何控制,还要看具体情况分析。

2.各水泵的运转寿命要均衡。
这个要求我想到几种方案:
2.1各泵轮流运转;
2.2各泵计数运转;
2.3各泵计时运转;

具体方案还需具体分析!
不以物喜,不以己悲; 达则兼济天下,穷则独善其身。
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:一道PLC编程题目


只看楼主 只看精华 楼主 11楼 2011-03-20 07:57:26
quote:以下是引用论坛无语在2011-03-19 23:14:54的发言:
版主也没有把问题说清楚,模糊的东西怎么做都有道理,大家只是讨论。
不准讨论何必还要大家思考,直接给答案得了。

各水泵的运转寿命要均衡 我认为这句话是最饶人的。

如果水位一直不高,达不到限位,那么这些泵还要轮流的开启,关闭了


是欢迎大家讨论,讨论不是给我轻描淡写往恒压供水上一比就完事。
我辛辛苦苦总结出来的好题目给新手们练手开启思路的,被这哥们给胡搅蛮缠到恒压供水去了。

早就说过了,不清楚的地方要结合工程应用实际来考虑。比如你不知道液位是连续的和离散的,你做为设计者,就可以花钱买一个你想要的么!

水泵的运转寿命要均衡,绕人吗?工程中经常遇到。具体如何实现均衡,业主不会告诉你,但你做出的均衡效果,要通过业主的认可。
微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
侠圣

经验值: 3980
发帖数: 577
精华帖: 18
回复:一道PLC编程题目


只看楼主 只看精华 12楼 2011-03-20 11:00:12
和我们控制风机的工艺差不多,根据COVI的值控制风机开启,每次都最先启动运行时间最少的风机
业精于勤,行成于思
以下网友喜欢您的帖子:

  
奇侠

经验值: 7092
发帖数: 3450
精华帖: 26
回复:一道PLC编程题目


只看楼主 只看精华 13楼 2011-03-20 17:58:06
我们已经有中央空调二次循环泵的恒压差系统采用等寿命设计了。
方法是:
1、每台泵设置运行累计时间存储位,累加每次启动-停止的时间间隔;
2、每台泵设状态字节,标识:运行、备用、停用。因检修或故障停机的水泵不再参与运行。
3、每次增加的总是处于备用状态且累计时间最短的水泵。
4、每次停止的总是处于运行状态且累计时间最长的水泵。
5、压差反馈单回路PID控制,当输出超过95%且持续足够时间时增加一台泵,当输出低于5%且持续足够时间时减少一台泵。
制冷、热工-许可证试验室承建,给了我深究测量与控制的绝好机会。分享-值得期待!
以下网友喜欢您的帖子:

  
奇侠

经验值: 8561
发帖数: 3432
精华帖: 56
回复:一道PLC编程题目


只看楼主 只看精华 14楼 2011-03-20 18:27:31
y=需启动的排水泵
1,根据n个限位器算出y,这个应该不难,也不用有太多答案。因为版主的题目就说明要要求的精度不高,答案的要求也是简单易行。
2,每个排水泵累计运行时间,启动前y个排水泵运行时间最低的即可,为避免前期投入的排水泵连续运行,再加一个条件。连续运行a时间的泵必须停止,并启动下一个未运行的最低运行小时泵。
If anything can go wrong, it will.
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 15楼 2011-03-20 23:09:15
版主说我胡搅,那就再胡搅一下。
首先,一个PLC控制应用,必须有一个控制目标,否则控制无从谈起。版主说从工程应用的角度来考虑,实际应用中,不会以开几个泵为控制目标,这类应用中最常见的一种,就是控制液位的恒定。
另外,我所说的压力相当于液位,是指恒压供水中控制的过程量是压力,这里控制的过程量是液位,压力和液位都是控制的对象,因此可以类比。而不是说压力和液位之间存在换算关系。
版主题目的重点在于控制泵的运转寿命均衡,而不在于在何时开启几台泵,不知理解正确否?
运转寿命均衡是多电机应用中很常见的要求,但实现起来涉及一些算法,确实是个好题目。
没有
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 16楼 2011-03-20 23:25:26
运转寿命均衡,一般是要求启动时启动运转时间最短的泵,停止时停止运转时间最长的泵。
这里就涉及到如何选取运转时间最短的泵和运转时间最长的泵。一种方法是每次启动泵时对未启动的泵的时间做比较,找出运转时间最短的泵,此方法简单,但效率不高。另一种方法是提前对未启动的泵按运转时间做排序,启动时直接启动位于队列最前面的。此方法较复杂,但效率高。停泵过程类似。方法还有很多种。
最后就是如何根据选择的泵号启动相应的泵的控制输出点,最简单的方法是采用间接寻址的方式。笨的方法是用比较指令。

没有
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:一道PLC编程题目


只看楼主 只看精华 楼主 17楼 2011-03-21 06:33:05
你是真真正正地限在恒压供水的泥潭里出不来了。

会开车不?

打比方说,你车速在30-40迈的时候可以切换到3档,40-50迈的时候可以切换到4档,50-60迈可以切换到5档。

那么这里的液位高低就相当于车速快慢,而泵的数量就相当于车的档位和出力大小。

你告诉我你开车一定要有个控制目的的吗?那你说是速度还是档位?如果你的大脑作为一个PLC,必须要接受一个速度的给定值你才可以开车的吗?


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
侠圣

经验值: 2942
发帖数: 1448
精华帖: 6
回复:一道PLC编程题目


只看楼主 只看精华 18楼 2011-03-21 08:36:38
quote:以下是引用万泉河在2011-03-21 06:33:05的发言:
你是真真正正地限在恒压供水的泥潭里出不来了。

会开车不?

打比方说,你车速在30-40迈的时候可以切换到3档,40-50迈的时候可以切换到4档,50-60迈可以切换到5档。

那么这里的液位高低就相当于车速快慢,而泵的数量就相当于车的档位和出力大小。

你告诉我你开车一定要有个控制目的的吗?那你说是速度还是档位?如果你的大脑作为一个PLC,必须要接受一个速度的给定值你才可以开车的吗?



好的,抛开恒压供水不说,就说你的开泵控制。
控制是一定要有一个控制目标的,否则就无法去控制,无法衡量控制结果的好坏。开泵的数量会是一个最终的控制目标么?肯定不是,调节开泵的数量只是一种手段,为达到一个目的而采取的手段。能举一下以控制泵为目的的实际应用么?
PLC控制是以应用为目的的,Plc控制不是用来做玩具的。
以开车为例,开车没有控制目的么?如果公路有限速,按么控制速度就是一个控制目的。如果是你自己的车,控制车的损耗、控制油耗、保证车的运行的安全稳定就是控制的目的。
这些就是开车时转换档位的目的,当然不是全部。
没有
以下网友喜欢您的帖子:

  
侠客

经验值: 947
发帖数: 214
精华帖: 3
回复:一道PLC编程题目
精华帖精华帖星级1级


只看楼主 只看精华 19楼 2011-03-21 13:03:46
哈哈,大家争论的很激烈啊;最近做的一个项目中有个多泵运行控制的要求跟版主的很相似:有个冷却系统,使用4台泵作为冷却泵,根据冷却器的出口温度来确定需要冷却泵的数量;要求长期运行的寿命平衡。我的做法跟13楼(0不是1) 14楼(冬日)的差不多;我目前是这样做的:
1、首先,根据冷却器出口温度计算出需要运行泵的数量(包括停止所有泵);(版主这个应该是根据液位来确定泵的数量)
2、将各泵的累计运行时间存储下来;根据各泵的累计运行时间运行一个排序的程序来确定泵的启动顺序,最短的泵先运行;检修泵设定不参与排序
3、在泵的控制块中增加了一些如跳闸、启动故障、失压的标志位;
4、在程序判断需要增加运行数量或者有运行泵故障时,自动启动排序最优先运行的泵(当然是还未启动的泵中时间最短的);需要减小运行数量时,是优先停止排序最后的泵(当然是运行中累计运行时间最长的泵)

没有14楼说的那样将已经连续运行多长时间的泵停下来,运行时间最短的泵。而是在需要启动时再启动时间最短的泵

 
以下网友喜欢您的帖子:

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