1. 项目概述:基于S7-1200的双PID恒温恒压控制系统
去年在化工厂实施的这套冷却水控制系统,核心需求是要同时满足两个严苛的工艺指标:80℃水温波动不超过±0.5℃,系统压力稳定在4bar±0.05bar范围内。这种双变量耦合控制场景在工业现场很典型,但实现起来远比单回路控制复杂。系统架构采用西门子S7-1200 PLC作为主控制器,搭配TP1200触摸屏实现人机交互,硬件配置上有些特别的设计:
- 温度控制回路:霍尼韦尔EPV300电动调节阀作为执行机构,通过4-20mA信号接收PLC的PWM输出。阀门定位器自带0.1%的分辨率,这对温度控制的精细调节至关重要。
- 压力控制回路:采用两台西门子V20变频器驱动离心泵,通过模拟量输出模块(6ES7232-4HD32-0XB0)输出0-10V信号控制转速。这里特意选择了带短路保护的AO模块,防止变频器故障时反向损坏PLC。
2. 控制策略设计与实现
2.1 温度PID控制方案
温度控制采用西门子标准库中的CONT_C功能块(FB41),但根据工艺特点做了三处关键修改:
- 抗积分饱和处理:在SCL代码中增加了输出限幅判断,当LMN值超出0-100%范围时强制截断。这是吸取了之前阀门卡死在100%开度导致系统超温的教训。
scl复制// 输出限幅保护
IF #tempPID.LMN < 0.0 THEN
ValveOpen := 0;
ELSIF #tempPID.LMN > 100.0 THEN
ValveOpen := 100;
ELSE
ValveOpen := REAL_TO_INT(#tempPID.LMN);
END_IF;
-
设定值斜坡:当HMI上温度设定值变化超过5℃时,自动激活20秒的线性过渡。这个时间常数是通过现场测试得出的——太快会引起阀门剧烈动作,太慢又影响工艺响应速度。
-
死区补偿:针对电动阀存在的0.5%死区,在程序里做了反向补偿算法。具体方法是在输出指令变化时叠加一个0.6%的脉冲信号,实测可有效消除小流量时的控制盲区。
2.2 压力PID控制方案
压力控制的最大挑战是要处理两台泵的协同工作。我们放弃了传统的主/备模式,创新性地采用了负荷分配策略:
scl复制CASE PressureMode OF
1: // 单泵模式
Pump1_Speed := PID_Pressure.LMN * 0.4; // 量程转换
Pump2_Speed := 0.0;
2: // 双泵模式
IF PID_Pressure.LMN > 50.0 THEN
Pump1_Speed := 40.0;
Pump2_Speed := (PID_Pressure.LMN - 50.0) * 0.8;
ELSE
Pump2_Speed := 0.0;
Pump1_Speed := PID_Pressure.LMN * 0.8;
END_IF;
END_CASE;
这个方案有几个技术要点:
- 频率限制:将变频器输出上限设为40Hz,避开离心泵的喘振区(42-45Hz)
- 平滑切换:当主泵负荷达到80%(即PID输出50%)时,从泵开始线性介入
- 动态分配:双泵运行时,主泵保持满负荷,从泵承担波动负荷,这样比均分负荷更节能
3. 硬件组态与信号处理
3.1 电气设计要点
Eplan图纸里有几个值得分享的设计细节:
- 模拟量信号隔离:所有AI/AO通道都配置了信号隔离器(型号:WS1562),解决地环路干扰问题。特别是变频器反馈信号,隔离后压力波动幅度从±0.2bar降到±0.05bar。
- 电源分配:为阀门定位器单独配置了一路24V电源(与PLC电源隔离),避免大电流动作时影响控制器工作电压。
- 线缆选型:温度传感器的PT100信号使用双绞屏蔽线(型号:LIYCY 2×0.5mm²),屏蔽层在PLC端单点接地。
3.2 抗干扰措施
调试过程中遇到的典型问题及解决方案:
-
水泵启动导致温度波动:
- 现象:每次启动水泵时,温度PID会出现周期性震荡
- 原因:变频器产生的谐波通过共地耦合进温度信号
- 解决:在AO模块输出端加装EMC滤波器(型号:B84115B0000C020)
-
辅泵频繁启停:
- 现象:双泵模式下从泵会间歇性启停
- 原因:AO模块响应速度(10ms)快于变频器响应(200ms)
- 解决:在PLC程序中对压力PID输出增加0.5秒的一阶惯性滤波
4. HMI组态技巧
TP1200触摸屏的画面设计有几个实用创新:
-
复合趋势图:将温度和压力曲线叠加在同一坐标系,用不同颜色区分(红色-温度,蓝色-压力),并设置左右双Y轴刻度。这样操作工可以直观看到两个参数的关联性。
-
动态颜色报警:
- 阀门开度显示采用渐变色填充(0-30%绿色,30-70%黄色,70-100%红色)
- 超过90%时添加闪烁动画,同时触发声音报警
- 实现方法:在WinCC的"图形IO域"属性中配置动态颜色设置
-
权限分级管理:
- 操作工级:只能查看参数和手动启停
- 工程师级:可修改PID参数和设定值
- 通过"用户管理"编辑器设置不同权限组的操作权限
5. 调试经验与优化建议
5.1 PID参数整定步骤
针对这种耦合系统,推荐分阶段整定:
-
温度回路单独整定:
- 先固定压力设定值,将温度PID设为手动模式
- 给阀门阶跃信号(如30%→40%),记录温度响应曲线
- 根据响应曲线用齐格勒-尼科尔斯法计算初始参数
-
压力回路单独整定:
- 固定温度设定值,关闭一台水泵
- 用同样的方法获取压力回路特性参数
-
耦合调试:
- 先投入温度PID,观察压力波动情况
- 再投入压力PID,微调两个回路的增益
5.2 节能优化措施
系统运行半年后的实测数据表明:
- 变频器睡眠功能:当夜间负荷低于30%时,自动停运辅泵,主泵降频至25Hz运行,月省电约800度
- 阀门特性修正:根据季度维护数据,更新了阀门开度-流量曲线参数,使PID输出更精准
- 管道阻力补偿:在程序里增加了基于流量的动态压力补偿算法,减少阀门节流损失
这套系统最让我自豪的是它的自适应能力——通过SCL编写的智能逻辑,系统能根据负荷变化自动切换运行模式。比如当检测到周末低负荷时,会自动切换到单泵节能模式,同时放宽温度控制死区到±1℃,在保证工艺的前提下最大化能效。