用恒压供水这套组合做过几个现场项目,说实话,西门子224XP加威纶TK6070iP这套搭配,在中小型供水系统里确实算得上经典。一个是S7-200系列里带模拟量通道的型号,另一个是威纶通里性价比很高的入门级触摸屏,两者配合,既能实现PID闭环调压,又能提供直观的人机界面。这篇文章我会把从选型、接线、编程、组态到现场调试的完整过程拆开讲,包括那些说明书上没写的坑和参数整定的实用经验,给正在做同类项目的朋友一个参考。
1. 这套组合的选型逻辑:为什么是224XP和TK6070iP
先说结论:这套方案最适合那种水泵台数少、控制点不多、对成本敏感但又要有触摸屏监控的小型恒压供水系统,比如小区二次供水、小型工厂增压、农村饮水工程。选224XP而不是普通224,关键就在那个XP上。
1.1 CPU224XP的模拟量优势
普通S7-200 CPU的200系列模块里,模拟量模块需要另行扩展,比如EM231、EM232。但CPU224XP本体集成了2路模拟量输入和1路模拟量输出。这意味着对于标准的单泵恒压供水系统,压力传感器信号接模拟量输入,变频器频率设定信号接模拟量输出,完全不需要额外扩展模块,机架成本直接降下来,柜内接线也更简单。
还要注意224XP的模拟量输入是10位分辨率,0~10V或0~20mA可选,输出同样是0~10V或0~20mA。对于恒压供水这个场景,压力变送器输出4~20mA,变频器频率给定也常用4~20mA或0~10V,分辨率足够用了。我见过有人纠结要不要上12位、16位的扩展模块,实际现场经验是,10位分辨率在压力控制上完全够用,关键还是在于PID参数整定和抗干扰措施。
1.2 TK6070iP的定位
威纶TK6070iP是一款7寸屏,800x480分辨率,支持RS485通信,内置程序上传下载,性价比在国产触摸屏里非常能打。对于224XP这种只支持PPI协议的老PLC,TK6070iP原生支持S7-200 PPI通信,不需要额外驱动或者网关,直接连上就能通讯。这一点在选择触摸屏时特别重要,有些屏虽然便宜,但跟西门子老型号通讯费劲,或者要加驱动授权,反而得不偿失。
另外TK6070iP自带RS232/RS485串口,编程口通过EBPro软件组态,工程文件导出后直接下载到屏里。它的显示效果和响应速度都足够用于参数设置和实时监控,不用追求高端型号,这套系统对HMI的需求其实就是显示压力、频率、运行状态,设置压力设定值,调整PID参数,留个故障报警画面。
1.3 对比其它常见方案
有人会问,为什么不直接用恒压供水专用控制器,或者用变频器自带的PID?专用控制器确实接线简单,但人机交互差,参数设置不直观,触屏面板通常很小,现场调起来费劲。变频器内置PID的话,压力反馈信号直接进变频器,也能实现恒压,但用户想要看压力趋势曲线、修改设定值、记录报警历史就很不方便,而且一旦变频器品牌变了,操作方式全变,还得重新学。
用PLC加触摸屏的好处是,整个控制逻辑可以自定义,比如多泵切换、定时换泵、休眠唤醒、小流量停机,这些都是通用控制器不一定支持或者做不好的。224XP和TK6070iP这套,属于“比上不足比下有余”的位置,但对于一两个泵的小系统,它是性价比最均衡的选择。
2. 硬件接线与通信参数:每一步都不能想当然
方案定了,接下来就是柜内设计和接线。很多新手在原理图上看着没问题,实际接线一堆干扰,或者PID根本稳不住,最后发现是模拟量接地和屏蔽没处理好。这里把我常用的接线方式列出来。
2.1 I/O分配和硬件清单
先给一个最小系统的I/O清单,单泵恒压供水,一台变频器驱动一台水泵,压力变送器一路,可能外加液位开关、手动自动切换、运行/故障反馈。
| 通道 | 信号 | 地址 | 说明 |
|---|---|---|---|
| AI0 | 压力变送器4~20mA | AIW0 | 进水或出水压力 |
| AI1 | 备用 | AIW2 | 可接温度或备用压力 |
| AQ0 | 变频器频率给定 | AQW0 | 4~20mA或0~10V |
| DI0 | 手动/自动切换 | I0.0 | 转换开关 |
| DI1 | 远程启动 | I0.1 | 中控或按钮 |
| DI2 | 变频器故障 | I0.2 | 故障常闭触点 |
| DI3 | 水泵运行反馈 | I0.3 | 变频器运行信号 |
| DO0 | 变频器启动 | Q0.0 | 干接点,控制变频器启停 |
硬件方面,核心包括:
- 西门子CPU224XP一台(订货号6ES7 214-2AD23-0XB8或者-0XA8)
- 压力变送器,0~1.6MPa量程,4~20mA输出,二线制
- 变频器,比如台达VFD-M或三菱D700,能接受外部模拟量给定即可
- TK6070iP触摸屏一台
- 开关电源24V DC,给PLC和变送器供电
- 中间继电器若干,用于隔离变频器启停信号
这里特别注意,224XP的模拟量输入通道M端和变送器负端要共地,二线制变送器的供电由PLC输入端的24V提供,接线时正极接变送器正,负极接M端。我见过有人把变送器单独接了一个开关电源的负极,结果和PLC电源不共地,模拟量乱跳。
2.2 变频器接线与频率给定方式
变频器频率给定信号可以是4~20mA或者0~10V,224XP模拟量输出AQ0支持这两种。我一般建议用4~20mA,因为电流信号抗干扰能力强,压降影响小。接线时,PLC的AQ0输出端子接变频器AI端子,公共端接变频器GND,屏蔽线单端接地。注意有些变频器AI和GND之间有内部电阻,电流信号需要短接或者调整拨码开关,具体看变频器手册。
变频器的启停控制有两种方式:一种是直接用PLC数字量输出接变频器DCM和DIn端子,控制端子启停;另一种是通过触摸屏或PLC通信方式启停。对于小系统,端子启停最可靠,不依赖通讯。我习惯用中间继电器转接,PLC的Q0.0驱动继电器线圈,继电器触点接变频器启动端子。这样即使变频器内部浪涌也不会倒灌到PLC输出点。
另外,变频器一定设置成外部端子启动,频率由外部模拟量给定。不同品牌参数名不一样,台达是01-00=1(外部端子),03-00=1(外部模拟量1)。三菱D700需要设Pr.79=2(外部端子),Pr.73=0(外部模拟量0-10V)或1(4-20mA)。这些参数在初次调试时务必检查,曾经遇到现场说恒压没用,结果变频器面板手动运行,频率根本不跟随模拟量——就是参数没改。
2.3 PLC与触摸屏的PPI通信
TK6070iP后面有COM口,支持RS485。224XP自带一个RS485口(Port 0,九针母头)。通讯接线是把触摸屏的RS485 A接PLC Port0的3号脚(RS-),B接8号脚(RS+),公共GND接2号脚和壳体。千万不要直接拿USB转485去接PLC的九针口,除非你知道针脚定义,不然很容易烧口。
在EBPro软件里,新建工程时设备选Siemens S7-200,通信接口RS485,COM口根据实际选择。波特率一般设9600或者187500,S7-200默认是9600。注意PPI协议只能一对一,不要再挂其它设备。然后PLC侧在系统块中设置通讯波特率一致,否则触摸屏连接不上。实际操练时,经常遇到通讯有时能连上有时候断线,多数原因是通讯线材质差、长度过长或者接地不良。正规做法是用屏蔽双绞线,屏蔽层单端接大地,通讯距离超过20米要特别注意。
3. 恒压供水PLC程序核心:PID指令与变频器启停逻辑
程序部分是整个项目的灵魂。S7-200支持PID回路,但恒压供水不是单纯一个PID就行,还要考虑启停条件、手动自动切换、故障保护、设定值处理等。我用过结构化的写法,也见过很多人把PID写得乱七八糟,这里整理出一套稳定可靠的做法。
3.1 PID指令的调用与参数处理
S7-200的PID指令(在STEP7-Micro/WIN中调用)使用PID回路表,需要定义PID_CTRL参数。224XP模拟量输入转换后是0~32000,对应4~20mA。如果压力变送器量程是0~1.6MPa,4mA对应0MPa,20mA对应1.6MPa。在PLC中,压力值VDxx = (AIW0 - 6400) * 满量程 / 25600。为什么减6400?因为4mA对应模拟值大约是6400(0~32000范围)。这样才能得到实际压力值,用于显示和PID反馈。
PID指令需要设定给定值SP、过程变量PV和输出MV。在恒压供水场景,SP和PV都应该用实际压力值,比如0.4MPa。SV在触摸屏上设置。回路表里初始化为0.4。比例增益Kc可以先用1左右,积分时间Ti设20秒左右,微分Td设0,因为压力控制本身大惯性,微分作用容易引入高频干扰,基本不用。算出输出MV后,要映射到模拟量输出。如果PID输出是0.0~1.0(归一化),那么模拟量输出值 = MV * 32000,送给AQW0。这样变频器的频率给定就跟PID输出了。
3.2 启停逻辑与手动自动切换
程序里我习惯把一个布尔量作为PID_Enabled。自动模式下,当压力低于下限或者有运行命令时,启动PID运算,同时给变频器发启动信号。当压力高于某个保护值,或者无水干转,停止变频器。
手动模式要能在触摸屏上直接设定频率,方便调试。手动频率值同样转换成0~32000送给AQW0。这样变频器就在手动频率下运行,维修或试机时非常方便。
核心梯形图逻辑:
- 网络1:读取模拟量AIW0,进行工程量转换,存成VD100(实际压力MPa)
- 网络2:比较实际压力和设定值偏差,用于PID指令之前的滤波或死区处理
- 网络3:PID指令,输入使能条件,参数表地址指向VB2000
- 网络4:PID输出转换为模拟量输出,存到AQW0
- 网络5:启停控制,报警复位,故障停止
- 网络6:触摸屏寄存器映射,比如将VD104设为设定压力
这里有个关键点:PID有积分饱和问题。当泵停机时,PID输出可能积分到100%,一旦重新启动频率冲很高。处理办法:在停机时,把PID指令的使能断开,同时手动清零MV。或者用S7-200的PID自整定功能。不过实际项目我更喜欢用带积分限幅的标准PID,在回路表中设置输出上下限。
3.3 休眠唤醒和小流量停机功能
恒压供水系统在夜间小流量时,如果水泵持续运行,浪费电也容易频繁启停。可以考虑加一个功能:当实际压力高于设定压力一定值,并且运行频率低于下限(比如20Hz)持续一段时间,就休眠停泵,依靠管道积压的压力供小流量。当压力下降到低于设定压力减去偏差值(比如0.02MPa),重新启动水泵。这组逻辑需要用定时器记忆低频持续时间。
休眠唤醒逻辑不一定要做,有些项目甲方不管这个,但作为方案亮点我会主动加上,而且可以通过触摸屏开启或关闭。用定时器TON累计,低频运行时间到,置位SleepFlag;压力下限唤醒,复位SleepFlag并启动。注意休眠时要保持PID的设定值不变,但要重新初始化PID输出,避免启动冲击。
3.4 模拟量滤波与抗干扰
模拟量显示波动、PID输出抖动的常见原因是采集信号干扰。除了硬件屏蔽,PLC内部也要做滤波。S7-200的模拟量输入可以在系统块里设定滤波,默认是64个周期平均。我一般把压力通道设为64,这样显示数据比较平滑。另外可以在程序里再加一阶惯性滤波,比如VD100 = VD100 + (RawPressure - VD100) * 0.3,相当于低通滤波。这个系数0.3可以根据响应速度调整,太大显示跟随快但波动大,太小反应迟钝。
4. 触摸屏画面组态的人机交互细节
程序写好了,触摸屏画面才是用户天天面对的东西。TK6070iP通过EBPro组态,重点不是好看,而是好用。参数设置要方便,状态展示要清楚,操作不能容易误触。下面拆一下我常用的画面结构。
4.1 主监控画面
主画面显示当前压力、设定压力、运行频率、运行状态(自动/手动/运行/停止/故障),以及水泵的启停按钮。还要有当前时间。画面元素用数值显示,注意连接PLC地址时数据类型一定要准确。例如VD100是浮点型(REAL),在EBPro中数值显示元件要选择32位浮点格式;AQW是字型,手动频率设定也要设置成浮点再转换。
主画面里的启动按钮,建议做到二次确认,防止误按。用多状态切换开关加位控制,或者宏指令弹窗。恒压供水现场维修人员可能不太懂PLC,误操作会导致停机,二次确认更保险。
4.2 参数设定画面
参数设定画面放PID参数:Kp、Ti、设定压力、压力上下限报警值、休眠唤醒相关时间。这些对应PLC中的VD地址。PID参数在触摸屏上要能改,但不能没有限制。我用数值输入元件时设好最小最大值,比如Kp在0.1~5.0之间,Ti在1~100秒之间。这样防止维修工输入0或者负数。
注意PID参数实时修改,最好在程序里做平滑切换,不要在PID运行中突然把Ti改成0,否则输出跳变。如果屏上改了参数,需要等下一周期PID指令重新读取回路表即可,S7-200 PID指令是每周期扫描执行,参数刷新不需要停机。但修改PV偏置或设定值,会有突变,建议加转换速率限制。
4.3 报警与历史数据页
报警内容一般有:高压力报警、低压力报警、变频器故障、无水流传感器报警。报警页面要显示发生时间、恢复时间、确认状态。TK6070iP支持事件报警记录,但需要在线设置或者用SD卡存储。我用的是基础报警画面,PLC内用比较指令置位M点,触摸屏读取M状态后显示中文信息。
历史趋势图是个加分项。通过曲线图元显示压力、设定值、频率的变化。TK6070iP内置采样缓冲,可以存最近几小时的趋势。现场看趋势调PID特别直观,可以看到超调量、响应时间。我建议所有恒压供水项目都做趋势画面,成本几乎为零,调试时价值很大。
4.4 通信变量地址映射与字节顺序
EBPro中连接S7-200,地址类型要对应。常见问题:32位浮点数据,触摸屏读取时高低字节转换出错。S7-200的浮点数存储是高位在前(Big Endian),而EBPro默认可能读成低位在前,需要设置字节顺序。具体在EBPro的PLC设定里有“字节顺序”选项,通常需设为“Word入Word”或者“High Word First”,视版本而定。实际工程中我遇到过屏上压力显示成天文数字,就是字节顺序反了。检验方法:给PLC一个固定值1.0,屏上如果显示1.0则顺序对,如果显示极小或极大数,调换字节顺序即可。
另外,EBPro中地址名表示:VD100浮点对应地址格式是“$100”,但必须指定Float类型。或者用Tag库管理。我建议项目之初就建立统一的变量表,PLC和HMI共同维护,比如VD100=实际压力,VD104=设定压力,VD112=Kp,VD116=Ti,VD120=手动频率,M0.0=自动模式,M0.1=启动命令,M0.2=故障复位,M10.0=高报警等。变量表一列,后面不用猜。
5. 现场调试步骤与PID参数整定的实操经验
这节是重中之重。程序写完了,屏也组态了,但现场调试才是真正考验经验的地方。很多项目失败不是因为程序有bug,而是PID参数整定不好,或者调试流程混乱。我总结了一套顺序。
5.1 调试前的检查清单
通电前一定要做几件事:
- 断开变频器与电机连接,防止误启动导致的人身危险
- 用万用表测量模拟量输入通道:变送器供电是否正常,AIW0应有当前压力对应的电流,比如憋压时压力变送器输出4mA,PLC显示0
- 测量模拟量输出:手动模式设定20Hz,测量AQW0输出电流是否跟设定频率对应,变频器显示频率是否跟随
- 用触摸屏监控PLC实时数据,确认通信正常,变量映射正确
调试时一定先把PID切成手动模式,把变频器频率设定到30Hz,看水泵转动方向正确,看管道压力上升。这一步通过后再切自动。
5.2 PID参数整定的实用方法
先把PID的积分和微分去掉,只保留比例。我习惯把Kp初始设为0.5,Ti设成0(某些PLC中Ti=0表示积分关闭,但S7-200如果Ti=0会当作积分无穷大,所以要用布尔量屏蔽积分通道,或者把Ti设很大,比如9999)。S7-200 PID指令没有单比例模式,除非你在回路表中设置积分取消。更稳妥的办法:在PID输出前另外写一段,当整定开始时,强制积分项为0,或者用切换的方式。
我在整定时用这样的步骤:
- 设定压力0.3MPa,观察实际压力波动。
- 如果压力以固定周期振荡,说明P太大,减小Kp(比如减50%)。
- 如果压力响应慢,始终到不了设定值,说明P太小,增大Kp。
- 稳定性达标后,加入积分作用,Ti从30秒开始,每次减少50%,观察是否有超调。
- 最终目标是设定0.4MPa,启动后压力能较快到达且超调不超过0.01MPa(最好),稳定后压力波动±0.005MPa以内。
实际经验:PID参数不是凭空拍脑袋。如果压力波动频繁,先查是不是传感器信号干扰,其次看变频器加减速时间。变频器加速时间太短,泵冲击导致超调;太长,压力响应慢,PID容易积分饱和。我一般把变频器加速时间设为5~10秒,减速时间3~5秒,然后让PID只管微调。
5.3 从实践看调节的难点:休眠唤醒与压力波动
休眠唤醒逻辑最容易引起振荡。比如夜间小流量时,泵停了,压力缓慢下降,低于唤醒压力后泵启动,但由于水龙头流量很小,泵启动后压力很快超过停止压力,又停机。如此频繁启停,电机烧毁。解决办法:在唤醒条件上加一个延时,比如压力低于唤醒压力超过10秒才启动。休眠停机也加一个确认时间。另外,压力传感器安装位置要远离泵出口,否则泵启动瞬间冲击波导致误判断。
还有一个小细节:当系统从休眠恢复时,PID输出应该从当前频率初值开始,而不是从0开始。否则每次启动都要从低频慢慢爬升,压力波动大。在程序中,恢复运行前先检查当前压力,按压力差预先给一个启动频率初始值,比如压力比设定值低0.02MPa,则启动频率给25Hz,然后交给PID调整。
6. 运行中常踩的坑与对策
最后专门列几个我在多个项目里反复遇到的坑,有些甚至在验收后还会冒出来。
6.1 触摸屏与PLC通信偶尔断开
TK6070iP和224XP连接,出现通信超时报警,可能是屏和PLC波特率不一样,也可能是通讯线接触不良,还有可能是触摸屏工程里站号设置错误。S7-200默认站号是2,触摸屏要设置相同站号。但注意:如果PLC的Port0口被编程线占用,或者你在Micro/WIN里设置了编程软件访问权限,可能影响通讯。确保触摸屏和PC不要同时连接在同一端口上。连接时建议通过一个RS485集线器或者分时使用。
6.2 PID输出到达上限,频率顶满压力却不够
如果变频器已经输出50Hz,压力还是上不来,先考虑是不是水泵选型偏小、管道漏水、吸入口有空气。程序做得再好,物理系统不满足也白搭。用水泵特性曲线对比压力流量参数。另外,检查是否有止回阀卡滞。
6.3 压力变送器安装位置导致的波动
变送器装在泵出口很近的地方,由于泵的脉动,压力波动大;装在远离泵的管路末端,响应慢但更稳定。我一般装在供水干管入口处或分支末端,根据工艺决定。安装时引压管要尽量粗短,避免气室。如果引压管里有空气,压力显示会失真,波动异常。
6.4 一用一备的轮换逻辑
如果现场是二泵一用一备,要看泵切换时的压力带。切换过程中压力会跌落,如果PID调节速度太快,容易导致新泵启动后超调。我在切换逻辑中,先启动新泵,确认压力反馈超过低值以后,再停止老泵,留几十秒的过渡时间。如果触摸屏上有切换时间可调,就多测试几组。轮换策略按运行小时累计,防止一个泵长期运行。
6.5 变频器故障信号的处理
变频器故障信号用常闭触点接入PLC,一旦故障,PLC要立即断开变频器启动信号,同时锁存故障报警,触摸屏显示。复位时要用“故障复位”按钮,同时复位变频器本身。有些系统变频器有过流、过载,如果复位频率过高,说明电机或泵有机械问题,不要无限复位。
7. 后续扩展与个人心得
这套224XP和TK6070iP的组合,除了基本的恒压供水,还可以扩展出不少功能。比如增加水流开关做干转保护,增加多个泵的循环切换,或者接入上位机监控。224XP本身带两个通讯口,一个给触摸屏,另一个还能接Modbus从站仪表,用来读电量、流量。不过想把这些扩展做稳,前期硬件预留和变量规划很重要,别等后期再加一堆模块和线。
我个人做这个项目最大的体会是,恒压供水难点不在PID公式,而在对系统物理特性的理解。就像PID里的积分时间,你得知道水从泵出口到压力传感器这个环节的滞后有多大,才能调出合适的Ti。如果只盯着屏幕上的曲线,不先去摸水泵、看管道,整定一定会来回折腾。我也建议现场调试时,带一台电脑,用Micro/WIN在线监控PID各变量,能看到PV、SV和输出MV的变化趋势,比只看屏上压力强太多。
最后分享一个实用小技巧:在PLC里加一个自整定的辅助程序,用S7-200的PID自整定功能,先用自动整定出一个大致参数,再手动微调。不过要注意,自整定时会让频率忽大忽小,必须有旁通阀门或确保系统能承受波动。就我个人经验,手动整定三次就能得到满意结果,反而是自动整定的试探过程有点让人心惊胆战。
如果你正在做一个类似的恒压供水项目,这套方案可以直接当作参考。硬件成本低、开发周期短、稳定性也能保证。只要把接线细节和调试步骤走稳,后期维护基本就是偶尔检查一下传感器和参数,很省心。