基于S7-200 SMART与MCGS的恒温恒湿空调箱控制系统设计与调试
2026/9/12 3:41:58 网站建设 项目流程

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扩展模块(8DI+8DO),或者直接用SR40(24DI+16DO)。选型原则就一句话:IO点数预留15%~20%的余量,别卡着刚刚好,后期业主加个压差报警、加个防火阀反馈,你才发现没点用了,那就很被动。

模拟量这一块,S7-200 SMART本体的模拟量输入通道在CPU SR30上是没有的,所以要加模拟量扩展模块。温度湿度变送器输出4~20mA的,我一般配EM AE04(4路模拟量输入)或者是SB AE01信号板(1路模拟量输入)。如果手头项目模拟量比较多,比如还要接压差变送器、流量计,那就直接上EM AE08,8路输入一步到位。

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~20mA,0~100%RH
AIW4送风温度AI4~20mA,-20~80℃
Q0.0送风机启动DO接触器控制
Q0.1回风机启动DO接触器控制
Q0.2电加热1段DO接触器控制
Q0.3电加热2段DO接触器控制
Q0.4加湿器启动DO接触器控制
AQW0表冷器冷水阀开度AO4~20mA,0~100%

这里面的AIW地址,S7-200 SMART是默认从AIW0开始顺排的,和模块插槽位置没关系,但用了软件组态以后地址就是固定的,不要自己瞎改。

3. PLC程序实现:PID调节与控制逻辑

3.1 模拟量标定与数值处理

S7-200 SMART读模拟量,4~20mA对应的数字量是0~27648(这是SMART和1200/1500的区别,1200是0~27648,200 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:经过标定后的实际温度(浮点数)。
  • 输出值Output:PID输出指令输出的是一个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_Mode),0表示制冷模式,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.1,PLC侧有几个坑:

  • 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左右((25+20)/100×16+4=11.2mA,哎这个我算一下,25℃对应(25-(-20))/100 = 0.45,0.45×16+4=11.2mA)。如果电流对,那就是PLC侧标定有问题。
  • 查看PLC程序里模拟量地址是不是选对了。S7-200 SMART扩展模块的模拟量地址和CPU组态顺序有关,在软件“系统块”里能看到实际地址分配,别和以前老200的固定地址搞混。
  • 检查程序里是否做了滤波。S7-200 SMART的模拟量滤波器在系统块里可以设置模拟量滤波强度,工业现场干扰大的时候,把滤波打开能明显解决数值乱跳,但注意滤波会给PID带延迟,温度回路这种大惯性对象没问题。

5.2 PID参数整定

PID参数整定,我从来不用什么复杂的自整定公式。恒温恒湿空调箱属于大惯性、纯滞后对象,温度回路的整定我用的就是“先比例,后积分,微分基本不碰”的方法。

温度PID实操步骤:

  • 把所有积分时间和微分时间先设成0,纯比例。
  • P值从5%开始(Kp=1.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和触摸屏,思路都是一样的。希望大家看完这篇,能少走点我当年走过的弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询