资讯动态

PLC中央空调源程序详解:从群控逻辑到PID整定

发布时间:2026/9/9 6:06:48 来源:尧图企业网站定制
简介这是一套基于三菱PLC的中央空调控制源程序定位为初学者学习工业自动化的入门实例完整演示了如何利用PLC实现温度调节、风速控制、湿度管理等中央空调常见控制逻辑。压缩包共3个文件包含两个HTM格式说明文档与一个TXT文档整体仅9KBHTM文件可用来查看程序结构、控制流程与教学步骤TXT则提供导入运行、参数配置和问题排查等补充信息文件虽小但结构完整。目前已有1007人学习下载属于小而精的实战参考资料。通过研读这些源码与说明读者可以快速掌握三菱PLC基础指令的编写方法理解传感器信号采集、逻辑判断到执行器动作的完整链路并学习冷却塔、风机、阀门等设备在中央空调系统中的联动控制思路。这套源程序也适合作为课程设计或毕业设计的参考模板帮助初学者建立从编程到实际项目落地的整体认知。 干这行这么多年客户现场一说到中央空调节能改造十个里有八个问“能不能用PLC做”。我的答案一直很明确能而且比你想的更成熟。中央空调系统里那些冷冻水泵、冷却水泵、冷却塔风机、冷水机组本质上就是一组需要按顺序启动、按负荷调节、按故障联锁的机电设备这正是PLC最擅长的活儿。今天就把我手里一套跑了两年的“PLC中央空调源程序”拿出来拆一遍从I/O规划到群控逻辑从PID整定到通讯对接全是大白话照着抄作业就行。1. 项目定位与需求拆解1.1 中央空调控制到底要解决什么问题先说清楚一件事中央空调控制不是只让设备转起来而是要让整套水系统在满足末端负荷的前提下做到能省则省。一套典型的中央空调机房里有冷水机组、冷冻水泵、冷却水泵、冷却塔、膨胀补水装置外加一堆阀门和传感器。如果各干各的谁都不管谁最直接的后果就是“大马拉小车”——负荷低的时候机组和水泵依然满负荷跑电费哗哗往外流。PLC要解决的三个核心问题第一根据冷冻水供回水温差和压差判断当前负荷到底需要几台机组、几台水泵第二通过变频器把水泵转速调到合适区间而不是工频硬跑第三设备出现故障时能用逻辑互相保护比如冷却水流量不够就不允许启动压缩机。这套源程序就是围绕这三件事做的。1.2 为什么用PLC而不是直接上DDC或单片机有人会问楼宇自控里常用DDC直接数字控制器为什么非用PLC。我个人的体会是中央空调机房环境不算好夏天机房温度高、湿度大还有电磁干扰DDC偏弱电抗干扰能力和环境适应性不如PLC。PLC的强项在于可靠性高、编程灵活、现场改逻辑方便而且现在主流国产品牌汇川、信捷、台达的PLC价格下来不少一台主机加扩展模块的成本和DDC系统差距不大甚至更低。单片机就更不用提了开发周期长现场维护的人不一定看得懂出了问题都没法排查。PLC至少有个梯形图电工师傅翻翻程序还能看懂逻辑这是工程落地很重要的一个考量。1.3 源程序的整体架构规划我习惯把整套程序分成几个独立的功能块主流程模式切换与启停顺序、模拟量处理温度、压力、流量采集与滤波、PID调节压差、温差闭环、机组群控加减机判断、故障联锁与报警、通讯数据交换与变频器、电表、上位机。每一个功能块独立成子程序主程序里按扫描周期顺序调用。这样架构的好处是调试时方便定位问题比如PID震荡直接去查PID功能块通讯丢包直接查通讯程序。而且后面客户想加功能比如加一块电表只要在硬件上加模块、程序里加一个功能块不用把整套逻辑推倒重来。2. 硬件选型与I/O规划2.1 主控PLC选型思路这套项目用的是汇川H5U系列理由是内置以太网口和串口做Modbus TCP/RTU通讯都不用加额外模块自带EtherCAT总线以后扩展远程IO很方便。当然换成信捷XD系列或者台达AS系列也一样跑关键看你当地售后响应速度和手里已有的程序库没必要为了某个品牌较劲。I/O点数的估算有个经验公式把现场所有需要接进PLC的信号列成清单数字量输入按钮、继电器辅助触点、故障信号、数字量输出接触器、指示灯、阀门开关、模拟量输入温度、压力、流量4-20mA居多、模拟量输出变频器频率给定0-10V或4-20mA最后加上15%-20%的备用量就是PLC的规模。2.2 I/O点表设计与传感器选型拿一套“两机三泵两塔”的机房来说2台冷水机组、3台冷冻水泵、3台冷却水泵、2台冷却塔风机项目点表大致长这样类型信号说明数量备注DI水泵变频器故障6每台泵一个DI机组运行/故障状态4每台机组两个DI手动/自动选择开关1-2柜面旋钮AI冷冻水供水/回水温度2PT100或4-20mAAI冷却水供水/回水温度2PT100或4-20mAAI分集水器压差1压差变送器AI冷却塔回水温度1-2用于风机起停DO水泵启停或变频器使能6中间继电器中转AO变频器频率给定4冷冻泵、冷却泵各两路分时复用需注意DO冷却塔风机启停2接触器控制这里有个容易踩的坑模拟量输入通道一定要做断线检测。4-20mA信号如果变送器坏了或者线松了PLC读到的值会跳到某个固定值如果不做判断PID会疯狂输出水泵可能冲到50Hz。实战做法是在模拟量功能块里加一个范围判断读数小于3mA或者大于21mA直接报警并锁定上一次有效值。2.3 通讯接口与扩展模块源程序里通讯占了很大比重。汇川H5U本体的COM口做Modbus RTU主站去轮询智能电表、电量采集模块以太网口做Modbus TCP服务器把数据送给上位机或者触摸屏。如果现场有第三方设备要接比如热词里提到的康耐视相机、海康相机这类视觉设备一般是发一个触发信号、回一个OK/NG信号接IO就行但如果是想通过Profinet或者EtherCAT做更复杂的数据交互就得看PLC型号是否支持H5U走EtherCAT是可以挂从站的信捷部分型号则支持Modbus TCP服务器模式跟相机做TCP通讯也走得通。3. 源程序核心逻辑实现3.1 机组群控与轮循策略群控是所有中央空调程序里最重要的逻辑没有之一。目标是根据末端负荷变化自动决定开几台机组、几台水泵并且让每台机组的运行时间尽量均衡。判断负荷最常用的信号是冷冻水回水温度——回水温度高说明末端在大量取冷负荷大回水温度低说明负荷小。再加上供回水温差就能算出当前实际负荷的大致比例。以两台机组为例加减机逻辑这样写当冷冻水回水温度连续30分钟高于设定值比如12℃且当前运行的机组已经满载机组电流接近额定值就把第二台机组加进来当回水温度连续30分钟低于设定值比如8℃且单台机组负载率低于60%就把后启动的那台机组停掉。注意一定要用“连续一段时间”来判断而不是一瞬间的温度值否则负荷波动时群控会频繁加减机机组压缩机频繁启停非常伤设备。轮循策略就是记录每台机组的累计运行时间下次需要加机时优先启动运行时间短的那台需要减机时优先停掉运行时间长的那台这样能有效延长机组整体寿命。3.2 冷冻水泵与冷却水泵变频控制水泵变频的逻辑和机组群控配套。冷冻水泵的调节目标是维持分集水器压差恒定也就是二次侧最不利末端要保证足够的资用压头。当末端支路阀门关小分集水器压差会升高PID就让水泵降频反之阀门开大、压差下降PID让水泵升频。冷却水泵和冷却塔风机的控制相对简单粗暴冷却水供水温度高于设定值比如32℃就加频低于设定值比如28℃就减频。但实际项目里我发现一个规律冷却水侧温度变化滞后很严重PID参数如果照搬冷冻水那套系统一定会震荡。我的做法是冷却水PID用更大的积分时间比冷冻水大2-3倍让系统慢慢追目标值宁可响应慢一点也要稳定。PID参数整定有个现场速调口诀先加比例找稳定再加积分消静差。具体做法是先设积分无穷大即不用积分只加比例从小到大调直到系统出现等幅振荡然后把比例放大系数乘以0.6再把积分时间设为振荡周期的1/2左右这样得出的参数就是一个比较稳的起点再微调就行。PROGRAM ChilledWaterPID // 压差PID调节目标值SP可由触摸屏设定 PID_PARA.Kp : 2.5; // 比例增益现场整定得出 PID_PARA.Ti : 120; // 积分时间冷冻水系统120秒 PID_PARA.Td : 0; // 微分不用防止干扰放大 PID_PARA.Setpoint : 150; // 分集水器压差目标单位kPa PID_OUT : PID_CALC(AI_DiffPress, PID_PARA); // 输出限幅到25Hz~50Hz避免过低频率导致水泵憋压 Frequency_ChW : LIMIT(PID_OUT, 25.0, 50.0);3.3 故障报警与联锁保护中央空调系统一旦出故障往往不是单台设备的事故而是连锁反应。程序里必须做联锁保护。最基本的几条冷却水泵未启动且水流开关未闭合时禁止启动冷却塔风机冷冻水泵未启动且水流开关未断开时禁止启动冷水机组任何一台水泵变频器故障该泵的运行状态立即复位如果该泵对应的机组正在运行应触发机组停机是否停机可根据机房冗余度选择单台配置必须停多台配置警告即可。还有一组容易忽略的保护防冻保护。北方机房冬季如果水系统停电或者水泵突然停转管道里有结冰风险。源程序里我加了冬防逻辑当外界温度低于5℃且水系统未运行时系统自动开启一台冷冻水泵和一台冷却水泵防冻循环同时通过触摸屏弹窗提示。报警分为提示、普通报警、严重故障三级。普通报警只记录到报警履历严重故障联动停机并在触摸屏和上位机弹窗。常规报警响应时间是500ms以内我在程序里用上升沿触发加自锁确保信号一闪而过的干扰不会造成误停机也不会漏报。3.4 能效优化与数据采集大一点的项目客户会要求看能效数据这时候PLC源程序里就要做数据累计和报表统计。给每个机组、水泵记录累计运行时间电表通过Modbus读回电量数据按天/月生成能耗表计算系统EER制冷能效比。这个数据很重要能有效证明节能改造的真实效果。数据存储有两类做法一类是把数据直接存在PLC掉电保持区另一类是实时上报到上位机数据库。我的建议是PLC里只存关键量电量、运行时间、故障次数因为PLC掉电保持区容量有限详细的记录交给上位机或者组态软件如InTouch、组态王、LabVIEW去处理。PLC和上位机之间的数据交互优先走Modbus TCP报文简单而且稳定。4. 通讯配置与上位机对接4.1 与变频器/电表的Modbus通讯源程序里与变频器的通讯用Modbus RTU波特率9600或192008位数据位、1位停止位、无校验这是变频器出厂最常用的默认配置。每个变频器分配一个从站地址PLC做主站轮询。轮询周期有讲究。如果从站设备少5台以内每台设备的轮询间隔可以做到200ms左右设备多了以后轮询周期太长会导致控制指令下发不及时这时候把“读运行参数”和“写频率指令”拆开写指令优先级最高每个扫描周期都发读指令放在后台慢周期处理。Modbus通讯最怕通讯地址写错和数据校验不通过。建议项目调试时先给每台设备做一个通讯测试功能块手动输入从站地址和寄存器地址把读回来的数值显示在触摸屏上确认无误后再接入自动逻辑。这一招能省下大量调试排查时间血泪教训。4.2 作为Modbus TCP服务器对接上位机上位机组态软件、LabVIEW、SCADA一般作为Modbus TCP客户端来访问PLCPLC侧配置成服务器模式。设置时要规划好保持寄存器的地址映射表比如40001到40020存放AI实时值40021到40040存放设备状态40041到40060存放运行时间累计40061到40080作为报表数据区。地址映射表一定要在项目文档里保存清楚。我之前接过一个项目前任工程师把地址表写在草稿纸上人离职了纸也找不到了后来上位机改画面的时候愣是对着PLC程序反推寄存器地址折腾了一整天。这活儿不难但特别消耗耐心所以地址规划一定要形成文档并随项目归档。4.3 与第三方设备相机/传感器的通讯预留如果项目里有相机做设备联动比如冷却塔液位相机识别或者末端房间人数统计PLC和相机的对接方式取决于相机支持的协议。海康、康耐视这类视觉设备如果支持Modbus TCP可以直接用PLC的以太网口读写寄存器支持Profinet就走Profinet西门子PLC自不用说国产品牌有些型号也支Profinet从站功能这个选型时就要确认好别等程序写完了才发现不支持。另外一个更简单常用的是I/O硬接线PLC给相机一个触发输出相机拍照后给PLC一个到位信号。这种方式最可靠调试也最快是我做项目时的首选。5. 调试经验与常见问题排查5.1 模拟量信号干扰问题调试中央空调项目十有八九会遇到模拟量跳动。最常见的原因是变频器输出电缆和模拟量信号线在同一个线槽里或者距离太近。解决手段按优先级排列第一信号线必须用屏蔽双绞线屏蔽层单端接地第二模拟量信号线和动力线分开走线间距至少30cm第三PLC模拟量模块上做软件滤波比如采样20次取平均值。如果加完软件滤波数值还跳就要怀疑是不是接地环路的问题。变送器供电和PLC供电共用一个开关电源时有时候会有共模干扰这时候把变送器电源换成独立的24V电源基本能解掉。5.2 通讯掉线问题排查Modbus RTU通讯掉线最常见的原因有三个接线极性接反A/B接反、终端电阻没加、波特率和数据格式不一致。终端电阻这件事经常被忽略线路不太长小于20米可以不加但通讯距离超过50米或现场变频器较多时一定要在总线两端各加一个120欧姆终端电阻并且PLC的COM口要接地。我发现还有一个隐蔽坑部分国产变频器的RS485接口只支持“两线制半双工”但接线端子上标的是“D、D-、GND”非常容易和RS232混淆。调试前拿万用表量一下变频器侧的A/B电平或者直接看厂家的手册确认接线定义别凭经验硬接。5.3 PID参数整定实战记录还是用压差PID举例子。系统刚装好时我按经验设定了Kp1.5、Ti60秒结果一投产分集水器压差在120~180kPa之间来回摆像过山车一样。后来我把积分时间加大到240秒比例增益降到0.8系统花了大约5分钟才稳定到设定值附近波幅控制在±5kPa以内。这里解释一下为什么中央空调系统PID参数普遍要“慢”水系统惯性大从变频器改变频率到水泵转速变化再到管道压力变化最后到压差变送器读数变化这个过程往往要几秒到十几秒。PID如果反应得太快相当于拿一个“急性子”裁判来判“慢动作”比赛结果必然是反复超调和震荡。5.4 时间表与节假日逻辑中央空调系统如果不做时间控制能耗一定降不下来。源程序里我用了PLC的实时时钟分工作日和周末两套时间表并且支持法定节假日特殊设置客户可在触摸屏勾选。每天晚上下班前30分钟程序自动根据当前回水温度决定是否提前停一台机组利用水系统蓄冷余量撑过最后半小时这是最实用的节能手段之一。时间表控制要注意一个问题PLC长时间断电后实时时钟会失准重新上电后如果不校准可能半夜三点自动开机组导致机房没人但设备全在转。我处理的方法是让触摸屏开机时自动从服务器校时或者至少在上电后弹窗提示操作员确认时间是否正确。6. 小结与个人体会这些年陆续做过好几个中央空调机房的控制项目最大的体会是PLC源代码本身不算难难的是你对工艺的理解够不够深。刚入行时我也犯过只顾着写逻辑、不关心水系统原理的错程序写完一投运就露馅PID调得满头大汗才意识到是负荷判断条件搞反了。后来我把制冷系统的工作原理、设备特性摸熟之后写程序反而顺手很多。如果你正在计划做一个“PLC中央空调源程序”我的建议是先把机房设备画成一张系统图标好每一路水管、每一个传感器、每一台设备再开始写I/O表。图纸理顺了程序就顺了。这个思路比下载任何一份现成源程序都有用。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价