去年冬天接了个冷链物流的活——给一个新冷库做自动温控系统。冷库设了四个分区:冷藏区(0~5℃)、冷冻区(-18℃)、速冻区(-35℃)和穿堂缓冲区(10~15℃)。
签合同的时候觉得这活不难,不就是温控嘛,PID一上完事。真干起来才知道,冷库温控跟普通恒温完全是两码事——化霜、压机启停、热气回冲、冷凝压力……一堆破事。
项目概况
先说说硬件配置:
- PLC:西门子S7-1200 1214C DC/DC/DC,配了一个CM1241 RS485通讯模块
- HMI:西门子KTP700 Basic PN
- 传感器:PT100铂电阻,四线制,每区装2个(一主一备)
- 压缩机:比泽尔螺杆机,4台(3用1备),每台132kW
- 蒸发冷风机:每区6台,总共24台冷风机
- 电热化霜:每区一套,共4套,每套18kW
- 膨胀阀:丹佛斯ETS系列电子膨胀阀,步进电机驱动
通讯架构:S7-1200通过RS485走Modbus RTU和丹佛斯压缩机控制器通讯,读取排气温度、吸气压力、油压等参数。冷风机和化霜通过继电器输出控制。电子膨胀阀用模拟量输出0-10V控制开度。
第一个坑:化霜周期怎么定?
冷库蒸发器表面会结霜,霜层厚了影响换热效率。我一开始设了固定化霜:每6小时化一次,每次30分钟。结果问题来了——冷冻区化霜太频繁,库温波动超过5℃,冻品表面都开始出现冰晶变质了。速冻区反而化霜不够,蒸发器结了几公分厚的冰,风机都吹不动了。
后来改成了按需化霜。怎么判断要不要化霜?我用了两个条件”或”的关系:
- 温差法:当库温和蒸发器盘管温度的差值超过8℃,说明霜层已经严重影响了换热
- 计时法:最长4小时必须化一次,防止极端情况漏化
温差法的逻辑是这样的——蒸发器盘管温度正常是比库温低6-8℃,结了霜之后传热变差,盘管温度会更低,和库温的温差就拉大了。我设了温差阈值ΔT≥8℃就开始化霜。效果立竿见影,冷冻区原本每6小时化一次,现在变成每8-10小时化一次,化霜次数减少了三分之一,库温波动也控制在±1.5℃以内。
化霜控制的核心代码片段:
// 按需化霜逻辑 - SCL语言
// DB5是化霜控制数据块
IF #Defrost_Enable THEN
// 温差判断法:蒸发器盘管温度 vs 库温
#Temp_Diff := #Room_Temp - #Coil_Temp; // 正常时温差6~8℃
IF #Temp_Diff >= 8.0 AND #Coil_Temp > -50.0 THEN
// 温差过大,启动化霜
#Defrost_Request := TRUE;
#Defrost_Reason := "温差超过8℃";
END_IF;
// 计时法:最长4小时强制化霜
IF #Run_Time_Since_Last_Defrost >= T#4h THEN
#Defrost_Request := TRUE;
#Defrost_Reason := "时间到4小时强制化霜";
END_IF;
// 化霜执行
IF #Defrost_Request AND NOT #Defrost_Active THEN
#Defrost_Active := TRUE;
#Defrost_Start_Time := #Current_Time;
// 关该区冷风机
#Fan_Stop := TRUE;
// 开化霜加热
#Heater_On := TRUE;
END_IF;
// 化霜结束条件:盘管温度≥8℃ 或 时间超过40分钟
IF #Defrost_Active THEN
#Defrost_Duration := #Current_Time - #Defrost_Start_Time;
IF #Coil_Temp >= 8.0 OR #Defrost_Duration >= T#40m THEN
#Defrost_Active := FALSE;
#Heater_On := FALSE;
#Fan_Stop := FALSE;
// 滴水延时30秒再开风机,防止把融化的水吹到冻品上
#Drain_Delay_Timer(IN:=TRUE, PT:=T#30s);
IF #Drain_Delay_Timer.Q THEN
#Fan_Start := TRUE;
#Defrost_Request := FALSE;
#Run_Time_Since_Last_Defrost := T#0s;
END_IF;
END_IF;
END_IF;
END_IF;
这里有个细节——化霜结束后加了30秒滴水延时。这是我吃过亏之后加上的。第一次调试的时候化霜一停就开风机,结果蒸发器上融化的水全被吹到库房里的冻品包装上了,结了一层冰壳。物流公司的人差点没骂死我。
第二个坑:压缩机启停策略
4台比泽尔螺杆压缩机,每台132kW。我一开始的方案是简单的温差启停——温度到了就停,温度上升了就启动。但是螺杆压缩机频繁启停是大忌,一来轴承磨损快,二来启动电流大,对电网冲击也大。
改成了轮值+加减载的方案:
- 第一台压缩机用变频驱动,做”基数机”——通过变频器调节压缩机转速来匹配当前冷负荷
- 当变频器频率升到50Hz了,冷量还不够,就切一台定频机上来,同时变频器降回30Hz重新调
- 当变频器频率降到20Hz了,冷量还是过剩,就停一台定频机
- 压缩机轮值:每周切换一次,保证4台压缩机运行时间均匀
这样做的好处:变频机平滑调节,避免了频繁启停。定频机只在大温差时才动作,一天启停不超过3次。
实际的PID参数我调了两天才满意:
- 冷冻区(-18℃):P=15,I=0.02,D=0(只用PI控制,加了微分反而容易震荡)
- 冷藏区(0~5℃):P=12,I=0.015,D=0
- 速冻区(-35℃):P=20,I=0.03,D=0(速冻区负荷变化大,比例系数要大一点)
第三个坑:热气回冲保温
压缩机长时间停机后,油会变冷变稠,直接启动容易造成油压过低导致压缩机损坏。这个问题差点让我赔一台压缩机。
解决方案:每次压缩机停机后,如果停机时间超过2小时,再启动之前必须先做”预热”——打开压缩机油加热带,加热至少1小时,让油温升到35℃以上才能启动。
我在HMI上加了状态显示:”压缩机待预热,剩余XX分钟”,操作工一看就明白了。
调试那几天的真实体验
十二月最冷的时候去调试冷库,零下18度那都不是外面,是库房里。穿了两层棉衣加羽绒服进去,不到15分钟就冻透了,手指头僵得在触摸屏上划不动。后来学聪明了,买个了无线网桥,在穿堂区摆张桌子连PLC,远程调试。每次只进冷库拍几张照片、记几个温度数据就赶紧出来。
说真的,干冷库项目比其他项目多出来的额外工作:
- 传感器全部用防水接线盒,不然冷凝水能把端子腐蚀断
- 电气柜里装了加热除湿器,不然柜子里全结露
- 电缆全部选耐低温型号(-40℃),普通PVC电缆在冷冻区一冻就变脆,一碰就裂
项目结果
系统投运后跑了三个月,甲方很满意。数据说话:
- 冷冻区温度波动:±1℃(要求±2℃),比他们旧的冷库好太多了
- 电费:比之前老系统省了大概22%,主要是压缩机启停优化和按需化霜的功劳
- 化霜次数:相比固定周期方案,减少了约40%,库温更稳定
- 故障停机:三个月只停了1次——冷凝器滤网堵了造成高压报警
干完这个项目我最大的感受就是:冷冻冷藏这门技术,看着简单,做起来全是细节。化霜策略怎么定、压缩机怎么调度、传感器怎么防冻,每一个环节都是经验和教训堆出来的。
干工控就是这样,温度控制在纸上是一个PID公式,到了现场就是冻僵的手、烧断的线、改不完的参数。但看到系统跑顺了,甲方说”比以前好太多了”,那点苦也就值了。