资讯动态

从PLC到组态王:游泳池水处理监控系统实战拆解

发布时间:2026/10/1 12:37:18 来源:尧图企业网站定制
设备间里最怕的不是设备坏而是设备出了状况人还不知道。很多中小型游泳馆的机房循环泵、砂缸、加药泵各管各的控制柜上几个按钮加几个指示灯水质好不好全凭老师傅的经验和鼻子。等到发现水浑浊了、余氯超了已经过去一个下午。这篇文章要拆的就是一套典型的“PLC组态王”游泳池水处理监控系统。PLC选西门子S7-200组态软件用组态王6.60我会把最核心的梯形图程序逻辑、接线图思路、组态画面开发流程全部展开尽量做到你能照着这篇内容把一套小系统搭出来。这套方案对三类人最有用一是正在纠结毕设选题的自动化专业学生S7-200加组态王是经典搭配题目落地不虚二是刚入行做PLC调试的现场工程师需要一个能直接借鉴的完整案例三是游泳馆、水上乐园的机电维护人员想看懂机房柜子里到底是怎么控制水处理的。下面我会按照工程落地顺序走一遍从工艺到选型从接线到程序从组态到调试全部用现场实战的口吻来讲。1. 项目整体设计与方案选型1.1 游泳池水处理的工艺需求拆解做控制系统之前先把工艺吃透。游泳池水处理的核心不是单纯“抽水—过滤—回水”而是一个闭环的水质维护流程通常包括五个环节循环、过滤、消毒、加热、补水。循环环节靠循环泵把池水抽出经过毛发聚集器拦截头发和杂物再进入砂缸过滤器。过滤环节的核心是石英砂或玻璃砂滤罐通过滤层拦截悬浮物运行一段时间后滤层堵塞滤前滤后压差上升需要反冲洗。消毒环节通过计量泵投加次氯酸钠或者臭氧控制余氯浓度。加热环节用板式换热器或空气源热泵把水升温到26到28摄氏度左右。补水环节由液位信号控制补水电磁阀保持水位稳定。从控制对象的角度拆整个系统需要管理这几类设备循环泵、砂缸电控阀组、三台投药泵、加热装置、补水电磁阀、水质仪表。传感器侧的信号主要包括水温、pH值、余氯、浊度、水位、滤前滤后压差。把这些列成一个表会发现它们不是彼此独立的“单点启停”而是环环相扣的联锁关系压差超限必须切换反洗反洗期间循环流量打折扣余氯偏低要启动加药泵温度偏差要开大加热阀。所以设计时不能用“一个按钮控一台泵”的思路要用“状态机加联锁”的思路来做。1.2 为什么选S7-200搭配组态王而不是单片机和纯继电器S7-200在这个场景里依然是常青树理由很现实。第一点成本可控。CPU 224XP或者CPU 226CN加一块模拟量扩展模块整个PLC部分两三千元以内能拿下对中小型游泳馆预算非常友好。第二点资料和上手成本低。网上关于S7-200的PID向导、自由口通讯、模拟量标定例子非常多学生和初学工程师找参考极其方便。第三点抗干扰能力强。机房里有大功率水泵电机、加药泵、变频器电磁环境不干净PLC的输入滤波和继电器输出比单片机系统稳得多耐操程度不是一个级别。组态王选型的原因更直接。它原生支持西门子S7-200的PPI协议驱动PLC端甚至不用写一行通讯程序组态王侧只要把串口、波特率、站号配置对就能读到数据。组态王的图库也足够丰富池体、水泵、砂缸、阀门、管道都有现成对象拖拽就能拼出工艺画面。这个对没有专业美工资源的工程团队太重要了我自己画一个砂缸要折腾半小时从图库拉出来改个文字标注只要两分钟。再加上组态王的报表和报警记录成熟水质日报、泵运行时长统计这些需求不用额外开发。那纯继电器方案行不行能用但局限性太明显。继电器柜里看不到历史状态反洗定时想调整要改硬件时间继电器余氯超限没有记录每台泵累计运行多少小时查不到。对稍微正规一点的泳池运营方来说这些都是刚需。所以只要预算允许PLC加组态就是这类水处理项目的最低合理配置。1.3 系统架构与控制层级整体架构是经典的三层结构。设备层是循环泵、砂缸电控阀组、投药泵、加热器、补水阀和各种传感器。控制层是S7-200 PLC负责所有逻辑运算、联锁、故障判断。监控层是组态王负责画面显示、远程启停、报警、趋势、报表。数据通道上有个细节值得单独说明。PLC通过PPI协议走串口和工控机通讯传感器信号以4到20毫安模拟量或者开关量方式进PLC。这里有个坑如果PLC只有一个通信口同时挂编程软件STEP 7 Micro/WIN和组态王会冲突。实际项目里我倾向于选CPU 226CN它带两个Port口一个口给编程下载线另一个口专门给组态王用。这样调试时改程序不影响上位机监控。2. 硬件关键部分和接线图解析2.1 I/O点表统计与模块选型以一个小型标准池为例池容大约400立方米循环周期6小时。先把I/O点列清楚这是所有后续工作的基准。数字输入大概这么几类循环泵手动自动切换旋钮、远程本地切换、水泵热继电器过载信号、低水位浮球开关、滤前滤后压差开关、故障复位按钮。急停按钮不进PLC输入点直接串在安全回路里单独处理。数字输出包括循环泵接触器、砂缸过滤阀、反洗阀、正洗阀三路电磁阀输出、投药泵A絮凝剂、投药泵B消毒剂、投药泵C pH调节剂、加热器启动、补水电磁阀、声光报警器。模拟输入主要是水温、水位、pH值、余氯、滤前压差、滤后压差。模拟输出预留一路给变频器频率给定如果循环泵用变频控制的话。汇总起来就是12个数字输入、10个数字输出、4到5个模拟输入、1个模拟输出。选型方案推荐CPU 224XP加EM231模拟量扩展模块。CPU 224XP本身就带2路模拟量输入和1路模拟量输出再挂一个EM231扩展4路AI模拟量通道刚好多出一路备用。输出选继电器型因为水泵、电磁阀这类负载电流波动大晶体管输出扛接触器线圈不合适。2.2 接线图解析输入回路、输出回路、传感器接线画接线图的时候有三个地方最容易翻车我一个个说。第一是PLC输入点的公共端接法。S7-200继电器输入的漏型源型接法有个记忆口诀公共端吃正电就是源型输入。实际接法是1M和2M接直流24伏正极输入点通过按钮和传感器触点接0伏。如果接反了你按按钮输入灯就是不亮还以为是程序问题查半天才发现是公共端接错了。第二是输出回路的线圈电压。继电器输出触点本身是不带电的它只负责接通外部分别给负载供220伏交流电。带感性负载比如接触器线圈时必须在负载两端并联RC阻容吸收或者压敏电阻否则触点断开瞬间的浪涌电弧会很快烧蚀触点用不了多久就发黑。第三是24伏电源容量。PLC本体输入点、EM231、pH传感变送器、余氯传感变送器、中间继电器线圈全部要吃24伏。24伏开关电源选小了一带负载电压就跌到20伏以下模拟量读数漂得离谱。我一般按总负载电流乘以1.5倍的冗余去选宁可大不能小。传感器接线单列一块。pH和余氯传感器多数是两线制4到20毫安输出正极接24伏正负极接模拟量模块的A加端子模块内部有250欧采样电阻A减和电源负极共地。水温推荐用PT100热电阻配变送器输出同样是4到20毫安。信号线屏蔽层要单端接地防止地环流干扰。加药泵的控制输出要经过中间继电器转换不要让PLC触点直接去驱动隔膜泵尤其是带电磁头的计量泵浪涌很猛。2.3 供电与安全回路整柜供电按隔离、分配、保护三个层次来做。总进线装一只带漏电保护的断路器然后分几个回路PLC主电源回路、24伏开关电源回路、220伏驱动回路包括接触器和电磁阀和加热器、仪表变送器电源回路。每个回路单独配熔断器或者小型断路器故障时互不牵连这个对后续排查问题特别重要。急停回路必须强调一遍它要串在整个220伏驱动回路的总接触器线圈回路里不经过PLC。为什么PLC有死机的可能但安全回路必须始终有效。急停按下水泵、加热、投药全部失电只有仪表和PLC继续供电这样上位机还能显示报警状态值班人员能知道发生了什么。3. 梯形图程序设计与实操3.1 程序结构主程序、子程序、中断的合理划分S7-200编程有个很容易犯的毛病把所有逻辑全部堆在OB1主程序里。程序短的时候还行一旦有几百条指令扫描周期变长而且现场排错时根本找不到问题出在哪一段。我习惯把程序拆成四个块。OB1主程序只做扫描周期管理和故障综合汇总不写具体控制逻辑。SBR_0子程序管泵控循环泵、砂缸反洗状态机的逻辑全部放这里。SBR_1子程序管模拟量处理AIW读取、工程量标定、上下限判断都在这。SBR_2子程序管PID运算和投药逻辑温控PID和余氯PID都在里面。如果有额外的仪表走自由口通讯再用中断INT_0做轮询读取。变量规划也按区域分开。VW100到VW120放温度数据VW130到VW160放pH和余氯数据M区放状态位和命令位。这样组态王建变量时不会乱PLC程序里交叉引用查起来也方便。3.2 核心逻辑自动手动切换、泵联锁与反洗顺序先做手动自动切换逻辑这是所有现场项目的第一步。用M0.0作为自动模式标志由操作面板上的旋钮或者组态王里的按钮写入。手动模式下每个泵和阀门可以直接通过按钮控制便于检修和调试。自动模式下所有设备由PLC逻辑自行判断。循环泵的启动联锁条件用一个串联逻辑表达自动模式成立、水箱水位不低、滤前滤后压差不超高、急停未动作、反洗程序未处于禁用泵状态。这些条件用串联常开常闭触点做与逻辑。任何一个条件不满足循环泵就不能启动或者立即停止。反洗程序是游泳池控制系统里最容易出问题的地方。我强烈建议用顺序步进法不要用一堆互相竞争的定时器。实际程序里我用置位复位加定时器搭了一个三步状态机。步0是反洗准备状态循环泵停止反洗阀打开砂缸泄压停留10秒。步1是反洗冲洗状态泵低速运行水从砂罐底部向上冲洗时间设600秒这个值放在VW区方便现场调整。步2是正洗恢复状态反洗阀关闭正洗阀打开泵运行30秒把滤层压实。每一步转移条件是上一步时间到或者压差正常提前结束。最关键的一条设计约束是任何时刻只允许一个阀打开防止过滤和反洗同时通电互相顶水。3.3 PID与投药控制温度、余氯两路闭环的实现温度控制这块S7-200的PID功能用PID向导生成最省事。在Micro/WIN里通过PID向导选择控制回路给定值设成水温设定值变量反馈值填标定后的温度实测变量输出给模拟量通道控制加热阀开度。向导会生成一个PID0_INIT子程序然后在定时中断OB35里周期调用它。游泳池水处理有一个项目独特的调节难点那就是大滞后。池水经过完整的循环周期可能要四到八小时温度变化从加热端传到回水端需要很长时间。所以PID采样周期不能按常规的零点几秒来设要跟循环周期挂钩。我实际设的是600秒也就是十分钟一个控制周期。如果采样太快输出会一直在那里振荡阀门忽开忽关实际水温反而波动更大。余氯控制用离散逻辑更实用。余氯传感器检测值低于下限就启动投药泵高于上限就停泵加一个一到三分钟的检测延时防止传感器信号抖动。为什么不用PID因为加药泵是计量泵它本身输出的是每分钟多少毫升的流量本质上是离散投加设备PWM式的开停控制比连续调节更符合设备特性。如果你非要精确闭环用PID控制加药泵的开机占空比也可以但现场调试工作量会大不少。3.4 通讯与变量映射PPI协议下组态王变量的对应方式S7-200和组态王通讯这个环节PLC侧不需要做任何额外工作PPI协议固化在系统里。你要保证的只有三件事波特率一致默认9.6k或者187.5k站号一致默认2串口选择正确。组态王侧新建IO设备时驱动选“西门子S7-200系列(PPI)”然后配置串口号、PLC地址、波特率。在组态王的数据词典里新建变量时IO变量要指定连接设备和寄存器地址。梯形图里的M0.0就对应组态王里的M0.0VW100对应VW100地址是直接映射的。这里有一个要注意的点IO变量和内存变量要区分清楚。显示和控制操作用的变量用IO变量中间计算过程用的变量用内存变量。如果组态王画面里的按钮直接去写PLC的M区保持型变量会有一个扫描周期同步问题我建议程序里的远程启停命令用“点击型”变量组态王按下时写入、松开时自动复位PLC捕捉上升沿做动作这样最可靠。顺带提一下自由口通讯的扩展思路。如果后续要接Modbus协议的变频器或者水质仪表S7-200的Port0可以写自由口程序做主站轮询把读取结果放到V区组态王只要盯着V区读数据就行。这样把通讯数据和逻辑数据隔离上位机配置完全不用改动。4. 组态王监控画面开发4.1 第一次把组态王和S7-200连起来的完整配置组态王6.60 SP4安装完之后自带西门子S7-200的PPI驱动。在工程浏览器里选设备、新建、PLC、西门子、S7-200系列PPI然后按向导配置即可。关键参数逐个过一遍。通信方式选串口不是以太网。串口号选工控机上实际使用的COM口如果用USB转串口线在设备管理器里看实际分配的端口号通常是COM3或者COM4。PLC地址也就是站号填2跟PLC侧的站号一致。波特率可以选询问后自动也可以手动固定成和PLC一样的数值。超时时间默认3000毫秒一般不用动只有485总线上挂的设备多才需要调大。配置完先别急着画画面在设备测试里读几个变量试试。能读到温度、pH值、泵状态再进画面开发。如果测试失败按顺序排查串口占用、站号不对、波特率不一致三个方向。还有一个常见坑是电脑上装了旧的USB转串口驱动占用了中断资源导致测试时通时断。4.2 画面设计与动画连接组态王画面设计的原则我总结成八个字一眼看懂操作不迷。监控画面不是给开发人员看的展示页是给值班人员用的工作台堆满功能反而增加操作负担。我的习惯是画面分三层。最底层是工艺流程总览画池体、循环泵、砂缸、加热器、加药泵用管道连起来。中间层是操作区每个设备旁边有启动、停止、自动三个按钮有手动自动切换开关。最顶层是数据区pH值、余氯、温度、压差统一放在顶部仪表盘或者数据表区域。具体制作时从组态王图库里拖出泵、罐体、阀门对象双击进入动画连接。泵运行状态用隐含连接运行位图显示停止位图隐藏。阀门开闭用替换连接或者颜色变化表达式。水位、温度、压力这些连续量用模拟值输出连接对应的IO变量量程范围填成和PLC内部标定一致的上下限。动画连接最容易出的问题是变量类型不匹配。数值显示要求IO变量是整型或者浮点型状态指示灯要求离散量。如果同一个VW地址既要显示模拟数值又要做状态灯那就在数据词典里定义两个变量一个读VW值用来显示一个读对应位用来做灯。千万别偷懒用同一个变量去连两种连接运行时会互相干扰。4.3 实时趋势、报警记录与历史查询组态王的实时趋势曲线控件添加很直观但趋势数据要形成沉淀价值必须进历史库。我在工程里建了一个“游泳池水处理实时数据”变量组把温度、pH、余氯、压差、泵运行状态全部放进去。这样不管是做运营报告还是应对卫生监督部门检查需要水质变化曲线时直接导CSV省得翻纸质记录。报警配置在数据词典里完成。对pH、余氯、温度、压差这四类关键量设置报警阈值建议分预警和报警两级。比如pH值预警区间设6.8到7.8报警区间设7.0到7.6。这里有个细节报警延时要设300到500毫秒不设的话传感器信号毛刺会产生一整页假报警值班人员很快就对报警麻木了。报警事件接报警窗控件显示同时要联动现场声光报警。机房噪音大光看屏幕远远不够柜子上的警灯和喇叭必须有对应输出。PLC侧留一个报警汇总位组态王实时监视这个位一旦置位就发声光。4.4 操作权限、界面锁定与远程操作水处理系统涉及药剂投加和加热启停不能谁都能操作。组态王里配置三级权限管理员能改参数、能操作投药和加热操作员能启停泵、切换砂缸工况观察员只能看数据和画面不能点任何按钮。每个按钮的弹起动作里用用户权限判断函数做校验权限不足时弹窗提示。界面状态保存这个细节很少被人提起但现场非常恼火。操作员从总览切到参数页再切回总览如果手动自动状态标识和按钮文本被重置成默认状态容易误判设备工况。我建议用画面窗口对象嵌套的方式管理子页面让主画面实例常驻内存不销毁切换时状态自然保持。5. 调试与常见问题实录5.1 通讯连不上的排查流程通讯问题是这个系统里被问得最多的。我固定了一套现场排查顺序照着走基本能解决八成问题。第一步确认串口号。组态王连接的是COM口USB转串口线在设备管理器里显示COM3或COM4组态王设备向导里必须改成实际端口别默认COM1。第二步确认站号。S7-200拨码或程序里的站号要和组态王站点号一致默认2如果拨过1就两边都改。第三步核对波特率。老版本Micro/WIN默认9.6k组态王默认19200的情况经常发生两边统一再试。第四步检查串口占用。最常见的就是STEP 7 Micro/WIN还开着占用串口或者后台有个S7-200 USB驱动监控进程抢占COM口把编程软件关掉再测试组态王。这里额外说一个我自己踩过的坑插上USB转PPI电缆之后电脑出现了无法正常关机的情况点关机后机器一直停在正在关机界面。排查到最后是老的USB驱动没有卸载干净和系统电源管理冲突。把西门子的旧驱动彻底卸载干净换官方最新版本驱动后解决。这个问题网上很少有人提但实际挺普遍。5.2 梯形图逻辑上的“反直觉”坑现场调试时最常遇到的是程序看起来对实际不动作。第一个典型问题是双线圈。同一个Q0.0在OB1里被写了两次一个地方用SM0.0总能使能另一个地方在条件分支里给Q0.0赋值结果是后写的覆盖先写的。排查方法非常简单用Micro/WIN的交叉引用表查一下Q0.0出现在哪些网络看到两次以上就说明有双线圈风险。第二个典型问题是扫描顺序依赖。组态王远程启停按钮写入M0.1但程序里M0.1在OB1更前面的网络已经被用过PLC扫描到后面时M0.1的值还没被更新导致动作延迟一拍。这里我的建议是用点击型变量也就是组态王里做个按下置位、延时复位的内存变量PLC捕捉上升沿执行动作。第三个问题是模拟量超上限。S7-200模拟量输入AIW0范围默认0到32000接两线制4到20毫安时如果模块的DIP拨码开关配置错误或者电源接错读数可能直接是32000。这个信号如果没做上限钳制直接进PID输出会满开度水泵高速运行水池波动反而更剧烈。所以标定程序里一定要加超上限保护把超出范围的测量值强制成合理区间。5.3 组态王画面运行常见错误我整理过一组组态王运行时的常见报错和现象。设备管理里测试通过但运行系统里显示连接失败这个问题多半是驱动被其他进程占用或者IO变量没在画面里被引用被扫描周期优化掉了。数值显示总是0检查变量类型是不是设成了开关型或者变量的读写属性设成只写显示变量必须是只读或读/写。动画不变化检查隐含和显示是否用反以及一个变量是否同时连了隐含和替换两种连接存在冲突。画面卡顿检查历史库采集周期建议设成1到2秒这类水处理系统不需要毫秒级数据。5.4 水泵不动作、输出被烧毁的现场经验分享两个实打实的教训。第一个是输出继电器选型。S7-200继电器输出触点额定电流2安带接触器线圈没问题但直接驱动电磁阀的浪涌电流很容易打坏触点。我们项目里统一加了中间继电器把PLC输出当信号用由中间继电器去带驱动回路触点寿命提升非常明显。第二个是砂缸电控阀组的互锁问题。三位电控阀在过滤、反洗、正洗三个位置之间切换外部阀组必须做机械或电气互锁防止过滤阀和反洗阀同时通电。如果用的是三位保持型电磁阀断电时阀位保持在当前位置PLC侧的反洗程序要处理好恢复逻辑。反洗结束必须明确发指令切回过滤状态不能依赖断电恢复默认位否则会出现反洗完成后砂缸一直停在反洗位、循环泵还在运行的连锁问题。写在最后的一组经验这个项目做下来我最大的体会是游泳池水处理系统的难点不在某一个单独环节而在环节之间的联锁关系。梯形图程序本身并不复杂但反洗状态机、PID时间常数、通讯变量映射这些细节每一个都可能让项目从“能跑”变成“跑不好”。给准备做类似项目的朋友几个实用建议。第一开工前一定把I/O点表和联锁矩阵画出来这是整个项目的地基。第二PLC程序一定要分块别图省事全堆OB1。第三组态王的画面要站在值班人员的使用习惯上去设计而不是站在开发者展示功能的角度。第四所有参数包括PID常数、反洗时间、报警阈值都要能在组态王界面直接修改并写入PLC的V区现场调试会感谢你这个设计。最后再分享一个习惯每次调试完现场把当时的PLC程序和组态王工程完整备份一份文件名带上日期和版本号。这个动作看起来不起眼但下次现场出问题的时候你能快速对比是程序被改过还是参数被调过省掉大量无头绪的排查时间。这套方案往大了扩展可以加变频器节能控制、加浊度在线监测、加远程微信报警往简单了压缩一个小池子不配组态王只留触摸屏也完全可行。骨架就在这篇文章里具体往哪个方向长看你的现场需求。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑