1. 项目背景与核心价值
恒压供水系统是工业自动化领域最常见的应用场景之一,它直接关系到居民用水、商业供水、工业生产等多个环节的稳定性和能效表现。三菱PLC作为日系控制器的代表型号,在国内市政工程和厂房自动化中占有约35%的市场份额(根据2022年行业白皮书数据)。
这个项目之所以值得深挖,是因为它完美展现了PLC编程中几个关键技术的融合应用:
- PID闭环控制算法的现场调参技巧
- 模拟量信号(4-20mA)的采集与滤波处理
- 多泵协作的启停逻辑与节能策略
- 异常状态的自诊断机制设计
我在某水务集团的改造项目中,曾用这套方案将泵组能耗降低22%,同时将压力波动范围从±0.15MPa压缩到±0.05MPa。下面就以FX3U系列PLC为例,拆解其中的核心代码逻辑。
2. 系统架构与硬件配置
2.1 典型系统组成
plaintext复制[压力传感器] → [FX3U-4AD模拟量模块] → [PLC主单元]
↓
[变频器] ← [FX3U-4DA模拟量输出] ← [PID运算]
↓
[水泵电机组]
2.2 硬件选型要点
- 传感器:推荐使用罗斯蒙特3051系列,量程需覆盖1.5倍工作压力(例如常压0.4MPa则选0-0.6MPa)
- AD模块:FX3U-4AD的转换精度为12bit,对应分辨率0.00488V(当输入范围0-10V时)
- 变频器:三菱FR-A800系列,需设置以下关键参数:
ini复制Pr.79 = 2 // 外部操作模式 Pr.73 = 1 // 选择0-10V输入 Pr.267 = 0.5 // 滤波时间常数(秒)
注意:模拟量信号线必须采用双绞屏蔽线(如BELDEN 8761),且与动力线保持30cm以上距离,否则会导致PID控制震荡。
3. 核心程序解析
3.1 压力值采集处理
ladder复制LD M8000 // 运行常ON触点
TO K0 K17 H0 K1 // 初始化AD模块(CH1)
FROM K0 K29 D100 K1 // 读取CH1原始值到D100
原始值需经过两步处理:
- 工程转换:D100的0-4000对应0-0.6MPa
ladder复制LD M8000 DIV D100 K4000 D101 MUL D101 K600 D102 // D102=实际压力(kPa) - 移动平均滤波(5次采样):
ladder复制MOV D102 D110 // 当前值存入队列 MOV D109 D108 MOV D108 D107 MOV D107 D106 MOV D106 D105 ADD D105 D106 D120 ADD D120 D107 D120 ADD D120 D108 D120 ADD D120 D109 D120 DIV D120 K5 D125 // D125=滤波后压力值
3.2 PID算法实现
三菱PLC自带PID指令,但需要理解各参数含义:
ladder复制LD M8000
PID D125 K400 D200 K50 K30 K10 D210
- D125:过程值(PV)
- K400:设定值(SV,此处0.4MPa=400kPa)
- D200:输出值(MV,范围0-1000对应0-10V)
- K50:比例增益(P=50%)
- K30:积分时间(Ti=30秒)
- K10:微分时间(Td=10秒)
调试心得:先设Ti=∞、Td=0纯比例调节,逐渐增大P直到系统开始震荡,然后取该值的60%作为最终P值,Ti设为震荡周期的0.5倍。
3.3 多泵控制逻辑
采用"1+2"备用模式(1台变频+2台工频):
ladder复制LD M8000
CMP D200 K800 // 判断输出量
AND < M0 M1 // 低于80%且泵1未运行
OUT Y001 // 启动泵1(变频)
LD M8000
CMP D200 K950
AND >= M0 M1 // 超过95%且泵1已运行
OUT Y002 // 启动泵2(工频)
4. 异常处理机制
4.1 传感器断线检测
ladder复制LD M8000
CMP D100 K0 // 检测原始AD值
AND = M50 // 持续5秒为0
OUT M100 // 触发报警
MOV K300 D200 // 输出固定30%频率
4.2 泵切换互锁
ladder复制LD Y001
ANI T0 K300 // 泵1停止后延时30秒
OUT T0
LD T0
OUT M10 // 允许启动备用泵
5. 实操中的坑与解决方案
-
PID震荡问题:
- 现象:压力在设定值上下剧烈波动
- 排查:用GX Works2的波形监控发现采样周期(Ts)与Ti不匹配
- 解决:修改PLC扫描周期为固定50ms(D8013设置)
-
变频器响应滞后:
- 现象:压力突变时变频器反应迟钝
- 实测:FR-A800的加速时间默认5秒过长
- 调整:Pr.7=1.5(加速时间)、Pr.8=1.5(减速时间)
-
AD采样噪声:
- 现象:压力值随机跳变±20kPa
- 检测:用示波器发现电源纹波达200mV
- 改造:增加LC滤波电路(100μF+10mH)
这套代码在多个项目中验证过稳定性,关键是要根据实际管路特性调整PID参数。建议先用阶跃响应法测试系统惯性时间,我的经验公式:
code复制P = 120 / (ΔPV/Δt)
Ti = 0.5 × 达到63%SV的时间
Td = Ti / 8
最后分享一个监控技巧:在触摸屏上添加趋势图时,建议同时显示设定值、实际压力和变频器频率三个曲线,这样在调试时能直观看到三者动态关系。
