简介:这是一份以抽水泵水位控制为场景的PLC控制系统课程设计参考文档,主要面向自动化、电气类专业的课程设计或毕业设计使用。内容从系统概述、方案论证到硬件与软件设计层层展开,既给出了传统继电器控制与PLC控制方案的对比,也明确了4KW/380V电动机抽水至储水塔的控制要求,例如液位传感器SQ2、SQ3、SQ4的联锁逻辑、满水和无水状态下的启停动作、水池无水与低水位指示灯提示,以及停电恢复后自动继续运行等关键设计。文档还配有系统原理方框图、主电路接线、I/O分配与I/O接线图、元器件选型、主流程和梯形图,结构完整,条理清晰,可直接作为课程设计说明书模板参考。资源包含1个doc文档,压缩包仅1.11MB,已有234人浏览学习,适合需要完成类似PLC水泵控制设计或学习PLC应用的人快速借鉴。
1. 从继电器到PLC:抽水泵控制方案为什么必须升级
做自动化这行的人,大概率都修过那种传统的继电器控制柜。一个水泵房,柜子里密密麻麻的中间继电器、时间继电器、热继电器,加上两个浮球液位计,就能凑合跑起来。但这种方案放在今天,问题非常明显:故障率不低,排查靠万用表一点点量,想加个远程监控更是无从下手。我自己就处理过不少这样的柜子,触点氧化导致缺相、浮球卡在半中间导致水泵频繁启停、液位信号抖一下水泵就跟着抽风,都是常见病。
PLC控制抽水泵,说白了就是把原来那一堆硬接线逻辑,换成芯片里的梯形图程序。这样做有三个最直接的好处:
- 改逻辑不用改线。以前想加一个"两泵交替运行",得重新买时间继电器、重新接线;现在改几行程序就能实现。
- 故障信息看得见。哪个泵过载了、哪路液位报警了、变频器有没有报故障,HMI上清清楚楚,甚至通过物联网盒子远程推送到手机。
- 控制精度完全不在一个档次。继电器方案做不了恒压供水,PLC配上PID调节和变频器,管网压力能稳定在设定值附近。
这篇参考设计文档,其实解决的就是这么一件事:怎么用一套可靠、低成本、方便扩展的PLC方案,把抽水泵站控制好。不管你是小区二次供水、工厂循环水系统、农田灌溉泵站还是污水处理提升井,思路都是通用的。适合正在做毕设的自动化相关专业学生、刚入行的电气工程师,以及想把手动泵站改成自动化的设备维护人员参考。
2. 系统构成与I/O分配:动手写逻辑之前先画好这张表
很多人拿到项目不画I/O表直接写程序,写到一半发现输入点不够用,或者输出点分配不合理,被迫返工。这是初学者最容易踩的坑。做PLC项目,第一步永远是梳理控制对象和信号清单。
2.1 抽水泵站的标准配置长什么样
一套最基本的PLC抽水泵控制系统,由四部分组成:传感器、控制器、执行器、人机交互。
传感器这块,最核心的是液位信号。小型泵站常用浮球液位计,便宜但容易卡滞;要求高一点用投入式液位变送器,输出4-20mA模拟量,能实时看到连续水位;也有用超声波液位计的,非接触式,维护量小,适合污水等腐蚀性介质。压力传感器则是恒压供水系统的必备,装在出水母管上。
执行器方面,小功率水泵(比如5kW以下)用接触器直启就够了,大功率电机建议走星三角降压启动或者软启动器;要恒压供水就必须上变频器。每台水泵至少需要两个输出点控制:一个启动(或频率给定)、一个停止/复位。
人机交互部分,最简单的方案是一块文本显示器,配几个物理按钮和指示灯;预算充足直接上触摸屏;如果既有触摸屏又有远程监控需求,还需要一个物联网网关或4G DTU设备走Modbus TCP/MQTT协议。
2.2 I/O分配表与技术选型参考
下面是我做过的比较有代表性的泵站配置,两用一备,带变频恒压。拿来当参考设计模型比较合适:
| 信号类型 | 点位描述 | 数量 | 说明 |
|---|---|---|---|
| DI输入 | 手动/自动切换旋钮 | 1 | 硬件互锁优先 |
| DI输入 | 1#泵/2#泵/3#泵故障信号(热继或变频器) | 3 | 常闭点接入 |
| DI输入 | 高液位报警、超高液位联锁 | 1 | 来自液位开关 |
| DI输入 | 低液位报警、泵干转保护 | 1 | 来自液位开关 |
| DI输入 | 变频器运行/故障反馈 | 2 | 用于状态监视 |
| AI输入 | 水管网压力变送器 4-20mA | 1 | 恒压控制反馈 |
| AI输入 | 水池液位变送器 4-20mA | 1 | 液位连续监视 |
| DO输出 | 1#泵/2#泵/3#泵接触器控制 | 3 | 中间继电器过渡 |
| DO输出 | 变频器启停控制 | 1 | 干接点 |
| AI输出 | 变频器频率给定 4-20mA或0-10V | 1 | PLC模拟量输出 |
PLC选型上,如果只有30来个点位的规模,主流小小型PLC完全够用。比如西门子S7-200 SMART SR30配模拟量扩展模块EM AM06,三菱FX3U-32MR加FX3U-4AD,或者信捷XC3-24T-E加扩展模块——这几款学习资料多,碰到问题也好搜,适合绝大多数情况。
这里有个很重要的原则:I/O点别卡得太死,务必预留15%~20%的备用点。项目做着做着突然要加一个远程急停按钮、加一路漏水检测探头,这种需求非常常见,没预留点位就得换主机,带来返工成本高不少。我在第一个项目上吃过这个亏,之后都是直接按多留8个DI、4个DO的规格去选型。
2.3 接线环节的三个关键细节
接线看似简单,但影响长期可靠性的坑都在这里:
第一,PLC的DI输入公共端要接对。漏型接法把公共端接24V+,源型接法接24V-,不同品牌默认不一样。接反了第一路输入就不亮,有些新手以为是点坏了,其实是公共端配错了。
第二,所有和感性负载(接触器线圈、电磁阀、变频器端子)相关的输出,必须加续流二极管或RC吸收回路。PLC的DO点直接驱动接触器线圈,断开瞬间会产生很高的反向电动势,打坏输出点的案例太多了。接触器的线圈电压是220VAC的,必须用中间继电器过渡,不能直接接PLC输出点。
第三,模拟量信号线必须用屏蔽双绞线,屏蔽层单端接地。压力变送器出来的4-20mA信号,走线要避开变频器输出侧动力电缆,间隔至少20cm以上。否则变频器的PWM载波会干扰模拟量信号,压力显示乱跳,PID跟着乱调。
3. 控制逻辑设计:手动、自动与轮泵策略的完整思路
做泵站控制,程序逻辑的核心不是怎么启动电机,而是怎么安全、智能地管理整个启停和分配过程。
3.1 手动模式与自动模式的无扰动切换
无论程序里写得多复杂,现场必须保留手动起停每台泵的能力——检修、试机、初期调试都离不开。设计上,一般用一个三位旋钮在柜门上切换"手动/自动",手动模式下PLC输出全部让位给物理按钮控制接触器,PLC只做监视不参与控制;自动模式下PLC根据液位、压力等信号自动决定泵的启停。
有一个细节值得注意:切换逻辑必须加互锁,不能出现PLC和按钮同时能驱动同一个接触器的情况,否则误操作可能造成双线圈对顶,烧掉中间继电器的触点。程序里做互锁,硬件上也要用旋钮的机械互锁,双重保险。
3.2 液位控制逻辑:不只是"高启低停"那么粗浅
最常见的自动控制规则是:水位低于下限时启动补水泵,水位高于上限时停止。但如果喷淋泵站或生活水箱的用水量变动很频繁,单单靠高低液位开关会造成水泵频繁启停,对电机寿命是个大考验。
改进方案是用连续液位变送器做控制:比如水位低于1.5米启动,高于2.8米停止,中间1.3米的回差区间可以有效减少启停次数。如果水位在1小时内启停超过5次,程序应该自动延长下一次启动的等待时间,这就是一种简单的防频繁启动保护。
浮球控制也不是不能做,但要在梯形图里加延时滤波。浮球在水面波动时触点是会抖动的,如果直接把抖动信号送给置位指令,水泵可能在一个波峰一个波谷的时间内反复启停。实际编程中我会加一个2秒的有效延时——信号持续2秒才认为有效——这样能滤掉绝大部分液面波动干扰。
3.3 轮泵与备投逻辑:让每台泵都"活"着
单泵工作、备泵待命是最基础的配置,但长期只让一台泵运转,备泵的轴承容易锈死,等主泵故障要切换时才发现备泵根本转不起来,这种事故我见过不止一次。
所以程序里应该写轮泵逻辑。常见做法是累计每台泵的运行时间,当主泵连续运行超过设定时间(比如72小时),自动切换为备泵运行,同时记录切换次数和最后切换时间。对于三台泵的配置,采用"先启先停"策略,保证运行时间均衡。
备投逻辑要设定故障类型。热继电器过载是自保持信号,必须人工复位(防止故障未排除又自动启动);而电网短暂失压恢复后的再启动属于自动恢复范畴,可以设置3分钟后自动尝试再启动。这两种故障的性质完全不同,如果混为一谈处理,效率和安全都不对。
3.4 干运转保护:最简单也最容易被忽视的一行逻辑
水泵最怕干运转。进水池水位过低时,叶轮空转会产生大量热量,机械密封很快损坏。所以无论控制逻辑多复杂,最后必须有一行"硬性保护"逻辑:低液位信号触发后,无论什么情况,立即停止所有泵,并且故障复位前不允许再启动。
这段逻辑要用锁存(SET/RST)实现而不是普通的常开常闭点串联——因为液位恢复后浮球会自动复位,如果不用锁存,液位还没恢复到位时水泵就重新启动了,那就等于没有保护。报警锁定加上触摸屏上的"复位"按钮,才能保证整个故障处理流程可控。
4. 恒压供水里的PID:参数整定比想象中更依赖现场
4.1 为什么要恒压而不是恒速
直启水泵有个物理特性:电机转速固定,扬程流量曲线是固定的,而管网用水量随时在变。用水高峰压力低,用水低谷压力高,还容易水锤。用变频器驱动水泵,通过PID调节让压力传感器测得的管网压力贴近设定值,才是最节能也最舒适的控制方式——水泵转速随需而变,节电率通常有20%~40%。
这意味着PLC不仅要输出启停信号,还要实时调节变频器的频率给定值,也就是标准的速度闭环控制。参考设计方案里,PID调节功能可以直接用PLC自带的PID指令,也可以用PID调节器模块,国内PLC品牌中,信捷和西门子的小型PLC都内置了PID功能块,写起来非常方便。
信捷PLC里PID调节是通过FB功能块来实现的——先把PIDFunction拖到程序里,填好采样周期、比例增益、积分时间、微分时间、设定值和反馈值,再在扫描周期里调用。FB块的好处是内部状态封装好了,同一个PID块可以复制用来控制多台泵,不需要自己写微分方程。
4.2 PID参数设置的实用流程
很多新手拿到PID就照着书上的Ziegler-Nichols公式算,算完发现实机上完全不好用。原因很简单——抽水系统有大惯性、大滞后,变频器自身还有一阶惯性环节,数学模型远比理想二阶系统复杂。
我的经验是先用经验法:设采样周期0.5秒,Kp从0.3开始,Ti从30秒开始,Td设0(纯PI控制)。然后把设定值设为正常压力值,观察压力曲线的动态行为:压力振荡衰减慢,增大Ti;压力爬升慢、偏差大,增大Kp;压力超调大且长时间围绕设定值震荡,减小Kp或增大Ti。一般不超过十几分钟就能调到能用的状态。
关键注意事项:微分环节Td在泵站控制里基本用不上。管网压力信号本身带有高频噪声,微分对噪声极为敏感,会把调节器变成放大器。除非系统特别滞后且信号很干净,否则Td保持为0。
4.3 睡眠与唤醒:小流量工况的省电核心
恒压供水系统在小流量时(比如深夜),水泵低频运行甚至会进入"憋压"状态,能量消耗却不低。这时候就轮到休眠唤醒逻辑发挥作用了:当变频器频率降到下限(如15Hz)且压力仍高于设定值,维持一段时间后停止运行;当压力降到设定值以下一定幅度(回差设定0.02MPa),重新启动变频器。
这个逻辑要注意死区设置。压力传感器本身有精度误差、信号有纹波,如果回差设太小,压力略微波动就会导致泵反复启停,一晚把接触器触点打花。一般回差取设定值的2%~5%比较合理,比如设定0.4MPa,回差就取0.01~0.02MPa。参考设计里设置的是下限15Hz延时300秒进入休眠,压力低于0.38MPa立即唤醒,实测效果稳定。
5. 梯形图程序结构:模块化写法让运维少掉头发
5.1 主程序框架分模块
程序结构如果全塞在一个OB块或MAIN里,几百个网络堆下来,后面排查问题两眼一抹黑。我会把程序拆成几个标准模块:
- 模拟量采集与工程量转换模块。压力变送器的4-20mA信号读进来是0~27648(西门子)或0~4000(三菱),必须先转换成对应的物理量程。这个模块单独放,方便随时校表。
- 手动模式控制模块。每个泵一个启停RS触发器,输出并联到自动模块的输出。
- 自动模式控制模块。液位判断、轮泵逻辑、PID调用。
- 报警与保护模块。干运转锁存、变频器故障、热继电器过载、高低液位报警汇总。
- 通讯模块。调制解调,把运行状态、压力值、液位值、电流值上传给上位机或云平台。
每个模块用一个M(标志位)作为总开关,调试时可以直接置位/复位来屏蔽某个模块,非常方便。
5.2 模拟量滤波的快速实现
模拟量信号再干净也免不了有毛刺。PLC的模拟量输入模块一般带硬件滤波,但还不够,程序里我习惯加一道软件滤波。用移动平均法:
每200ms采样一次,缓存最近的5个值,取平均之后作为实际控制值。这样既保留了对真实变化的响应速度,又压掉了毛刺。
但要注意,PID的反馈值不要过度滤波。滤波太狠会让反馈信号滞后,PID调节器看到的压力值总是慢半拍,造成系统超调。我的做法是:PID反馈用当前值不做滤波(靠硬件滤波),而用于显示和报表的数据用软件滤波。分工明确,互不干扰。
5.3 注释与命名规范:写给下一位工程师的善意
程序里寄存器命名一定要有意义。直接用M0、M1写到天荒地老,三个月后连自己都看不懂,更别说交接给业主的维护人员。用符号表或标签命名功能非常有必要:M100命名为"1#泵自动模式启动请求",D120命名为"管网压力工程量(单位kPa)",这样别人打开程序一看就明白。
梯形图的注释也要写。每个网络标题写清楚功能,比如"高液位联锁:液位>3.5m时强制停止1#泵",这样的程序维护起来成本最低。我接手别人留下的烂摊子时,最头疼的就是满屏裸地址还没注释,后来自己写程序就一直保持这种习惯。
6. 排障实录:三个让我印象深刻的现场问题
6.1 液位信号抖动导致频繁启停
有一段时间某个泵站报故障特别频繁,看运行记录发现水泵每个小时启动七八次。现场检查,浮球安装位置正好在进水口的跌落区,水流冲击导致浮球上下抖动,触点信号跳来跳去。这个问题的本质是硬件安装位置不合理,光靠程序很难根治。
解决的方法是移装浮球位置,同时在程序里对所有液位开关信号都加2秒延时滤波。另外在自动控制逻辑里增加最小停机时间(如5分钟),水泵停止后5分钟内不允许再启动,从机制上堵住了频繁启停的可能性。
6.2 变频器干扰压力变送器信号
另一个项目调试时,压力显示值在3~7V之间乱跳,变频器一启动就飘,一台就正常。排查过程是这样的:先换压力表,显示正常,排除传感器本身;再换屏蔽线,无效;最后发现变频器输出电缆与压力变送器信号线在同一根线槽内并排走了20米,变频器PWM输出在空间上耦合了干扰信号。
处理方式:信号线移出变频器动力电缆线槽,单独穿钢管敷设;屏蔽层在PLC端接地;变频器输出端加磁环和输出电抗器。处理后信号恢复稳定,压力显示再也没跳过。这个案例说明,现场布线的EMC设计对模拟量系统的影响巨大,不能因为图省事把强弱电同槽敷设。
6.3 轮泵切换瞬间压力掉零
三泵轮换逻辑上线后,发现切换瞬间出水母管压力骤降,末端用户能明显感觉到水压波动。原因是主泵停止和备泵启动之间没有过渡衔接——先停了主泵,再等备泵慢慢升频,这个过程有2~3秒的空档。
调整方案是"先启后停":备泵先以设定频率的70%启动运行,确认运行反馈信号到位且压力有上升趋势后,主泵再停止。由于变频器本身支持多段速,这个逻辑用两条定时器指令就能实现。实测压力波动从原来的0.15MPa缩小到0.03MPa,体感已经完全感觉不到了。
7. 参考设计文档落地时的一些体会
这套参考设计做下来,我最大的感触是:抽水泵的PLC控制,代码量和难度都不算高,真正拉开差距的是对细节的考虑。模拟量信号处理得好不好、互锁逻辑完不完整、故障恢复机制安不安全,这些才是决定一套控制系统能在现场稳定运行多久的关键因素。
如果准备在自己的项目上落地这套方案,我建议按这个顺序推进:先画出泵站工艺流程图,再做I/O表和选型清单,接着写梯形图,最后做厂内仿真测试和现场调试。每走一步都对照参考文档检查一遍,能减少大半现场返工的时间。
另外建议把同一套程序的符号表导出备份,写清版本和修改日期,方便后续升级迭代。自动控制这种东西,现场永远会冒出设计时没想到的新情况,保持程序结构的可扩展性,才是让自己省心的最好办法。
本文还有配套的精品资源,点击获取