news 2026/4/16 16:00:06

双泵程序(定时轮换)功能块 博图程序 一主一备 SCL功能块,博图16编写,可使用于其他支持S...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
双泵程序(定时轮换)功能块 博图程序 一主一备 SCL功能块,博图16编写,可使用于其他支持S...

双泵程序(定时轮换)功能块 博图程序 一主一备 SCL功能块,博图16编写,可使用于其他支持ST语言设备,双泵功能块,scl语言,带复位,主副泵选择,泵压简单控制,泵屏蔽设置,定时轮询切换,延时判断起泵,程序精炼,调用方便,适合工控中水处理压力,液位,流量等简单控制,启停方便。 实际工程中已使用稳定运行 面板需自己画,功能块端口给的很详细了,适配绝大部分ST语言编辑器,不需要的接口可以空着。

最近在某个水处理项目里折腾双泵控制逻辑,现场两台离心泵需要定时轮换主备。这玩意看起来简单,真要自己从头写逻辑绝对能掉一堆坑——切换时机怎么卡准?故障屏蔽怎么处理?手动复位会不会打架?好在最后用SCL搓了个通用功能块,实测跑了大半年没出幺蛾子,今天把核心逻辑拆开聊聊。

双泵程序(定时轮换)功能块 博图程序 一主一备 SCL功能块,博图16编写,可使用于其他支持ST语言设备,双泵功能块,scl语言,带复位,主副泵选择,泵压简单控制,泵屏蔽设置,定时轮询切换,延时判断起泵,程序精炼,调用方便,适合工控中水处理压力,液位,流量等简单控制,启停方便。 实际工程中已使用稳定运行 面板需自己画,功能块端口给的很详细了,适配绝大部分ST语言编辑器,不需要的接口可以空着。

先看功能块外壳长啥样:

FUNCTION_BLOCK DualPumpControl VAR_INPUT Enable: BOOL; //总使能 Reset: BOOL; //复位信号 PumpA_Ready: BOOL; //泵A就绪 PumpB_Ready: BOOL; //泵B就绪 SwitchTime: TIME := T#8H; //切换周期 END_VAR VAR_OUTPUT RunCmd: BOOL; //总运行指令 PumpA_Run: BOOL; //泵A启动 PumpB_Run: BOOL; //泵B启动 ActivePump: INT; //当前主泵编号 END_VAR

最骚的是切换逻辑部分,用了个时间片轮询:

//定时切换核心 IF Enable THEN CASE ActivePump OF 1: IF PumpA_Ready THEN PumpA_Run := RunCmd; PumpB_Run := FALSE; IF T#8H >= SwitchTime THEN //时间到切换 ActivePump := 2; TON_Switch(IN:=TRUE, PT:=T#0S); END_IF; END_IF; 2: //...类似逻辑 END_CASE; END_IF;

实际调试发现个坑——直接切换可能导致两台泵同时断电。解决方法是在切换时插入500ms延时:

//带延时的切换 TON_Switch(IN:=ActivePump <> LastPump, PT:=T#500MS); IF NOT TON_Switch.Q THEN RunCmd := FALSE; //切换间隙停泵 END_IF;

现场应用时,把功能块实例化后挂在OB30里跑:

//主程序调用 PumpControl( Enable := AutoMode, Reset := ResetBtn, PumpA_Ready := NOT PumpA_Fault, PumpB_Ready := NOT PumpB_Fault, SwitchTime := T#12H //12小时切换 );

这模块最实用的其实是故障处理策略。当某个泵被屏蔽时,自动切换逻辑会直接锁定在用泵,直到复位信号触发才会重新激活轮换。实际测试中,配合压力PID控制效果拔群,特别是处理液位波动时,双泵无缝切换能让系统压力曲线平滑得像德芙巧克力。

最后给个忠告:别在功能块里写死设备地址!用结构体打包IO信号才是王道。毕竟工控现场最不缺的就是甲方突然想加第三个泵...(别问我怎么知道的)

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

MySQL瓶颈的庖丁解牛

MySQL 瓶颈 不是数据库“慢”&#xff0c;而是 在高并发、大数据量、复杂查询场景下&#xff0c;其架构特性与业务需求不匹配 所导致的性能或扩展性问题。 一、连接层瓶颈&#xff1a;连接数爆炸 ▶ 1. 问题根源 线程模型&#xff1a; MySQL 为每个连接创建 独立线程&#xf…

作者头像 李华
网站建设 2026/4/16 14:28:37

非接触式水位检测水杯(有完整资料)

资料查找方式&#xff1a; 特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可 编号&#xff1a; CP-51-2021-054 设计简介&#xff1a; 本设计是基于单片机的非接触式水位检测的智能水杯系统&#xff0c;主要实现以下功能&#xff1a; 可通过LCD1…

作者头像 李华
网站建设 2026/4/16 12:28:56

智能照明(有完整资料)

资料查找方式&#xff1a;特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可编号&#xff1a;CP-51-2021-057设计简介&#xff1a;本设计是基于单片机的智能照明灯系统&#xff0c;主要实现以下功能&#xff1a;可通过LCD1602显示光照强度和模式&…

作者头像 李华
网站建设 2026/4/16 9:09:22

SQL优化实战:从索引策略到查询性能的终极提升

SQL优化实战&#xff1a;从索引策略到查询性能的终极提升 在数据驱动的数字化时代&#xff0c;SQL性能优劣直接影响着企业级系统的响应速度与用户体验。当百万级数据表执行一条普通查询竟耗时数秒&#xff0c;当联表查询因索引失效导致全表扫描引发数据库宕机&#xff0c;这些场…

作者头像 李华
网站建设 2026/4/16 9:03:28

Linux开发—— USB 虚拟网口配置

一、内核编译配置 1. 必需的内核选项 # USB Gadget 支持&#xff08;核心&#xff09; Device Drivers --->[*] USB support ---><M> USB Gadget Support ---><M> USB Gadget Drivers# USB 网络功能&#xff08;关键&#xff09; Device Drivers --->[…

作者头像 李华
网站建设 2026/4/16 10:43:25

计算机毕设java制氢领域文献管理系统 基于Java的制氢领域文献管理平台设计与实现 Java环境下制氢领域文献信息管理系统开发

计算机毕设java制氢领域文献管理系统2yve69&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着科技的飞速发展&#xff0c;制氢技术作为清洁能源领域的重要组成部分&#xff0c;…

作者头像 李华