干工控这些年煤矿通风这一块的活儿我接过不止一单。说白了这类系统的核心就一句话让传感器盯住瓦斯浓度让三菱PLC按规矩决定风机怎么转再让组态王把状态搬上电脑屏幕做到既看得见、又管得住。三菱PLC加组态王这个组合在煤矿项目里相当常见成本可控、资料好找、维护门槛也不高特别适合刚入行的电气工程师、井下电工还有做自动化毕业设计的学生参考。这篇文章我就把整个方案的思路、IO分配、接线要点、梯形图逻辑和组态王配置从头到尾捋一遍全是实际项目里验证过的东西照着做基本不会跑偏。1. 项目需求与控制逻辑拆解1.1 先搞清楚瓦斯浓度控制到底要干什么煤矿井下最怕的就是瓦斯积聚。瓦斯的主要成分是甲烷它在空气中的爆炸下限大概在5%上限在16%在这个区间里遇上明火就是事故。所以通风机的任务不只是送风更关键的是把瓦斯浓度压到安全线以下。浓度一旦失控风机必须按预设逻辑动作该报警报警、该停机停机绝不能等值班员看见了再手动处理。这里要引入一个煤矿行业里绕不开的概念瓦斯电闭锁。通俗讲就是瓦斯浓度超标时控制系统自动切断相关区域的供电同时把风机状态锁定住防止有人盲目重启设备、带着隐患送电。这套方案的核心就是把瓦斯电闭锁从人工习惯变成PLC程序里的固定逻辑让机器去执行最不能出错的那一步。另外还要说清楚系统不是只做一个超标就跳闸的开关而是要分梯度处理。浓度轻微偏高系统先提示、先加强通风浓度到了危险线才动真格停电闭锁。这样既保证安全又尽量减少对整个生产流程的扰动。这个分级管控的思路是整个控制逻辑的骨架。1.2 控制策略定下来三档判断加回差保护根据大多数矿井的实际使用习惯我一般把控制点设成三档。第一档是正常段瓦斯浓度低于0.8%风机保持正常运行系统只做监测和记录。第二档是预警段浓度到0.8%以上PLC立刻驱动声光报警器同时保持风机全速运转用加大通风量的方式尝试把浓度压下去。第三档是危险段浓度达到1.5%PLC输出断电闭锁信号切断风机回路并且进入自锁状态。这里有一个新手特别容易忽略的细节回差。如果报警点设在0.8%浓度在0.79%和0.81%之间来回波动继电器和报警器就会频繁吸合释放触点寿命直线下降现场也会被弄得一惊一乍。所以我通常在程序里加回差——报警触发值仍然用0.8%但解除报警要等浓度回落到0.75%以下。类似温控器的上下限逻辑虽然多写几行程序但调试的时候能省一堆麻烦。第三档的断电自锁恢复逻辑也要单独设计。闭锁触发后即使浓度降回安全范围系统也不会自动复电必须由巡检人员确认现场安全、按下复位按钮程序才会解除闭锁。这个人工确认的环节是我特意保留的安全系统最忌讳自动复电——谁也不知道闭锁期间现场发生了什么机器不能替人做这个判断。1.3 系统整体架构传感器、PLC、上位机怎么分工这套系统按层级划分我习惯分成四层来看。最底下是感知层也就是煤矿专用的低浓度甲烷传感器它负责把瓦斯浓度变成电信号送给PLC。往上是控制层三菱PLC负责所有逻辑判断、定时、闭锁和输出驱动。再往上是执行层包括接触器驱动的通风机、声光报警器、断电继电器这些。最顶上的是监控层组态王运行在井上工控机上通过通讯线和PLC交换数据实时显示浓度、风机状态并记录历史数据。信号流很清晰传感器信号进PLCPLC内部做比较和连锁输出给接触器和报警器同时PLC把关键寄存器数据上传到组态王组态王下发手动指令给PLC。四层各管各的事互不越权。这样做的好处是即使组态王挂了PLC依然能独立完成所有安全保护动作上位机挂了不影响井下安全底线这是这套架构最值得坚持的一点。2. 硬件选型与IO分配详解2.1 核心硬件怎么选为什么这么选PLC我选三菱FX3U系列具体型号看现场端子数量需求一般用FX3U-64MR起步。MR是继电器输出型带载能力强触点坏了也好换用在风机控制这种低频通断场合足够。FX3U自带RS-422编程口可以和上位机组态王直接通讯程序容量、扫描速度对付这种中等规模逻辑绰绰有余。模拟量扩展模块选FX3U-4AD。瓦斯传感器的输出信号有几种现场最常遇到的是4-20mA电流输出和200-1000Hz频率输出两种。我推荐优先选4-20mA电流输出的传感器因为它可以直接进模拟量模块接线简单、抗干扰能力也不错程序处理也直观。频率输出的传感器虽然矿用历史长、传输距离远但要占用PLC的高速计数输入口编程相对绕。本方案主线按4-20mA来走频率型在进阶部分单独提。执行层主要用中间继电器加交流接触器。PLC的Y端子不要直接驱动接触器线圈因为接触器线圈有电感通断瞬间会产生反向电动势容易打坏PLC输出触点。稳妥的做法是PLC输出驱动中间继电器中间继电器触点再控制接触器线圈中间加RC吸收或者压敏电阻这也是我在现场一贯的做法。声光报警器选带自锁功能的方便值班人员看清报警来源。2.2 IO分配表每一个点都要有名字IO分配是整个项目里最枯燥但最不能出错的部分。我的习惯是先在表格里把每一个输入输出点定义死再动手画图写程序避免干到一半发现端子不够用。这套系统的典型分配如下编号软元件信号名称说明X0急停按钮紧急停止常闭输入串在整个控制逻辑最前面X1转换开关手动/自动切换拨到自动才允许PLC自控风机X2启动按钮手动启动风机手动模式下使用X3停止按钮手动停止风机手动模式下使用X4主风机接触器辅助触点主风机运行反馈用于判断风机是否真实启动X5备用风机接触器辅助触点备用风机运行反馈备机自投逻辑判断依据X6主风机故障信号热继/变频器故障触发备机切换X7复位按钮解除瓦斯电闭锁人工确认安全后按下Y0主风机接触器经中间继电器驱动控制主风机启停Y1备用风机接触器经中间继电器驱动控制备风机启停Y2声光报警器瓦斯预警/危险报警第二、三档都动作Y3断电闭锁指示灯闭锁状态指示提醒现场人员CH1FX3U-4AD通道1瓦斯浓度信号4-20mA进接传感器输出这里特别提醒一点X0急停必须用常闭触点。常闭的意思是一旦线路断了PLC收到的是断开信号系统自动进入紧急状态如果用常开断线时系统反而以为一切正常那是要出大事的。这个习惯在煤矿项目里属于铁律千万不要图省事反着接。2.3 接线关键点漏型输入、继电器隔离、屏蔽线三菱FX3U的输入端子是漏型/源型可切换的通过S/S端子的接法来控制。漏型接法是把S/S端子接到24V正极按钮另一侧接X端子外部传感器用NPN输出源型则相反。现在井下传感器和按钮绝大多数是NPN型所以漏型接法最通用。接线时统一把S/S端子接到开关电源的24V所有输入信号低端接到0V对着图纸核对一遍再上电。模拟量部分4AD的通道端子要分清正极接传感器信号线负极接传感器公共地屏蔽层在PLC柜这一端单点接地。不少现场模拟量读数乱跳十有八九是屏蔽层两端都接地了形成地环路干扰或者是把信号线和动力线绑在了同一个线槽里。强弱电分开走模拟量线用双绞屏蔽电缆这两条做到了大部分干扰问题就提前消灭了。2.4 电源分配也要提前规划这类系统至少需要三路电源PLC和控制回路一路传感器变送器一路接触器动力回路一路。传感器电源要单独用一路稳压的24V直流不要和继电器线圈共用开关电源——继电器吸合瞬间电流波动大会把传感器的测量值拽得乱七八糟的。动力回路要经过断路器、接触器再到电机与PLC之间用中间继电器和接触器辅助触点做隔离电气的强、弱两部分在柜内也要用隔板分开。3. 组态王与三菱PLC通讯配置3.1 通讯链路怎么搭最省心组态王和三菱PLC通讯最常用的方式是USB-SC09-FX编程电缆一头插PLC的编程口另一头通过USB转串口到工控机。组态王里对应设备驱动选三菱FX系列编程口然后指定串口号。这个方案不需要额外买通讯模块成本最低调试时也方便还能顺便用同一根线下载程序适合绝大多数中小型项目。如果现场要求通讯距离更远、或者组态王要放到离PLC几十米以外那就得换方案。常见做法是给FX3U加一块FX3U-485-BD通讯板走RS-485总线组态王通过USB转485模块接总线上。这种方式抗干扰更好、传输距离更远但要多配一块通讯板和一个转换器还要注意终端电阻和总线极性调试复杂度稍微高一点。井下环境特别复杂时我甚至建议直接用FX3U-ENET走以太网稳定性和速度都上来了代价是成本明显增加。3.2 组态王设备配置参数照抄就行设备配置是新手最容易卡壳的地方。我的参数设定一般是这样的串口选实际COM口号波特率9600数据位8停止位1无校验或偶校验取决于PLC侧设置通信超时3000毫秒PLC站号保持默认0。组态王安装完之后先在设备驱动里找到三菱FX系列编程口添加设备再把这个参数表填上。参数项设定值备注串口COM3 或实际口号在设备管理器里确认波特率9600和PLC一致即可数据位8三菱编程口协议标准停止位1同上校验方式无/偶校验建议以连接测试为准站号0FX3U编程口默认通信超时3000ms太长影响响应太短易误报断线配好之后一定要用组态王自带的设备测试功能验证一次能读到PLC数据再继续做变量不要等画面做完了才发现根本ping不通那种返工太痛苦了。3.3 数据词典变量怎么建藏着哪些坑组态王的数据词典是把PLC寄存器和画面控件连接起来的桥梁。瓦斯浓度存在PLC的D0里你就在组态王新建一个I/O整数变量连接设备选刚才配好的PLC寄存器填D0读写属性选只读。风机运行状态存在M1里就建I/O离散变量寄存器填M1。按钮、复位这些需要上位机下发的信号寄存器填M2、M7之类读写属性选读写。这里有个老生常谈但总有人犯的错D寄存器是16位数值范围是-32768到32767组态王侧变量类型一定要对应好别把一个0到4000的模拟量数据读出来变成负数甚至溢出。我一般把D0里的原始数字量直接传给组态王然后用组态王的表达式功能除以400再显示成百分比浓度这样PLC侧不用做浮点转换组态王侧也只做一次简单除法效率高、逻辑也直观。4. 梯形图程序设计与详解4.1 程序架构先想清楚状态位提前规划写梯形图最忌讳上来就堆指令。我拿到IO分配表之后第一步是规划内部继电器和寄存器。这套程序里我习惯用M0做手动/自动状态标志M1做主风机运行输出标志M10做瓦斯预警标志M11做瓦斯危险闭锁标志M12做闭锁保持状态。定时器用T0做备用风机延时投入T1做声光报警闪灯脉冲。寄存器方面D0存放4AD读上来的瓦斯浓度原始数字量D10存放换算后的浓度千分比D20存放传感器断线标志。程序整体可以分成五个功能块模拟量采集与换算、浓度分档判断、风机启停与自锁、瓦斯电闭锁与复位、报警输出。这样分开写的最大好处是调试定位快哪儿出了问题直接跳到对应段落查不用拿着一整页梯形图满屏找触点。4.2 模拟量采集与工程值换算别把原始值当浓度用4AD模块的数据要通过FROM指令读进PLC。FX3U-4AD挂在PLC扩展总线上指令格式是FROM K0 K0 D0 K1含义是从0号特殊功能模块的第0号缓冲区读取1个字到D0。注意M8000是PLC运行时常ON触点这段采集逻辑每个扫描周期都要执行不能只执行一次否则浓度值不会刷新。读取上来的D0是数字量不能直接拿来做判断。我按4AD在4-20mA量程下满量程对应数字量0到4000来处理如果传感器量程是0到10%VOL那么实际浓度就是D0除以400。程序里用浮点指令换算先把D0转成浮点数然后除以400结果存到D10组态王读D10直接就是带两位小数的浓度百分比。整数运算在FX3U里也能做但浮点更直观也方便后续扩展报警阈值。浮点换算还有一层好处传感器如果断线或者信号异常D0通常会跌到接近0换算出来的浓度就是0看起来反而像瓦斯浓度很低很安全。这会掩盖故障所以一定要加断线判断如果D0持续小于20对应浓度0.05%以下程序置位断线标志M20同时点亮断线报警灯提醒值班人员检查传感器回路。这个细节教科书上很少写但现场救过我好几次。4.3 浓度分档判断与回差逻辑怎么写分档判断我用区间比较指令ZCP来做。指令格式是ZCP S1 S2 S D意思是判断D和S1、S2的关系结果写到以D开头的连续三个软元件中。我这样写ZCP K320 K600 D0 M30。当D0小于320时M30为ON表示正常当D0介于320和600之间时M31为ON表示预警当D0大于600时M32为ON表示危险。320和600这两个数对应的正是0.8%和1.5%的浓度阈值。回差逻辑单独写一段。预警标志M10用M31置位但解除条件不是D0回到320以下而是用另一个比较指令判断D0小于300即0.75%才复位。这样浓度在0.75%到0.79%之间小幅波动时M10不会反复通断。危险闭锁标志M11的边缘处理更要保守一旦触发就保持只能靠复位按钮清除回差在这里不起作用——这是安全逻辑必须锁死。4.4 风机启停、自锁、互锁一个都不能少风机控制逻辑按手动和自动两种模式分别处理。自动模式下的条件是M0为ON自动状态、X0急停未动作、M12闭锁标志OFF、浓度低于危险值满足后风机自动启动并自锁。手动模式则不判断浓度只认X2启动按钮和X3停止按钮方便检修时单机试车。自锁回路的标准写法是启动按钮X2的常开触点并联Y0常开触点串联停止按钮X3常闭、急停X0常闭、闭锁M12常闭最后输出Y0。这样Y0一旦吸合就通过自身触点维持导通停止按钮或闭锁条件断开时才会掉电。主风机和备用风机之间必须做电气互锁。我的做法是输出Y1之前串联Y0的常闭触点输出Y0之前串联Y1的常闭触点确保任何时刻只有一台风机运行否则两个接触器同时吸合轻则短路重则引发事故。硬件回路里同样要加机械联锁这才是双重保险。4.5 瓦斯电闭锁与人工复位这是整个系统的命门瓦斯电闭锁逻辑是整个程序里我最强调的部分。当M32危险浓度为ON时SET M12置位闭锁标志一旦M12为ON不管浓度是否已经降下来风机都保持停止状态。复位条件只有一个X7复位按钮按下。程序写成LD M12、RST M12意思很明确——只有人为干预才能解除闭锁。还要考虑一种情况如果闭锁期间瓦斯浓度一直没降下来复位按钮按了也不能让风机启动因为风机启动条件里串联着M32的常闭触点。所以即使M12被复位只要浓度还在危险线以上风机依然不会启动。等到浓度真正降到安全范围、人工确认完毕、按下复位按钮三个条件同时满足系统才允许恢复运行。这套逻辑我把每一步都验证过现场矿方检查时对这个设计非常认可说是把人的确认权和机器的执行权分开了。4.6 备用风机自动投入的逻辑与延时备用风机不能主风机一报故障就立刻启动。如果主风机是过流跳闸备机立刻顶上很容易造成电网冲击。我的做法是主风机运行反馈X4消失或故障信号X6为ON先保持主风机停止状态同时启动T0定时器延时3秒3秒后如果备机没有故障、急停未动作才置位Y1输出备风机。这3秒是给接触器灭弧和电网稳定的时间实测下来比零延时切换靠谱得多。备机启动后还要持续监视它的运行反馈X5如果X5在启动后2秒内没有闭合说明备机实际没有启动程序会置位备机故障标志并输出报警。这个功能叫电气互锁加运行反馈闭环防止接触器触点粘连或者卡死导致实际风机没转、系统却以为转了这是现场最隐蔽的危险。5. 组态王画面组态与联动5.1 主画面设计让值班员一眼看懂现场组态王画面设计的原则是少文字、多图形、状态一目了然。主画面我一般从上到下分三个区域顶部是系统标题和当前时间中间是通风系统示意图底部是操作按钮和报警信息。系统示意图要画得贴近实际一台风机、一台备机、两个浓度监测点用管道线连接起来风流方向用箭头标注。风机图标用组态王图库里的风机图元运行时通过动画连接让它在运转状态旋转起来值班员扫一眼就知道风机在不在转。浓度显示用数字值输出控件同时加一个色块指示正常显示绿色预警显示黄色危险显示红色。这里我不建议在组态王里写复杂的判断脚本直接利用PLC传来的M10、M11、M12状态用动画连接的填充颜色属性绑到对应状态位就行PLC已经在做判断了上位机只负责呈现结果职责越单一越可靠。5.2 动画连接和控制按钮怎么做给风机图元添加旋转动画连接变量选M1旋转条件设为变量1时旋转速度设成每分钟60转左右视觉上比较自然。浓度显示控件的值输出属性绑定到D10显示格式设成两位小数单位写%数值范围设到0到10。这样画面上直接显示的就是1.25%这样的直观数值而不是一堆原始数字量。操作按钮要跟PLC侧软元件联动。手动启动按钮的按下时命令语言写\本站点\手动启动1PLC程序里对应的M2置位后触发启动复位按钮写\本站点\复位按钮1对应PLC侧X7的等效M7。注意组态王里I/O离散变量读写时置1之后要记得在PLC侧程序里做自复位或者画面端用按下时置1、弹起时置0的方式否则按钮状态会一直卡在1影响后续操作。5.3 报警窗口和趋势曲线配置组态王的报警功能要用报警窗控件集中展示。变量D10设置高报值0.8、高高报值1.5同时关联M10和M11一旦PLC触发报警报警窗里自动弹出记录。这里的关键是报警优先级要分清楚预警是提示级别可以用黄色闪烁危险闭锁是紧急级别用红色并带声音提示报警声音文件可以换成现场指定的语音播报。趋势曲线一定要做这不仅是给值班员看的更是给矿方留证据的。实时趋势曲线控件绑定D10时间轴设成20分钟能看到浓度变化趋势历史趋势曲线通过组态王自带的记录功能把D10定时写入数据文件保留至少三个月。万一出了事拿着浓度曲线复盘比对着台账解释有说服力多了。6. 常见问题排查与实操心得6.1 故障现象速查表照着查省一半时间现场调试最耗时间的不是写程序而是排查那些看起来哪里都对但就是不动的问题。我把这些年踩过的坑整理成了一张速查表故障现象可能原因处理办法组态王读数一直不动通讯线松动、COM口号选错、站号不对用设备测试功能逐个排查确认能读到再继续浓度显示跳动厉害模拟量屏蔽层未接地、与动力线同槽屏蔽层单端接地模拟量线单独走线槽浓度显示为0但传感器正常4AD通道没使能、偏置增益未校准读4AD状态寄存器检查通道初始化设置风机频繁启停回差没做、按钮触点抖动加回差逻辑程序里加10ms延时滤波报警响了又自己灭报警自保持逻辑缺失SET置位报警标志人工复位才复位备机切不过来备机反馈没接到位、互锁触点误动作核对备用风机接触器辅助触点接线检查Y0/Y1互锁断电后风机还在转接触器触点粘连、继电器释放慢换接触器检查中间继电器是否卡死这些问题的共性是越觉得不应该的故障越可能藏在接线和配置这些基础环节里。排查时一定从物理层开始查不要一上来就怀疑PLC程序有问题。6.2 现场调试的正确顺序一步都不能跳我的调试顺序固定是五步。第一步是IO空载验证把PLC打到停止状态用强制功能逐一测试每个输入点有没有信号、每个输出点能不能动作确保接线正确。第二步是模拟量校准用标准信号源给4AD送4mA和20mA两个点确认读数分别对应0和满量程有偏差就做偏置和增益修正。第三步是逻辑功能测试把传感器的信号模拟器接上人为设置几个浓度值观察风机、报警、闭锁是否按预定逻辑动作。第四步是组态王联调确认变量读取、按钮下发、报警弹出都正常。第五步才是真实的传感器接入和联动试验用标气或者现场实测数据做最终验证。这五步每一步都在检验上一阶段的成果跳步的结果通常是前面埋的雷在后面引爆。特别是模拟量校准有些模块出厂偏置并不准不做两点校准直接拿原始值当浓度用后面所有判断都建立在错误数据上查起来能把人逼疯。6.3 几次真实的教训写出来你们别再踩第一次做这类项目的时候我把闭锁复位做成了自动复位——浓度一降下来系统就自己恢复风机运行。当时觉得这多省事啊结果矿方的安全科长当场就否决了说这违反了他们的安全习惯瓦斯超限断电后必须人工到现场确认、手动复电这是矿上铁打的规矩。从那以后我再也不自作聪明搞自动复位安全系统里人的确认环节绝对不能省。还有一次是传感器标校问题。井下传感器按规程要定期标校但矿上人员变动大标校记录跟不上时间一长传感器零点漂移浓度显示越来越不准。后来我在组态王画面里专门做了一个传感器标校到期提醒区域记录上次标校日期到了90天就自动闪烁提醒。这个功能虽然简单但确实帮矿上了避免了好几起隐患。最后说一个最容易被忽略的问题程序版本管理。这种项目后期改动很频繁今天我改一个报警值明天他调一个延时参数改来改去现场跑的程序和电脑里存的程序就对不上了。我现在每改一次程序都会在梯形图注释里写明修改日期和修改人同时把带日期的备份文件单独存一个文件夹。这个习惯看起来不起眼但出了事故要查逻辑的时候就是你唯一的救命稻草。6.4 调试这类系统几年后我最大的感受前后做了几套煤矿通风瓦斯控制系统之后我最大的体会是这套系统的技术难度其实不算高真正的挑战在于把安全逻辑吃透。PLC指令、通讯配置、画面组态都是可以查阅手册学会的但什么时候必须停机、什么时候必须人工干预、什么时候可以自动恢复这些安全边界的拿捏需要真正到现场去感受、去和矿方人员反复沟通才能沉淀成靠谱的逻辑。如果你正在做类似的项目我建议你在动手写梯形图之前先把矿井现有安全规程翻一遍把每一个控制点对应的安全要求列成表再开始规划IO和程序。程序是安全逻辑的载体而不是程序的起点。这套三菱PLC组态王的方案本身很成熟照着这篇文章的框架做下来系统能跑得稳、查得清、报得准剩下的就是你在现场珠链般串起的那些经验了。