技术论坛

 回复:一道PLC编程题目

返回主题列表
作者 主题
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
楼主    2011-03-19 13:00:05
主题:一道PLC编程题目
刚接触了一个关于PLC编程的问题,觉得很有意思,提出来供大家思考练习:


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

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

微信公众号:PLC标准化编程,ZHO6371995
凌波微步
奇侠

经验值:8842
发帖数:2715
精华帖:72
10楼    2011-03-19 23:47:10
精华帖  主题:回复:一道PLC编程题目
1.n个水位限位值,x个排水泵:水位越高,加入运转的水泵越多。
我的理解:超高限,开排水泵,开多少要看出力效果
超底线,关排水泵,关多少也要看液位情况。
我想这个理解大家都很清楚,具体如何控制,还要看具体情况分析。

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

具体方案还需具体分析!
不以物喜,不以己悲; 达则兼济天下,穷则独善其身。
明天
侠客

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

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

经验值:8680
发帖数:3358
精华帖:56
26楼    2011-03-21 15:30:27
精华帖  主题:回复:一道PLC编程题目
quote:以下是引用明天在2011-03-21 13:03:46的发言:

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


因为担心有可能长时间液位没有变化,这样泵就不会重新计算了,也就是会导致原来在运行的泵就长时间运行。如果液位一直有在变化,那其实是没有这个问题的。还要考虑一点,如果液位变化太快,也就是说会导致所有的泵运行时间极其相近,这样有可能会导致短时间内不停的切换。
If anything can go wrong, it will.
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
30楼    2011-03-21 20:32:59
精华帖  主题:回复:一道PLC编程题目
泵的数量关系和液位的关系早在题目的时候已经说的很清楚了:液位越高,参与工作的泵越多。
一个开环的线性关系而已。而且也没那么精确的要求。
设备就那么多了,没有变频器,你即便精确计算出来需要1.67台泵出力的时候也没法精确处理啊!

我激愤的原因就在于你来给我砸场子,我出的题目,现在跟贴20多贴了还没到正题,还在恒压供水,控制目标上面兜圈子。都几次明确告诉你没有闭环,没有PID了还跟我狡辩,讲没法控制。
你看看19楼的应用,和我这个题目简直是一模一样的要求!你自己想不到,没遇到过,就不要贸然认为不存在,不可能。

你自己脑子里面老存着恒压供水,都不仔细来读题,还不承认错误。

微信公众号:PLC标准化编程,ZHO6371995
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
32楼    2011-03-21 21:33:55
精华帖  主题:回复:一道PLC编程题目
用环形移位法控制泵吧,初始启动总是从最后一个停的泵的后一个泵启动,过程中,先停最早启动的,启动依次第一个处于停机状态的。就如 原泵的状态01110000,水位低了,泵的状态就是00110000,水位又高了,泵的状态就是00111000,故障另外考虑。从长时间运行来看,各个泵的运行时间是平均的。关于冬日说的情况,可以设置单泵的最长运行时间,到了时间可以强制按顺序倒泵。
Zane 注册自动化系统工程师 Always save before download
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
64楼    2011-03-23 08:04:51
精华帖  主题:回复:一道PLC编程题目
强烈支持Zane版主的思路,用环形移位法控制泵,每次启动时启动当时最先停机的泵,每次停机时停当时最先启动的泵。我再补充一个很容易实现的方法:假设有8台泵,原来的状态为00111000。
水位低了,将00111000循环左移得01110000,与原来的00111000相“或”,得01111000,投入了一台泵。
水位高了,将01111000循环左移得11110000,与原来的01111000相“与”,得01110000,切除了一台泵。
这个方法编的程序最简单,且与泵的台数无关。这是我很早以前用汇编语言做功率因数控制器时使用的方法。
追求完美
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
80楼    2011-03-24 07:38:54
精华帖  主题:回复:一道PLC编程题目
液位控制、压力控制、功率因数补偿、冷却器的出口温度控制,都属于同类问题。将物理量控制在某个范围(设置上、下限)是首要的任务。各台设备尽可能地均衡使用,这是次要的目标。不考虑均衡使用,按固定的顺序投切设备,会造成一台垫底的设备几乎一直在运行,最后投入的设备极少投运。业主不会要求绝对的均衡,循环移位法应该能接受。我们不给他统计他也不会知道是否绝对均衡。Zane版主说得好,“对于几万小时的运行时间,差个上百小时又如何?”
实现的方法很多,如果效果差不多,能满足业主的要求,当然编程越简单越好。循环移位法最简单,可能已成共识。投切时设置一个延时,投入一台后如果还是超上限则再投一台,切除的方法相同。
因检修或故障停机的设备不太好处理,我觉得可以采用“假投入”的方法。它也参与循环移位,用断路器或PLC输出端设置的小开关防止它实际投入。其缺点是会增加一次延时,不过估计也能接受。
追求完美
tea365
侠士

经验值:1951
发帖数:619
精华帖:4
101楼    2011-06-18 21:38:29
精华帖  主题:回复:一道PLC编程题目
我也来说说这个题目
这个题目我已完成(可看我的BK),用的的313的它都多能控制10台水泵每台AI12个DI/DO10-20个,然后7/8的加起来大约有500个变量左右
控制液位很简单就是你事先设定好液位和开泵台数,然后和实时液位对比。
例:2M开一台,3M开2台。这当然能在HMI中改的
水泵轮流用表功能按时间排列
这个不用PID指令
当然也能加入用恒水供压控制思路,恒流量排供水,这样要程就更大了,但这很节能,我也在考虑修改这程序,加入恒流量排供水。
这个控制程程序和恒水供压没法比,这个要有一定的想像空间。
学习再学习活到老学到老 http://lytea365.blog.163.com
shunyi_man
新手

经验值:20
发帖数:3
精华帖:1
110楼    2011-06-28 23:48:13
精华帖  主题:回复:一道PLC编程题目
1, 当然是先考虑甲方的要求和项目预算。这样的项目可能需要做的很漂亮,也可能需要简单的逻辑控制,仅供正常使用。

2,学习了很多思路,但是也有很多事纸上谈兵,不容易简单实现,例如简单的使用位移指令,和逻辑运算,没有考虑到,如何处理水位最低的时候,可能所有泵都停止工作的情况。

3,循环位移的思路简单,编程容易实现,维修后的泵可以很容易加进来。给每个泵加标签,顺序不变,只是启动可以启动的泵,否则就启动下一个。。维修后的泵还是放在原来的序列里,只是改变标签,使能。。。

4,使用多重背景数据块控制泵,设置启动泵标志,避免排序,减少设备负担。

5,使用触摸屏进行人机交互,提高程序可视性

6,要考虑水位监测的信号波动,同一限位信号,可以忽略掉指定时间内的变化。

7,不多想了,主要分析甲方的具体需求,和现场需求。例如新泵的投入,我们可以有很多思路,但是还要引导甲方人员的思路,把项目做的稳定高效。

8,如果能够增加一个变频控制,水位会稳定很多。水泵能力和限位信号之间的关系,需要具体情况具体分析。如果要求不高,只需要保持水位在安全线内,而排水量的需求确定,项目容易做。

9,很可能的一种情况,投入泵数量最大的时候,只有一个是富裕的泵,甚至没有一台富裕的泵。需要考虑例外情况的程序处理。不可能随时有七八台富裕的泵随时待命吧?!

10,还有一个别人可能没有想到的,我们假设进入的水量是变化的,可能需要计算两个限位信号之间的时间差,估计潜在的需求,据此计算投入泵的多寡。这个纯属抛砖,别较真。。
我是北京顺义的ryan zhao
liwenqun
奇侠

经验值:6852
发帖数:5293
精华帖:25
117楼    2011-07-01 17:11:51
精华帖  主题:回复:一道PLC编程题目
这里夹杂了太多和主题无关的了 我都看晕了

提点我的看法 我个人时间排序/循环都用过,主要是业主要求不一样,有些就是要运行时间最短的那台启动,没办法

时间排序的话 我基本上不去给他们排序做队列,因为懒得在它故障或者手动的时候剔除。干脆就是每次需要加泵或者减泵的时候直接做个循环比较了事,也不见得浪费多少扫描周期和指令。

时间排序里面有几个需要注意的地方就是
1、运行时间做成可修改的 那么维修后的泵或者新的泵 可以直接修改其运行时间,以免总是要启动它。或者就是万版主所说的加上个轮换时间基数,而不直接修改运行时间。
2、泵的起停判断要加延时,否则必然造成波动。
3、对于需要强制轮换的,泵轮换时间到了以后,先开启一台运行时间最短的泵,然后延时,然后停掉轮换时间到的那台。


这个和我现在要做的真空泵组/空压机组控制原理类似,不同的是俺是十几二十个PLC通讯,每个PLC控制一个真空泵。
怎么论坛改成这样了??
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。