恒温恒湿AHU程序 西门子200Smart PLC程序,采用西门子触摸屏,AHU程序暖通空调模...
恒温恒湿AHU程序 西门子200Smart PLC程序,采用西门子触摸屏AHU程序暖通空调模拟量处理 加热加湿降温减湿PID控制轮询modbus通讯变频器控制.A32这年头做暖通自控的兄弟都知道恒温恒湿AHU系统就是个既要又要的活儿。既要温度稳定在±1℃又要湿度波动不超过5%RH还要兼顾能耗搞得跟伺候祖宗似的。最近刚好手头有个基于西门子200Smart PLC的项目咱们就着代码聊聊实战中的那些门道。先说系统骨架主控用S7-200Smart带A32扩展模块4入2出模拟量刚好够用。触摸屏选的是西门子Smart Line界面做参数设定和趋势监控。重点来了——温湿度PID控制这块梯形图里藏着一堆骚操作// 温度PID控制段 PID_CTRL( EN : TRUE, PV : Temp_PV, // 当前温度值 SP : Temp_SP, // 设定温度 GAIN : 2.5, // 比例增益 TI : 120, // 积分时间秒 TD : 20, // 微分时间秒 CYCLETIME : 1000, // 采样周期1秒 MAN_ON : FALSE, LMN_HLM : 100.0, LMN_LLM : 0.0, LMN Heat_Output); // 加热阀输出这代码看着标准吧实际调试中发现个坑当加湿阀和加热阀同时动作时温湿度会产生耦合干扰。解决办法是把PID采样周期错开温度环用1秒周期湿度环用2秒周期硬生生把两个环路的震荡错开了相位。Modbus轮询这块更刺激。项目里要接8台变频器直接上轮询队列算法VAR Polling_Index : INT : 0; Polling_Array : ARRAY[0..7] OF BYTE : [3,4,5,6,7,8,9,10]; // 变频器站号 END_VAR IF T#5S THEN // 每5秒轮询一台 MODBUS_MASTER( REQ : TRUE, MB_ADDR : Polling_Array[Polling_Index], MODE : 0, DATA_ADDR : Read_Buffer, ERROR Comm_Error); Polling_Index : Polling_Index 1; IF Polling_Index 7 THEN Polling_Index : 0; END_IF; END_IF;这里有个骚操作——把故障设备自动踢出轮询队列。当连续3次通信失败的设备会被移到队列末尾保证正常设备的数据刷新率。实测下来通讯成功率从85%飙到98%。恒温恒湿AHU程序 西门子200Smart PLC程序,采用西门子触摸屏AHU程序暖通空调模拟量处理 加热加湿降温减湿PID控制轮询modbus通讯变频器控制.A32说到变频器控制最头疼的是启停冲击。后来在触摸屏脚本里加了斜率限制// 频率给定斜坡函数 IF Start_Signal THEN Target_Freq : 45.0; // 目标频率45Hz Ramp_Time : 30; // 30秒斜坡时间 Actual_Freq : Actual_Freq (Target_Freq - Actual_Freq)/Ramp_Time; ELSE Actual_Freq : 0.0; END_IF;结果设备启动时电机声音明显温柔了机械磨损也肉眼可见减少。最后说个血泪教训温湿度传感器的安装位置比算法重要十倍有次客户把回风传感器装在检修门旁边门一开数据就抽风。后来在程序里加了变化率限制每秒温湿度变化超过3%就触发数据冻结这才算稳住系统。现在的系统跑起来温湿度曲线跟心电图似的平稳。不过暖通这行当永远别指望一劳永逸——上周客户往机房塞了二十台服务器得重新调PID参数去吧...