在工业自动化现场折腾恒温恒压供水系统,最酸爽的莫过于PID参数整定。这次用S7-1200搞了个冷却水控制系统,核心是两路PID——温度控制霍尼韦尔比例阀,压力控制两台V20变频器,下面分享点实战代码。
先看温度控制部分。比例阀的4-20mA反馈信号接到PLC模拟量输入模块,在OB30循环中断里调PID Compact指令块。重点是这个死区设置(DeadBand)要留够,实测水温传感器有±0.3℃的波动,参数设到0.5刚好能避免阀门频繁动作。
"PID_温度控制".Cycle := T#100MS; //采样周期别超过阀门响应速度
"PID_温度控制".Input_PER := "AI_温度反馈";
"PID_温度控制".Setpoint := "HMI_温度设定";
"PID_温度控制".DeadBand := 0.5;
"PID_温度控制".ManualEnable := "手动模式";
"PID_温度控制".ManualValue := "AO_比例阀输出";
压力控制更刺激,两台V20变频器做主备切换。关键点在模拟量输出模块的负载均衡算法,用了个骚操作——把PID输出值同时送给两台变频器,但通过DI信号控制只有主用机的接触器吸合。这样切换时压力曲线不会出现明显凹坑。
变频器参数设置必须和PLC程序配合: - P1080=20(最低频率别低于泵的喘振点) - P2200=1(启用PID闭环) - P2257=0.3(比例带初始值,现场再微调)
触摸屏组态有个坑要注意。在TP1200的变量连接里,温度设定值的输入域必须做上下限幅,否则操作工输个200℃直接让系统崩掉。这里用WinCC的I/O域属性->限制->设置50℃上限,下限自动关联PLC的DB块数据。
调试时发现个灵异现象:比例阀偶尔会突然全开。后来用万用表抓包发现是模拟量线路感应了变频器的干扰。解决方法简单粗暴——在AO模块输出端并联个104瓷片电容,程序里再加个输出变化率限制:
IF "AO_比例阀输出" - "AO_LastValue" > 5.0 THEN
"AO_比例阀输出" := "AO_LastValue" + 5.0;
END_IF;
// 每周期最大变化5%
这个项目最大的收获是PID参数整定顺序:先手动把阀门开到50%,等系统稳定后记下此时的过程值,作为PID的初始输出值能大幅缩短收敛时间。图纸里专门给PID模块供电做了隔离变压器,Eplan图纸页码27的EMC设计部分值得细品。
最后提醒:TIA V14的PID模块和V15以上版本不兼容,项目归档时记得把HSP文件打包。程序里用了个骚气的结构体数组来管理两台泵的状态机,下次可以单独讲讲这个状态切换逻辑怎么避开设备震荡。
**手把手玩转S7-1200恒温恒压供水系统**
工业现场里,恒温恒压供水系统算是经典需求了。今天拆解一个实战案例——用西门子S7-1200搭台子,霍尼韦尔电动比例阀控水温,两台V20变频器扛水压,再配上TP1200触摸屏的骚操作。
### 1. 硬件搭台,软件唱戏 系统架构简单粗暴:PLC是S7-1215C,带俩AI/AO模块接传感器和执行器。霍尼韦尔的电动比例阀走4-20mA信号调开度,V20变频器用模拟量输入控制频率,压力传感器和温度变送器实时回传数据。
程序里最核心的当然是**PID控制块**。在TIA Portal里直接拖出`PID_Compact`功能块,配置时注意几个参数:
// PID_Compact背景数据块关键参数
PID_DB.CtrlParams.Cycle := T#100MS; // 采样周期
PID_DB.CtrlParams.Gain := 2.0; // 比例系数
PID_DB.CtrlParams.Ti := T#10S; // 积分时间
PID_DB.CtrlParams.Td := T#1S; // 微分时间
调试时先关积分微分,纯P控调稳了再上I和D。遇到过调压时震荡?多半是反馈信号滤波没做好,AI模块属性里勾个**50Hz工频滤波**,瞬间稳如老狗。
### 2. 变频器怎么玩“水压双保险” 两台V20变频器一主一备,用模拟量输出切换。程序里用`MOVE`指令把PID输出值映射到PQW地址:
L #PID_Output
T PQW256 // 主变频器AO输出
备机切换逻辑更简单——压力低于阈值时,直接置位备用变频器的启动位,同时主机停机。重点在硬件接线:V20的AI通道必须跳线到**0-10V电压模式**,否则模拟量对不上!
### 3. 霍尼韦尔阀门的热水局 温度控制的关键在于阀门响应速度。霍尼韦尔阀门支持0-100%开度调节,但要注意**死区设置**。在PLC里加个判断:
IF |#Temp_Set - #Temp_Actual| > 1.0 THEN
#Valve_Output := PID运算结果
ELSE
#Valve_Output保持 // 避免频繁抖动
END_IF
实测发现阀门机械延迟大约2秒,所以PID采样周期别设太短,否则输出抽风。
后有独家资源 http://tottn.cn/tuw6l
### 4. TP1200触摸屏的“面子工程” 在博图里组态TP1200画面,三个重点: - **趋势图控件**:绑定温度、压力实时数据,时间轴拉满24小时,运维大哥最爱看这个; - **手自动切换**:用个闪亮的按钮,变量连到DB块的`Mode`位,按下瞬间切手动调参; - **报警弹窗**:压力超限时弹红色框,附带蜂鸣器控制位——别问,问就是甲方需求。

### 5. 避坑指南 - **模拟量干扰**:信号线别跟变频器动力线走同一桥架,非要并行?套个金属软管! - **Eplan图纸细节**:IO分配表必须和PLC变量名一致,否则下载程序分分钟报错; - **版本兼容性**:TIA V14的程序用V16打开?先备份!不然FB块可能变异成玄学。
**资源包说明**:案例里的源码和Eplan图纸已打包,包含V20的GSD文件、阀门手册。注意:PID参数仅供参考,现场设备请自行微调——毕竟,没有两个阀门会有完全相同的脾气。
(完)