news 2026/4/23 12:49:06

恒压供水一拖五辅泵程序,自由组泵配置西门子硬件,手机电脑远程控制,成熟应用于实际工程的技术方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
恒压供水一拖五辅泵程序,自由组泵配置西门子硬件,手机电脑远程控制,成熟应用于实际工程的技术方案

恒压供水一拖五+辅泵程序,可自由组泵一拖五以下都可以用,己用于实际工程。 直接就可以使用,硬件配置:西门子smart+AM03+海为B7S物联网屏,可手机电脑远程控制,有完整的程序图纸

最近在工业自动化项目里搞了个恒压供水系统,主泵一拖五带辅泵的配置,算是把西门子smart PLC玩出花了。这套方案已经在三个小区供水项目里稳定运行半年多,今天跟大家唠唠实现思路,关键代码直接扒出来看。

先说硬件组合,这套系统主打的就是经济实惠:

  • 西门子smart SR40做主控(别问为啥不用1200,甲方预算就爱这个)
  • AM03扩展模块接压力变送器+变频器
  • 海为B7S物联网屏当操作面板
  • 辅泵单独用了个国产变频器(别问牌子,问就是性价比)

重点看泵组切换逻辑。程序里用了个骚操作——动态优先级队列,这是保证五台主泵均匀磨损的关键:

// 泵状态结构体 TYPE Pump_Status : STRUCT RunHours : REAL; // 累计运行小时 Fault : BOOL; // 故障状态 Priority : INT; // 动态优先级 END_STRUCT END_TYPE // 队列排序函数 FUNCTION SortPumps : ARRAY[1..5] OF INT VAR_INPUT Pumps : ARRAY[1..5] OF Pump_Status; END_VAR VAR_TEMP i,j : INT; temp : INT; END_VAR // 冒泡排序实现动态优先级调整 FOR i := 1 TO 4 DO FOR j := i+1 TO 5 DO IF (Pumps[j].Priority < Pumps[i].Priority) AND NOT Pumps[j].Fault THEN temp := Pumps[i].Priority; Pumps[i].Priority := Pumps[j].Priority; Pumps[j].Priority := temp; END_IF END_FOR END_FOR

这段代码实现了泵组的智能轮换。每次启动优先选择运行时间最短的泵,运行时持续更新各泵的Priority值。实际调试中发现,把冒泡排序改成插入排序能减少30%的运算时间,不过smart的CPU扛得住就懒得改了。

压力闭环控制是另一个核心,直接上PID代码:

// 简化版PID功能块调用 PID_Compact_DB( COM_RST := , MANUAL := , CYCLIC := TRUE, SP_INT := 3.0, // 3公斤目标压力 PV_IN := Pressure_AI, // 压力反馈 GAIN := 1.2, // 这三个参数调了三天! TI := "T#30s", TD := "T#5s", LMN := PID_Output); // 输出给变频器

重点说下参数整定经验:小区用水高峰时压力波动大,把微分时间拉长能有效抑制震荡,但TI不能超过40秒,否则响应太慢会被业主投诉。现场调试时边调参数边观察压力曲线,最后发现把增益设为1.2时,既能快速响应又不会频繁启停泵。

物联网功能是甲方爸爸的最爱,海为屏的远程监控代码有点意思:

// 微信推送报警功能 IF Pump_Fault OR Pressure_Low_Alarm THEN HTTP_GET(URL:='http://wxapi.com/alert?msg=泵组异常'); SMS_Send(Text:='设备ID123告警', Number:='13800138000'); END_IF // 远程控制安全验证 IF Web_Command.En THEN CASE Web_Command.CMD OF 1: StartPump(Web_Command.PumpNo); // 启动指定泵 2: StopAll; // 急停 ELSE AddLog('非法指令'); END_CASE // 操作记录必须留痕 WriteDB_Log(Time(), Web_User, Web_CMD); END_IF

这里埋了个坑:早期版本没加操作日志,结果物业乱按手机APP导致系统宕机。后来强制所有远程操作必须记录操作时间和账号,还加了二级密码验证。现在用RSA加密传输指令,虽然smart处理起来有点吃力,但安全第一嘛。

辅泵控制逻辑反而更折腾,这货要在主泵全故障时顶上,平时还要当消防备胎。程序里用了状态机实现:

CASE StandbyPump_State OF 0: // 待机状态 IF MainPump_Fault_ALL THEN StandbyPump_State := 10; ELSIF Fire_Signal THEN StandbyPump_State := 20; END_IF 10: // 应急供水模式 Start_Standby(FullSpeed); IF NOT MainPump_Fault_ALL THEN StandbyPump_State := 0; END_IF 20: // 消防模式 Start_Standby(BoostSpeed); Reset_Fire_Signal; // 等消防信号解除 END_CASE

现场测试时发现辅泵启动瞬间会导致压力突变,后来在启动指令后加了5秒软启动延时才好。图纸里变频器接线也有讲究,主泵用RS485并联,辅泵单独走硬线控制——别问为什么,问就是被干扰搞怕过。

这套系统最爽的是扩展性,要改成一拖三或者加个什么紫外线消毒功能,直接在程序架构里插模块就行。最近又在折腾把数据对接物业ERP系统,海为屏的Python脚本功能倒是意外的好用。有需要全套图纸的老铁可以私信,记得自带U盘,甲方不许发网盘...

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:33:29

信捷码垛程序:无宏密码版

信捷码垛程序 这个是没有宏密码的最近在调试信捷XD系列PLC的码垛项目&#xff0c;发现有些老设备程序被锁了宏密码。不过有意思的是&#xff0c;有些程序压根没设密码这事还真让我碰上了。今天就拿个四轴码垛程序当例子&#xff0c;咱们边看代码边唠嗑。先看这段运动控制的核心…

作者头像 李华
网站建设 2026/4/23 10:46:37

python基于Vue的幼儿园管理系统的设计与实现_elx46_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的幼儿园管理系统的设计…

作者头像 李华
网站建设 2026/4/23 10:48:09

决定大模型生死的不是算法,是提示词!深度解析Prompt工程的重要性(建议收藏)

“ 提示词是大模型与外界交互的唯一通道&#xff0c;因此提示词的重要性远比我们想象中的要重要。” 提示词或者说提示词工程&#xff0c;说起来可能大家多多少少都知道是怎么回事&#xff1b;但可能很多人并没有意识到提示词工程对大模型的重要性。 提示词是人与大模型沟通的…

作者头像 李华
网站建设 2026/4/23 13:58:37

你了解大模型的生态体系吗?大模型从技术到应用的内容梳理

“ 神经网络技术从理论到应用是一个庞大的体系&#xff0c;我们需要知道的是这个体系是怎么构成的&#xff0c;每一层都有哪些内容 ” 关于大模型我想很多人都会有这样或那样的问题&#xff0c;最基础的就是不知道大模型是什么&#xff0c;技术场景和业务场景分不清楚&#xf…

作者头像 李华