☰
基于S7-200 PLC与组态王的矿井通风控制系统设计与调试
2026/10/1 17:15:00 网站建设 项目流程

矿井通风系统是煤矿安全运行的生命线,这句话在矿上干了十年的人体会最深。井下瓦斯一旦积聚,温度湿度一上来,光靠自然通风根本顶不住。我前两年接手了一套基于S7-200 PLC和组态王的矿井通风控制改造项目,目标是实现主通风机的自动/手动双模式控制、瓦斯浓度联动变频调速、以及远程监控画面。这套系统从硬件选型、接线图设计、梯形图编程到组态王画面配置,整套流程走下来踩了不少坑,也沉淀了不少可以直接复用的经验。今天就把这套解决方案完整拆开讲一遍,适合正在做PLC毕设、矿山机电岗位的工程师,以及想学S7-200加组态王联调的朋友,后面会按硬件、程序、画面、调试四个维度展开,保证你拿着这篇文章能一步步落地。

1. 需求分析:矿井通风到底要控什么

1.1 井下环境参数与通风联动逻辑

先从工艺侧说起。矿井通风的本质,是用风机把新鲜空气源源不断送到采掘工作面,同时把瓦斯、粉尘、有害气体稀释并排出去。煤矿安全规程对风速、瓦斯浓度、温度都有明确允许范围,比如采掘工作面进风流中瓦斯浓度不得超过0.5%,回风流不得超过1.0%。所以通风控制系统最核心的任务不是“把风扇打开”这么简单,而是要时刻保证井下关键点的瓦斯浓度、风速、温度都在安全区间内,一旦出现超限趋势,系统要能自动加大风量甚至触发报警和联锁。

以我做的这套系统为例,现场需要监测量包括:总回风巷瓦斯浓度、采煤工作面瓦斯浓度、风筒风速、电机轴承温度和风机运行状态。执行机构是两台主通风机(一用一备),每台风机由一台37kW电机驱动,既可以直接工频启动,也可以通过变频器调速。控制策略上,正常工况风机以固定工频运行;当瓦斯浓度偏高时,系统自动切到变频,根据瓦斯浓度闭环调节风机转速,实现“按需通风”。这比传统的一直满速跑更节能,也是现在矿井通风智能化改造里的常见做法。

1.2 为什么选S7-200加组态王这套组合

很多朋友问,都什么年代了还用S7-200?确实,S7-200已经停产多年,但存量市场巨大,尤其在中小矿山和老旧矿井改造项目中保有量依然很高。矿上的电工和维护人员对STEP 7-Micro/WIN非常熟悉,设备坏了好修,程序好改。更重要的是,S7-200的PPI通信配合组态王的上位机方案非常成熟,驱动稳定,做中小型通风控制系统,无论是性价比还是维护便利性都说得过去。

选组态王则是因为它在国内工控组态软件里用户基数大,图库丰富,做报警、趋势、报表都很方便,而且自带S7-200的专用驱动,不用自己写通信协议。这套组合放在毕业设计、技能竞赛、中小矿山改造三个场景里都完全够用。如果你的项目预算充足,用S7-200 SMART加组态王6.60SP4也是兼容的替代方案,后面调试部分我会专门提一下新旧平台的差异。

2. 硬件系统设计:接线图和原理图是怎么展开的

2.1 设备选型清单

先说结论,这套系统我用的核心硬件如下表:

设备型号/规格用途说明
PLC CPUS7-200 CPU226(24DI/16DO)主控制器,点数充足,带两个通信口
模拟量模块EM231(4通道AI)接瓦斯、风速、温度等4-20mA信号
模拟量输出模块EM232(2通道AO)给变频器频率给定信号
上位机软件组态王6.60监控画面、报警、趋势、报表
通信电缆PC/PPI电缆(USB口)PLC与上位机通信
变频器37kW通用变频器风机变频调速
传感器瓦斯浓度传感器(4-20mA)、风速传感器、PT100温度变送器现场参数采集

CPU226选它的原因是点数富余。其实CPU224也能跑,但通风系统现场往往有多个备用点要预留,扩展传感器也方便。EM231接线时要特别注意电流和电压跳线的区别,模块侧面有一个DIP开关组,选4-20mA输入时要把对应通道的跳线置于电流档,这个细节很多新手栽过。

2.2 I/O点表分配:先把地址规划明白

I/O点表是连接图纸和程序的中间桥梁。我习惯先画好点表再写程序,不然程序写到一半发现点位对不上,返工成本极高。这套系统的I/O分配如下:

类别地址信号名称说明
DII0.01#风机启动按钮常开触点
DII0.11#风机停止按钮常闭触点
DII0.2自动/手动选择开关SA旋钮,闭合为自动
DII0.3变频器故障信号变频器继电器输出常闭串入
DII0.4瓦斯超限闭锁信号瓦斯电闭锁节点
DII0.5电机过热保护热继电器常闭触点
DOQ0.0工频接触器KM1工频回路
DOQ0.1变频接触器KM2变频回路
DOQ0.2声光报警器故障/超限报警
DOQ0.3运行指示灯风机运行指示
DOQ0.4变频器启动指令干接点信号
AIAIW0回风巷瓦斯浓度4-20mA对应0-4%CH4
AIAIW2风筒风速4-20mA对应0-15m/s
AIAIW4电机轴承温度4-20mA对应0-150℃
AOAQW0变频器频率给定4-20mA对应0-50Hz

其实煤矿井下正规设计还必须考虑本安回路和瓦斯电闭锁,涉及到安全规程的强制要求,我在这里讲的是控制系统本身的逻辑框架,实际工程中一定要配合专门的安全防护设计和审批流程,不能拿一套控制系统直接当安全系统用。

2.3 主电路与控制电路的关键设计

接线图和原理图的设计核心是主电路的双回路结构。工频回路是断路器QF1→接触器KM1→热继电器FR→电机;变频回路是断路器QF2→接触器KM2→变频器→电机。两个接触器之间必须做电气互锁和程序互锁双重保护,防止变频器输出端误接工频电源烧毁设备。

控制电路走的是DC24V。开关电源将AC220V转为DC24V,为PLC的DI/DO提供电源,同时也给传感器供电。按钮、选择开关、继电器辅助触点统一接到PLC数字量输入端子,PLC输出通过中间继电器去控制接触器线圈和变频器端子,这样PLC的DO触点寿命更长,现场检修也安全。

原理图上几个容易忽略的点,这里必须单独标出来。第一,模拟量信号必须用屏蔽双绞线,屏蔽层在PLC侧单端接地,两端的接地会造成地环路,PID数据会飘到你怀疑人生。第二,电力电缆和信号电缆要分槽敷设,间距至少200mm,变频器出线尽量用屏蔽电缆并加磁环。第三,接触器线圈两端要并联RC吸收或者压敏电阻,不然断电瞬间的反电动势足以干扰PLC的数字量输入。我实测过,不接吸收回路时,变频器一启动,模拟量数值能跳5%以上。

3. 梯形图程序设计:从起保停到PID闭环

3.1 程序总体框架

程序我在STEP 7-Micro/WIN里按功能分成五个模块:启停控制、自动/手动切换及互锁、模拟量采集换算、PID变频调节、故障报警与复位。每个模块用单独的网络块实现,调试时可以逐个网络强制验证,效率比写一个大迷宫高得多。

程序的主体结构用一句话概括:手动模式下,操作员直接按钮启停风机;自动模式下,PLC根据瓦斯浓度决定工频还是变频运行。瓦斯浓度超过设定阈值(比如0.8%CH4)时,切变频并让PID投入;低于恢复值并延时稳定后,切回工频。切换过程必须有延时,避免频繁切换烧接触器。

3.2 电机启停与互锁逻辑

启动停止用经典的起保停电路,STL语句表是这样的:

Network 1 // 工频启动停止 LD I0.0 // 启动按钮 O Q0.0 // 自锁保持 AN I0.1 // 停止按钮 AN M0.1 // 故障标志 AN Q0.1 // 变频接触器互锁 = Q0.0 // 工频接触器输出

注意我特意把Q0.1(变频接触器)串进工频回路的互锁条件里,同时变频回路也串上Q0.0的常闭触点。这就是程序互锁。即使有人把接触器辅助触点接错线,只要PLC不同时输出两个接触器,设备就是安全的。故障标志M0.1在报警模块里置位,处理完故障后需要按下复位按钮才能解除。

3.3 模拟量采集与工程量换算

EM231模块把4-20mA信号转成数字量,S7-200的AIW通道满量程是0~32000。但4mA不是0,所以4-20mA对应的数字量实际是6400~32000。换算工程量用线性公式:

工程量 = (AIW原始值 - 6400) ÷ (32000 - 6400) × 量程上限

比如瓦斯0-4%CH4,浓度百分比 = (AIW - 6400) ÷ 25600 × 4。在S7-200里做浮点换算比较啰嗦,我习惯把原始值直接送给组态王,由组态王的变量转换功能完成标度变换,省PLC程序空间也方便调量程。PLC内部只保留一个用整数运算算出来的近似值用于逻辑判断,两者互不干扰。梯形图里用整数运算做近似换算可以这样写:

Network 3 // 瓦斯浓度近似换算(单位0.01%) LD SM0.0 MOVW AIW0, VW200 // 原始值存入VW200 -I +6400, VW200 // 减零点偏移 MOVW VW200, VW202 *I +4, VW202 // 按量程比例放大 /I +256, VW202 // 得到0~400的整数百分比

这样VW202里就是可以直接比较的瓦斯浓度值,阈值判断用比较指令即可。也要注意S7-200的整数乘法用*I,结果超16位会溢出,所以放大系数不能太大,这也是我拆成两步乘除的原因。

3.4 PID变频调速的实现

PID调节是这套系统最有价值的部分。S7-200的PID指令需要在V区建立回路参数表,核心参数包括:过程变量PV、设定值SP、输出值、增益Kc、采样时间Ts、积分时间Ti、微分时间Td。这里有个关键点:PV和SP都必须归一化到0.0~1.0之间。也就是把瓦斯浓度的实际值除以量程上限,比如实测0.8%对应归一化值0.2(0.8/4=0.2)。

我的PID参数初始设置为Kc=1.5、Ts=1s、Ti=2min、Td=0。执行方式用定时中断,在SMB34中写入1000,即每1000ms触发一次中断,中断程序里调用PID0指令。为什么用定时中断而不是每个扫描周期都调用?因为PID指令要求采样周期恒定,扫描周期受程序长短和通信影响会波动,采样时间不稳定,PID输出就会抖。

输出值同样是归一化的0.0~1.0,要先把输出值乘以32000转成整数再送给AQW0,这样变频器的频率给定信号才是稳定的4-20mA。我在PID后面还加了一段输出限幅,把最大值限制在30000左右,对应大约47Hz,防止变频器长时间在50Hz满负荷运行,这点对风机保护的收益非常明显。

4. 组态王画面与通信配置:让数据看得见

4.1 设备通信配置步骤

组态王和S7-200通信是所有联调工作的第一步。在组态王工程浏览器的设备配置里,选择PLC → 西门子 → S7-200(PPI),然后按向导填写通信参数。通信口选COM1,波特率9600,8数据位,偶校验,1停止位,PLC站地址填2。PC/PPI电缆的驱动要装好,USB转COM的驱动冲突是通信失败的头号原因。

设备地址填错了最坑,S7-200的默认站地址是2,但有些老设备被人改过站号。排查方法是用STEP 7-Micro/WIN搜索一下CPU,能搜到就说明站地址和通信参数都没问题,组态王连不上就要回去检查组态王的波特率和站地址设置。如果上位机用的S7-200 SMART,情况略有不同:STEP 7-Micro/WIN SMART是通过IP地址连接CPU,通信方式从PPI变成了TCP,组态王要用S7-200 TCP驱动,地址和端口要单独配。

4.2 变量字典与画面布局

组态王的变量字典是整个上位机的灵魂。我建了三类I/O变量:数字量变量(如1#风机运行状态、故障报警)对应PLC的Q0.x和M区,模拟量变量(如瓦斯浓度、频率给定)对应VW区。特别注意数据类型的匹配,PLC侧VW200是16位整数,组态王里就定义成I/O整数,如果你定义成I/O实数,读取的是两个字的浮点值,数值完全对不上。

画面布局我分成四个页面:主监控画面、实时趋势画面、报警画面、参数设置画面。主监控画面放系统工艺图——风机、风筒、传感器位置都用组态王图库里的设备图例,用动画连接把瓦斯浓度、风速、温度实时显示在对应位置。颜色变化配合数值变化,关键参数超过阈值时变成红色闪烁,值班员一眼就能看到问题出在哪。

动画连接是组态王实操里最容易出错的地方。每个图元要双击进入动画连接对话框,位移、颜色、数值显示分别绑定到对应变量,绑定不对或者变量名拼错,编译时不一定报错,运行起来就是画面不动。我的经验是每做一个图元就连一个变量,然后立即切换到运行模式验证,别等全部做完再测试,到时候几十个图元查错查到崩溃。

4.3 报警系统与实时趋势

报警系统是值班人员的核心工具。我在组态王里定义瓦斯浓度高报(0.8%)、高高报(1.0%)、温度高报(90℃)、风速低报(安全风速下限)四个报警条件,报警优先级分两级。高报生成报警记录并弹窗提示,高高报除了弹出窗口还要联动声光报警器,通过PLC输出Q0.2驱动现场电铃和警灯。报警记录可以按时间段查询并导出报表,交接班的时候打印出来,这是矿上日常管理的硬需求。

实时趋势用组态王的历史趋势控件实现,采样周期设1秒,保存周期设1分钟,这样既能看实时曲线,历史数据占用空间也不大。瓦斯浓度的趋势曲线特别重要,增量和速率往往比绝对值更早暴露问题——瓦斯浓度曲线如果出现上翘拐点,即使还没到报警值,也该让现场人员重点关注了。

5. 调试过程与常见问题排查

5.1 通信故障排查实录

这套系统调试时遇到最典型的问题是通信时好时坏。现象是组态王运行画面偶发性死掉,数据定格在某个值,过十几秒又恢复。排查过程按三步走:先看PC/PPI电缆插头是否松动,原厂电缆插头公差较小,第三方电缆容易接触不良;然后看COM口号,USB转接设备每次插拔电脑分配的COM口可能变化,组态王设备配置里COM口必须和实际一致;最后检查驱动版本,老版本USB驱动在Win10后会出现关机异常或蓝屏,偶尔还会导致电脑无法正常关机,换新版驱动或原厂电缆基本能解决。

还有一次是组态王完全连不上,排查半天发现是PLC的通信口被STEP 7-Micro/WIN的在线监控占用着。PPI是单主站协议,上位机软件在线监视时组态王抢不到总线,把STEP 7-Micro/WIN退出监控模式就好了。从此我养成一个习惯:凡是组态王连不上,先确认没有其他软件占用PLC通信口。

5.2 模拟量信号干扰处理

现场干扰是最折磨人的问题。风机的37kW变频器一启动,AIW0瓦斯浓度数值就开始波动,幅度有1%量程左右。我用示波器量过信号端子,发现叠加了大量高频毛刺,根源是变频器输出电缆的电磁辐射耦合到模拟量信号线上。处理措施有三条:模拟量电缆换成屏蔽双绞线并且在PLC侧单端接地;信号电缆和变频器动力电缆分开桥架敷设,拉开距离;变频器输出端加装输出电抗器。三条下来波形干净了很多,组态王上的数据曲线从锯齿变成平滑线。

PLC自身滤波也能帮上忙。S7-200的模拟量滤波功能在系统块里配置,我选了64次采样取平均值,响应速度对通风系统来说完全够用。这里要提醒一点:滤波是一把双刃剑,它对平稳信号有效,但如果信号本身代表的是快速变化的安全参数,滤波太深会掩盖真实的突变趋势,做安全联锁的逻辑千万别依赖滤波后的数值。

5.3 PID参数整定经验

PID参数整定我走了弯路。第一次按理论值上电,系统震荡厉害,频率给定在30Hz到50Hz之间来回甩,风筒都发出明显的周期性喘振声。问题出在采样时间和Kc的配合上:通风系统的响应时间是以秒计的,我一开始采样时间设成200ms,比例增益1.5,PID对每个噪声都做出反应,自然震荡。

后来我按“先纯比例、后积分、微分基本不用”的思路重新整定。采样时间改到1s,Kc从0.3开始逐步往上加,加到0.8时系统开始有轻微震荡,退回0.6稳定。然后加入积分,Ti从5min慢慢减到2min,系统出现缓慢的周期性波动,再退回3min。最终参数是Kc=0.6、Ti=3min、Td=0。整个过程花了一个下午,但参数整定完,频率给定曲线非常平稳,瓦斯浓度在设定值附近稳稳地走,这说明通风系统对PID的鲁棒性要求其实不高,稳比快更重要。

5.4 常见问题速查表

现象可能原因处理措施
组态王连不上PLCCOM口错误/站地址不对/软件占用串口核对COM口号、PLC站地址,退出在线监控
模拟量数值跳动变频器干扰、屏蔽未接地屏蔽层单端接地、分槽布线、加滤波
PID输出震荡采样时间短、增益过大加长采样时间、降低Kc、逐步整定
变频器不启动启动指令没到、外部端子没接强制Q0.4验证PLC输出,检查变频器端子参数
接触器频繁吸合自动切换延时不够切换逻辑加延时,设恢复阈值回差
组态王历史趋势断线通信占用、保存周期错误检查通信状态,调整历史保存周期

调试顺序我建议按“先PLC后上位机,先手动后自动,先逻辑后闭环”来推进。手动模式验证点表接线是否正确,自动模式验证切换逻辑,最后再投入PID,这样每一步出问题都好定位。如果手头没有真实PLC,也可以先用S7-200模拟器配合组态王做画面和通信练习,逻辑验证基本没区别,但模拟器对定时中断和通信口的模拟有限,真机上电还是要重新验证一遍。

最后分享一个我个人的体会:矿井通风系统说白了是一套慢响应的安全系统,程序里少用花哨的指令,把逻辑写得简单直观,现场维护的人才能看懂、敢改。我在程序每一段网络前面都写清楚了注释,设备铭牌上也印了对应的I/O地址表,半年后回访时矿上的电工自己就能处理一般故障。做这类项目,能让不参与开发的人顺畅接手,才算真正交付完成。这套S7-200加组态王的组合,在现在的新项目里可能显得老旧,但它的稳定和易维护性,在我做过的中小型通风项目里,依然是性价比最靠谱的方案之一。

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

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

立即咨询