基于S7-200 SMART与MCGS的恒温恒湿空调箱控制系统设计与调试

发布时间:2026/9/12 3:42:13
基于S7-200 SMART与MCGS的恒温恒湿空调箱控制系统设计与调试 1. 恒温恒湿空调箱方案的整体思路与架构设计做恒温恒湿控制说实话市面上能选的方案很多但能落地、好维护、成本又可控的组合我这几年做下来最顺手的还是“西门子S7-200 SMART PLC MCGS昆仑通态触摸屏”这一套。特别是中小型项目比如制药车间的洁净空调、电子车间的恒温恒湿间、档案库房和精密实验室这套搭配几乎成了标配。先说明一下这套系统到底在干什么。恒温恒湿空调箱本质上就是一台“能精确控制送风温度和湿度的空气处理机组”。它通过对回风或送风状态的实时检测经过PLC内部的PID运算去控制电加热器、电极加湿器、冷水二通阀或者直接膨胀阀、送风机这些执行机构最终把房间里的温度和湿度维持在一个工艺允许的波动范围内。我遇到过很多刚入门的同行拿到这个项目第一反应就是“温度一个PID湿度一个PID两边一写就完事了”。真这么简单就不会有那么多调了几个星期还稳不住的现场了。温度控制和湿度控制是强耦合的比如夏天表冷器一开温度降下来的同时湿度也被除掉了冬天一加热相对湿度立马往下掉。所以你写程序之前脑子里必须先把“除湿和制冷共用表冷器”“加湿和加热可能同时动作”这种物理逻辑理清楚再去写代码。这套系统我一般分成三层看设备层送风机、回风机、电加热器、加湿器、冷水阀、新风阀、回风阀、初效/中效过滤器压差开关还有温湿度传感器。控制层西门子S7-200 SMART PLC负责逻辑控制、PID运算、联锁保护、手自动切换是整个系统的“大脑”。监控层MCGS触摸屏负责参数设定、状态监控、历史曲线、报警记录、手动操作。为什么用S7-200 SMART而不是S7-1200说白了还是成本和易用性的平衡。S7-200 SMART自带以太网口本体集成模拟量输入中小型空调箱的IO点数一般也就三四十个200 SMART完全够用价格比1200便宜不少编程软件STEP 7-MicroWIN SMART也免费对中小型项目来说性价比确实高。MCGS昆仑通态触摸屏在这个组合里也很有优势。它对S7-200 SMART的驱动支持非常成熟通过以太网直接走S7协议也就是大家常说的“西门子TCP/IP”驱动不需要额外配置网关或者OPC服务器组态软件McgsPro或者嵌入版的组态环境都是中文界面上手快以后客户自己换画面也好维护。2. 硬件选型与IO分配实操2.1 控制柜与PLC选型接下来说硬件。恒温恒湿空调箱的控制柜我一般建议做成户外型或室内型独立电控柜柜内带主断路器、开关电源、接触器、热继电器、中间继电器、保险端子这些。PLC我常用的配置是S7-200 SMART CPU SR30为什么用继电器输出的SR而不用晶体管输出的ST原因很简单空调箱的执行器比如接触器线圈、加湿器控制信号绝大多数是AC220V或者DC24V的开关量继电器输出可以直接带小负载隔离也省了。这里有个细节SR30本体自带16路数字量输入和12路数字量输出如果项目里风机多、阀门多、报警点多12路输出是不够的我一般会加一块EM DR16扩展模块8DI8DO或者直接用SR4024DI16DO。选型原则就一句话IO点数预留15%~20%的余量别卡着刚刚好后期业主加个压差报警、加个防火阀反馈你才发现没点用了那就很被动。模拟量这一块S7-200 SMART本体的模拟量输入通道在CPU SR30上是没有的所以要加模拟量扩展模块。温度湿度变送器输出4~20mA的我一般配EM AE044路模拟量输入或者是SB AE01信号板1路模拟量输入。如果手头项目模拟量比较多比如还要接压差变送器、流量计那就直接上EM AE088路输入一步到位。2.2 传感器与执行器选型恒温恒湿空调箱最关键的两个测量值就是温度和湿度。温度传感器我用得最普遍的是PT100铂电阻配合温度变送器输出4~20mA量程一般设-20~80℃精度0.5%FS就够。湿度传感器用高分子湿敏电容式的温湿度变送器输出4~20mA量程0~100%RH。这里要提醒一句湿度传感器一定要买带不锈钢烧结防护罩的那种装在空调箱回风道上或者风管里不然风速一吹数值会跳得厉害。执行器选型也很关键电加热器常见的是不锈钢电加热管三相380V功率根据风量和温升计算一般通过接触器分级控制或者用可控硅调功模块做连续调节。用接触器分级控温便宜但温度波动大用可控硅连续调节温度和湿度都比较稳定建议对控制精度要求高的场合用可控硅调功。加湿器常用电极式加湿器通过控制加湿电流或者接触器的启停来调节加湿量。电极加湿器响应快但水质影响电极寿命维护量稍大。冷水阀一般是二通电动调节阀配0~10V或者4~20mA的控制信号阀体按照表冷器的冷水量选型我这里一般选等百分比流量特性的阀门温控线性度会好很多。风机送风机和回风机功率大一点的用星三角启动或者变频器控制小功率的直接接触器启停。新风阀和回风阀一般用开关型风阀执行器或者0~10V调节型执行器看工艺要求。2.3 IO分配规划表我做一个项目第一件事永远是先出IO分配表再动笔写程序。不然后期改地址改到你怀疑人生。下面是我最近一个项目的IO分配表大家可以参考地址信号名称类型说明I0.0送风机运行反馈DI接触器辅助触点I0.1送风机故障DI热继电器常闭I0.2加湿器运行反馈DI加湿器触点I0.3初效过滤器压差报警DI压差开关常闭I0.4中效过滤器压差报警DI压差开关常闭I0.5防火阀状态DI常闭触点断开报警I0.6手自动切换DI柜门/触摸屏联锁I0.7急停DI常闭AIW0回风温度AI4~20mA-20~80℃AIW2回风湿度AI4~20mA0~100%RHAIW4送风温度AI4~20mA-20~80℃Q0.0送风机启动DO接触器控制Q0.1回风机启动DO接触器控制Q0.2电加热1段DO接触器控制Q0.3电加热2段DO接触器控制Q0.4加湿器启动DO接触器控制AQW0表冷器冷水阀开度AO4~20mA0~100%这里面的AIW地址S7-200 SMART是默认从AIW0开始顺排的和模块插槽位置没关系但用了软件组态以后地址就是固定的不要自己瞎改。3. PLC程序实现PID调节与控制逻辑3.1 模拟量标定与数值处理S7-200 SMART读模拟量4~20mA对应的数字量是0~27648这是SMART和1200/1500的区别1200是0~27648200 SMART也是一样注意不是0~32000很多从老200转过来的同行会在这踩坑。0~20mA才是0~32000。所以如果变送器输出4~20mA你在程序里做量程转换的时候温度工程量 (AIW原始值 / 27648.0) × (量程上限 - 量程下限) 量程下限举个例子温度变送器量程-20~80℃AIW读到13824那温度就是(13824 / 27648) × 100 - 20 30℃湿度变送器量程0~100%RH读到13824湿度就是50%RH。这里我建议在PLC里把工程量转换封装成两个子程序一个提温度一个提湿度里面用浮点运算别用整数运算不然精度根本不够PID算出来也像抽风一样跳。3.2 PID向导配置S7-200 SMART的编程软件STEP 7-MicroWIN SMART自带PID向导用起来比老的Micro/WIN顺手很多但也需要认真理解里面的几个参数。我一般这样配PID回路温度回路Loop0和湿度回路Loop1两个独立的PID。设定值触摸屏上的SV温度设定值如23.0℃通过变量传入。过程值PV经过标定后的实际温度浮点数。输出值OutputPID输出指令输出的是一个0~1之间的实数归一化值再通过量程转换映射到0~100或者0~27648决定模拟量输出给冷水阀的信号或可控硅调功器的信号。向导生成PID子程序以后要记得在主程序里用SM0.0常ON调用PIDx_CTRL而且在调用前必须初始化模拟量输入值因为向导生成的回路表Deadband、Gain这些参数都是默认的要在初始化段里重新赋值。PID的回路表地址我一般是VB1000往后分配用向导自带的符号表去引用不要自己随便定义地址不然跟向导冲突了在线监控的时候数据错乱会让人崩溃。3.3 温度湿度控制策略双回路解耦这是整个程序的核心也是我调试现场最有心得的部分。恒温恒湿空调箱的控制策略我总结一句话温度为主回路湿度为辅回路制冷除湿共用表冷器加热加湿根据季节自动切换。具体逻辑是这样的当回风温度高于设定值夏天工况表冷器冷水阀PID自动调节开度阀门开大送风温度下降同时表冷器翅片温度低空气中的水蒸气在翅片表面凝结成冷凝水排走也就是“降温除湿”。这时候如果湿度还不够低说明表冷器水温不够低或者风量太大单靠温度PID联动就行。当回风温度低于设定值冬天工况电加热器PID自动调节输出把空气加热到设定温度。这时候湿度传感器测量的相对湿度会明显下降湿度回路检测到低于设定值就启动加湿器往风管里喷蒸汽把湿度补回来。当温度接近设定而湿度偏高这时候主要是除湿需求但单纯开表冷器会把温度也拉低所以程序里要有一个“再加热”的辅助策略也就是表冷器先除湿温度低了以后电加热再补温保证送风温度不往下掉。这个逻辑在过渡季节特别重要不然你湿度拉下来了温度也跌到18℃以下业主肯定来找你麻烦。用S7-200 SMART实现这个逻辑我的做法是在PID向导生成两个回路温度回路Loop0和湿度回路Loop1的基础上再加一段“工况判断”的前置逻辑。比如回风温度与设定温度的偏差大于1℃认为处于制冷工况温度PID输出直接给冷水阀回风温度与设定温度的偏差小于-1℃认为处于加热工况温度PID输出映射到电加热调功器。这里有个关键点S7-200 SMART的PID是单输出回路它不管你的执行机构是加热还是制冷它只知道PV偏高了输出就变大。所以你必须自己在程序里做“正作用/反作用”的判断和切换。我的写法是温度PID的模式选择变量Temp_Mode0表示制冷模式1表示加热模式。在制冷模式PID输出0~100直接作为冷水阀开度给定在加热模式把“100 - PID输出”作为电加热给定同时把PID设定值取反或者把PV取反保证PID方向正确。这个思路听起来绕但是理解了PID方向就很好办。湿度回路也类似但执行器就两个加湿器加湿方向和表冷器除湿方向。我一般在程序里加了一个“湿度正反作用”切换位当PV湿度高于设定值2%RH以上就认为需要除湿湿度PID的输出叠加到冷水阀开度上和温度PID的输出做MAX取大当PV湿度低于设定值就认为需要加湿湿度PID输出直接控制加湿器启停或比例调节。这个“MAX取大”策略是我调试了很多项目总结出来的一个土办法虽然没有理论书上说的那么严谨但实际效果非常稳。因为它保证了在夏季工况温度PID要开的冷水阀和湿度PID要开的冷水阀只要任何一个需求大阀就开到那个值温度和湿度两个回路不会互相打架。3.4 联锁保护与手自动逻辑恒温恒湿空调程序不能只写PID联锁保护做得不好设备烧起来那是真出大事。我程序里必带的保护送风机启动信号发出后延迟10秒检测送风机运行反馈如果没反馈说明风机没起来立即停掉电加热和加湿器防止干烧。防火阀或排烟防火阀反馈断开立即停止所有加热加湿设备只允许风机继续运行或者按消防要求联动停机。初效/中效过滤器压差报警只报警不跳机提醒清洗更换滤网。电加热器过温保护电加热管内部带温度开关串联在接触器控制回路里这个不用进PLC硬件上就一路断掉。冬季防冻保护新风温度低于5℃时新风阀开度自动调小或者停止新风防止表冷器冻裂这个用AIW读取室外温度程序里判断。手自动逻辑我一般这样设计。触摸屏上有“本地/远程”切换开关打到“本地”模式操作员可以在触摸屏上手动启停风机、加热、加湿这个模式主要给调试和检修用打到“远程”模式PLC自动按照PID调节运行触摸屏只显示参数和设定值。手动模式一定要做“互锁连锁”比如手动开启加热器时如果风机没开PLC应该拒绝执行并在报警栏提示“风机未启动禁止加热”防止调试人员误操作。4. MCGS触摸屏组态开发从通讯到画面4.1 MCGS与S7-200 SMART的通讯设置MCGS昆仑通态触摸屏和S7-200 SMART通讯我选的是以太网方式简单可靠一个交换机就搞定。在MCGS组态环境里设备窗口新建一个“西门子S7-200 SMART”驱动IP地址填PLC的IP比如192.168.0.10本地IP填触摸屏自己的IP比如192.168.0.11注意两个IP必须在一个网段而且不能冲突。这里特别提醒一下S7-200 SMART的以太网口默认IP是192.168.0.1PLC侧有几个坑PLC的程序里如果没有启用“允许来自远程客户端的PUT/GET访问”MCGS是连不上的。要在STEP 7-MicroWIN SMART的“系统块”里把“允许”勾上然后下载进去。很多新手连不上80%都是这个设置没开。PLC和触摸屏之间的通讯不要用交换机连到办公网络尤其是和公司内部网络混在一起IP冲突或者广播风暴会搞得你现场调试怀疑人生。我都是用一个独立的工业交换机最多再加一台笔记本调试口。MCGS驱动里寄存器地址的填写格式有些讲究。S7-200 SMART的变量比如VB100在MCGS里要写成“VB100”MW0写“MW0”QW0写“QW0”如果是位变量比如Q0.0写成“Q0.0”。这里寄存器类型和地址一定要选对AW模拟量字、DW双字、实数RW错了读出来的数就是乱的。4.2 画面设计与变量规划MCGS的画面设计我习惯按“主监控画面—参数设定—报警记录—历史曲线—手动操作”五个页面来做。主监控画面放一台空调箱的示意图把风机、表冷器、加热器、加湿器、风阀这些用图元画出来旁边配温度湿度实测值、设备运行指示红绿状态、PID输出百分比。这样操作工一眼就能看到设备整体状态不用去翻密密麻麻的表格。参数设定画面是业主最常用的在这个页面里放温度设定值SV、湿度设定值SV、PID参数Kp、Ti、Td、PID输出上限下限、温度报警上下限、湿度报警上下限。所有参数通过MCGS“输入框”控件关联到PLC的V存储区变量。注意这里PID参数如果允许操作工随便改风险很大我一般会加权限把PID参数放在“工程师密码”权限组下面操作员只能改温度和湿度设定值。历史曲线画面MCGS本身有“历史曲线”构件设置好数据源和存盘周期就能画温湿度的实时曲线和历史曲线。这个对调试验收特别有用业主看到一条平稳的直线比你说一百句“系统很稳定”都管用。手动操作画面是调试神器。我做了一个表格把每个设备的“手动启动/停止”按钮、运行状态反馈、故障复位按钮全部放在一页。调试的时候我就在触摸屏上手动点开风机看反馈再开加热测试联锁是否生效省去了带笔记本到现场反复插网线的麻烦。4.3 报警与数据记录MCGS报警功能我用得也比较多。在实时数据库里定义温度高低报警、湿度高低报警、设备故障报警这些“开关型”变量组态报警显示构件可以实现报警时间、报警值、恢复时间的记录和查询。这里有个实用技巧报警触发尽量在PLC里做不要完全依赖触摸屏。因为PLC的报警是独立运行的即使触摸屏死机或者通讯断开PLC照样能保护设备但触摸屏上触发报警就不行。所以我的做法是PLC里做好所有联锁和报警判断输出一个“报警汇总”位变量MCGS只负责显示这个汇总位和详细报警值。数据记录方面MCGS能把温湿度历史数据存到U盘或者通过FTP上传到上位机。做过GMP验证项目的朋友应该知道这个追溯功能有多重要。审计时要你调出三个月前某一天的温湿度曲线如果MCGS里没做数据记录那真是欲哭无泪。5. 现场调试与常见问题排查5.1 模拟量读数不对这个问题我在现场遇到最多。温度显示100℃、湿度显示0%或者数值乱跳。排查步骤我建议按顺序来先看传感器接线是不是接对了。4~20mA两线制变送器正极接模块的AI负极接AI-AI-和电源负极有没有共地很多变送器要求24V负和信号负共地接法错了信号就是乱的。再用万用表量电流。在线串一个万用表看实际电流值是多少。比如室温25℃变送器量程-20~80℃电流应该是8mA左右(2520)/100×16411.2mA哎这个我算一下25℃对应(25-(-20))/100 0.450.45×16411.2mA。如果电流对那就是PLC侧标定有问题。查看PLC程序里模拟量地址是不是选对了。S7-200 SMART扩展模块的模拟量地址和CPU组态顺序有关在软件“系统块”里能看到实际地址分配别和以前老200的固定地址搞混。检查程序里是否做了滤波。S7-200 SMART的模拟量滤波器在系统块里可以设置模拟量滤波强度工业现场干扰大的时候把滤波打开能明显解决数值乱跳但注意滤波会给PID带延迟温度回路这种大惯性对象没问题。5.2 PID参数整定PID参数整定我从来不用什么复杂的自整定公式。恒温恒湿空调箱属于大惯性、纯滞后对象温度回路的整定我用的就是“先比例后积分微分基本不碰”的方法。温度PID实操步骤把所有积分时间和微分时间先设成0纯比例。P值从5%开始Kp1.0左右给一个设定值扰动观察温度波动。如果温度长时间到不了设定值有静差逐步增大P直到出现持续的等幅振荡记录此时P值然后把P往回退一半。加上积分时间I从300秒开始往下降每降一次观察温度是否产生超调如果超调大了I回调一点。微分时间D一般设0空调箱这种对象用D容易引入噪声实在要用也就5~10秒别贪。湿度PID的整定比温度麻烦因为加湿器的输出是“启停式”的。如果是可连续调节的加湿器比如可控硅调节的电极加湿器PID整定方法和温度类似如果是启停式加湿器我用的是“宜缓不宜急”的脉宽调节策略把PID输出转换成0~100再映射到加湿器运行占空比比如输出30%就是运行3秒停7秒。这样湿度波动明显减小也减少加湿器频繁启停对电极寿命的影响。这里要特别提醒湿度PID的采样周期别设太短。加湿器喷出的蒸汽到回风湿度传感器感受到中间隔着风管滞后可能有一两分钟。采样周期太短PID会一直积分过头湿度过冲得厉害。我一般把湿度PID手动采样周期设在5~10秒。S7-200 SMART向导里PID是可以设置采样时间的别用默认的1秒。5.3 通讯掉线或数据不刷新MCGS触摸屏和PLC通讯掉线这个故障现象很典型屏幕左下方一个红叉或者数值变成“####”。排查顺序先ping一下用笔记本接到和触摸屏同一个交换机ping PLC的IP能通说明物理链路没问题那就查MCGS驱动设置。检查PLC侧“允许远程PUT/GET访问”是不是勾上了没勾直接导致握手失败。检查MCGS里PLC的设备地址是不是填成了“0”或者默认值。S7-200 SMART驱动站号默认是0你可以不用改但如果你PLC侧把MPI地址改了两边对不上也是连不上。看PLC程序里是不是有地方把通讯用到的变量块比如V区地址当成普通数据区乱写了。S7-200 SMART和MCGS通讯默认读写V区如果你程序里对这些V区地址做了大量频繁的运算或覆盖可能会影响通讯刷新速度但这种一般只是刷新慢不会掉线。5.4 温度正常但湿度一直偏高这个故障十有八九出在“风量”或者“冷源”上。我遇到过好几次业主说除湿除不下来我过去一看表冷器阀门已经开到100%但手摸表冷器进出水管温差很小一问才知道冷冻水供水温度有15℃这哪是冷冻水这都快成冷却水了。除湿是需要低水温的一般7~12℃冷冻水表冷器翅片温度低于空气露点水汽才能凝结下来。冷源水温过高除湿能力就是不行这不是程序能解决的要跟暖通专业沟通。还有一种是新风比的问题。新风比太大室外湿负荷一直往房间里面带除湿速度跟不上。这种我一般建议把新风阀自动调节功能加上或者限制新风阀最小开度程序里根据室内湿度动态调节新风阀开度湿度高时减小新风量湿度低时恢复正常对节能也有好处。6. 实操心得与注意事项这套“西门子S7-200 SMART MCGS昆仑通态”的恒温恒湿空调箱系统我从第一个项目做到现在大概也交付了二十来套了。最深的体会就是控制方案本身并不难难的是对整个空调系统工艺的理解、对现场细节的把控、以及对调试过程的耐心。几个实用心得分享给大家模拟量标定的浮点运算一定要用浮点不要省那个扫描周期。整数运算的误差在PID里会被放大尤其是湿度这种非线性对象。调试的时候笔记本上用STEP 7-MicroWIN SMART在线监控同时把MCGS的画面开着两个窗口对着看PID的输出、PV曲线的变化一目了然比你看那些干巴巴的数据快得多。给业主做培训的时候把触摸屏的密码分级讲清楚操作员只给一级权限工程师才给二级权限不然哪天电工师傅手痒把PID参数改了第二天温湿度飘成什么样你都不知道怎么回事。现场一定要留好IO分配表和图纸。很多项目交付完半年业主打电话说“设备不启动了”、“湿度报警了”你翻一下图纸和IO分配表远程就能猜个八九不离十省得再跑一趟。最后分享一个小技巧MCCS触摸屏调试助手在线模拟模式特别好用。你可以在组态电脑上先用“模拟运行”功能把工程跑起来直接在电脑屏幕上看着画面调试PLC程序不用一遍遍往触摸屏里下载程序。等确认逻辑没问题了最后再下载到触摸屏能省不少时间尤其是改个文字、挪个按钮这种小修改模拟运行一刷新就看到了比我早期做项目时“每改一次下载一次”的效率高了一倍不止。做项目永远会碰到新问题但只要把“工艺理解—逻辑设计—通讯调试—PID整定”这条主线走通不管用什么品牌的PLC和触摸屏思路都是一样的。希望大家看完这篇能少走点我当年走过的弯路。