基于S7-1200PLC的物业供水控制系统设计》 PLC触摸屏,图纸,博图16 一、设计任务书...
基于S7-1200PLC的物业供水控制系统设计》 PLC触摸屏图纸博图16 一、设计任务书 1.自动工作时当用水量少压力增高K 接通此时可延时30s后撤除1台水泵工作,要求先工作的水泵先切断;当用水量多时,压力降低,K1接通,此时可延时30s后增设1台水泵工作要求未曾工作过的水泵增加投入运行;当R接通表示供水正常可维持水泵运行数量 工作时要求水泵数量最少为1台最多不得超出4台 2.各水泵工作时均应有工作状态显示 3.手动工作时,要求4台水泵可分别独立操作(分设起动和停止开关),并分别具有过载保护,可随时对单台水泵进行断电控制(若输入点不够,可用I/0扩展模块) 设置“自动/手动”切换开关(ON手动,OFF自动),另设自动运行控制开关(0N-自动运行0FF-自动运行停凌晨三点盯着HMI上跳动的压力曲线手里的浓咖啡已经凉透。这套基于S7-1200的供水控制系统正在经历第7次调试当看到四台水泵终于按先到先停的规则自动切换时突然理解了什么叫做智能排水系统的优雅。硬件配置的魔鬼细节先看IO清单4台水泵需要起停控制状态反馈自动/手动切换需要2个DI点压力开关K/K1/R占3个DI每台泵还要独立的手动启停按钮8DI和过载信号4DI。算下来至少需要17个DI而S7-1214C自带的14DI明显不够。果断掏出SM1221扩展模块时突然意识到——其实可以采用矩阵扫描的方式节省输入点但考虑到维护便利性最终选择扩展模块方案更稳妥。自动模式的队列管理基于S7-1200PLC的物业供水控制系统设计》 PLC触摸屏图纸博图16 一、设计任务书 1.自动工作时当用水量少压力增高K 接通此时可延时30s后撤除1台水泵工作,要求先工作的水泵先切断;当用水量多时,压力降低,K1接通,此时可延时30s后增设1台水泵工作要求未曾工作过的水泵增加投入运行;当R接通表示供水正常可维持水泵运行数量 工作时要求水泵数量最少为1台最多不得超出4台 2.各水泵工作时均应有工作状态显示 3.手动工作时,要求4台水泵可分别独立操作(分设起动和停止开关),并分别具有过载保护,可随时对单台水泵进行断电控制(若输入点不够,可用I/0扩展模块) 设置“自动/手动”切换开关(ON手动,OFF自动),另设自动运行控制开关(0N-自动运行0FF-自动运行停核心逻辑藏在FB500里用Shift Register实现水泵队列// 水泵状态队列初始化 #Queue : 4#0000; IF #FirstScan THEN #ActivePumps : 0; END_IF; // 增泵逻辑 IF #PressureLow AND #ActivePumps 4 THEN #AddTimer(IN:TRUE, PT:T#30S); IF #AddTimer.Q THEN #Queue : SHL(IN:#Queue, N:1) OR 16#1; #ActivePumps : #ActivePumps 1; END_IF; END_IF; // 减泵逻辑 IF #PressureHigh AND #ActivePumps 1 THEN #RemoveTimer(IN:TRUE, PT:T#30S); IF #RemoveTimer.Q THEN #Queue : SHR(IN:#Queue, N:1); #ActivePumps : #ActivePumps - 1; END_IF; END_IF;这段代码的精妙之处在于用移位操作模拟队列行为。当需要增泵时左移后最低位补1减泵时直接右移砍掉最低位。实际调试中发现个致命问题——当连续增泵两次后队列变成0011此时若需要减泵按代码会变成0001但实际应该先停Pump1。于是把移位方向反过来让最低位代表最早启动的水泵。手动模式的独立王国手动控制看似简单却藏着几个坑// Pump1手动控制段 | ManualMode P1_Start P1_Overload |-----| |-----------|/|----------( )-- Pump1_Run | P1_Stop | |-----|/|-----------| |----------每个水泵独立配置这样的启保停电路但实际接线时发现停止按钮需要常闭点接入。更麻烦的是当从自动切换手动时需要清除自动模式下的输出自锁于是在OB1里加了段模式切换处理IF #ModeChanged THEN Pump1_Auto : FALSE; //...同步清除其他自动输出 RESET_TIMER(#AddTimer); RESET_TIMER(#RemoveTimer); END_IF;HMI上的视觉陷阱在博图WinCC里设计状态指示灯时新手容易犯的错误是直接用Q点状态显示。但实际运行中发现当水泵过载时虽然物理输出已断开但程序里的软元件可能还在置位状态。最终采用物理反馈信号与程序状态与逻辑后驱动HMI元件#Pump1_Status : Pump1_Run AND P1_Feedback;调试时还闹过笑话——夜间模式下的HMI背景色导致状态灯辨识度降低被物业值班大爷吐槽还不如老式指示灯靠谱。现场调试的黑色幽默压力开关信号抖动导致水泵群魔乱舞最后在DI模块前加了个RC滤波电路某台水泵接触器线圈反向并联的二极管烧毁导致PLC输出点随机误动作最绝的是四台水泵机械安装顺序与程序编号相反导致先启先停变成后启先停凌晨五点的调试车间当看到四台水泵像训练有素的士兵般轮换工作时突然觉得那些抓狂的时刻都值了。这套系统后来在老旧小区改造中批量应用唯一的改进建议是——给调试工程师配个行军床。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2477702.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!