做隧道射流风机自动控制系统设计,不是把几台风机按钮接到PLC上那么简单。真正动手时会发现:风机正反转切换怎么联锁、CO/VI传感器信号怎么进模拟量通道、自动联动要不要考虑多台风机轮换、上位机画面跟PLC地址对不上怎么办——这些问题每一个都能让调试现场多熬几个通宵。我去年完成过一套双向射流风机控制系统,从硬件的IO分配、电气接线图、主回路原理图,到梯形图程序里每一行的联锁逻辑,再到上位机组态画面,全程自己搭。这篇文章就把整套设计拆开讲,包含带解释的梯形图程序、IO分配表和组态画面设计思路,适合做PLC隧道风机项目、做毕业设计,或者刚接触隧道通风自控的人直接参考。
1. 先搞清楚隧道里那台射流风机到底要干什么
1.1 双向射流风机:通风换气和火灾排烟的双重角色
射流风机的原理其实不复杂:它不接风管,直接挂在隧道顶部,利用出口的高速射流带动周围空气沿隧道纵向流动,相当于给隧道“吹气”。车速高、车流大的隧道,尾气中的CO(一氧化碳)和烟雾(用能见度VI表示)很容易超标,靠自然通风根本压不住。这时就需要开风机把污染空气排出去,或者把新风引进来。和普通风机不同,隧道射流风机一般做成可逆式,正转时气流顺着行车方向送风,反转时反向排烟,所以控制回路里必然有正反转接触器。
设计系统前必须想清楚:射流风机不是“开了就不管”的设备。直接启动会拉低隧道内网电压;频繁切换方向会引起机械冲击;CO浓度不高但风机一直开,电费哗哗淌。自动控制的核心价值就是按需运行:浓度高了自动启动,浓度降下来延时停机,火灾模式下强制反转排烟。这个需求听上去简单,落到PLC程序里,要考虑的点比想象中多得多。
1.2 我采用的总体控制策略:就地、远程、自动三模式
隧道风机的控制权不能只交给PLC,检修时工人要在风机旁直接操作。所以我在设计里把控制模式分成三档,通过控制柜上的转换开关SA1切换:
- 就地模式(SA1切到“就地”):现场按钮箱上的启动/停止按钮直接控制接触器,PLC虽然还通着电,但输出全部被程序锁死,防止PLC和现场按钮互相打架。
- 远程模式(SA1切到“远程”):由上位机(组态画面)操作员手动启停每台风机,适合设备调试、应急单独运行。
- 自动模式(SA1切到“自动”):由CO/VI检测仪信号驱动PLC内部逻辑,自动完成浓度判断、启动、轮换、延时停机;上位机只监视不干预,除非按下“强制停止”。
这个三级架构的好处是清晰,且互为后备。就地回路是纯硬线,不依赖PLC;远程和自动都依赖PLC,但两者分开,避免运维人员在上位机上误点。实际项目中我还加了一条“火灾联动硬线”优先级最高:火灾报警系统给出干接点信号时,不管SA1在哪个位置,PLC强制反向启动排烟风机,这个后面还会细说。
1.3 自动控制要解决的核心问题清单
我在设计启动前把需求整理成一张表,后面所有IO分配、梯形图、组态画面都对着这张表来:
| 序号 | 问题 | 需要实现的逻辑 | 涉及模块 |
|---|---|---|---|
| 1 | CO浓度超标 | CO信号≥阈值后延时启动风机,降至阈值以下后延时停止 | 模拟量采集、定时器 |
| 2 | 烟雾浓度超标(能见度低) | VI信号≥阈值后启动风机,逻辑同CO且两者取或 | 模拟量采集、比较指令 |
| 3 | 风机正反转切换冲击 | 停止后必须经过延时(我设定5秒可调)才允许反向启动 | 定时器、互锁 |
| 4 | 单台风机电费/寿命不平衡 | 多台风机累计运行时间轮换,时间短的优先启动 | 累计定时器/计数器 |
| 5 | 故障及时切除 | 综合保护器动作后锁存故障,禁止该风机再启动,人工复位后才能恢复 | 置位/复位、自锁 |
| 6 | 火灾模式 | 消防硬线信号优先,强制启动指定方向风机排烟,上位机只显示状态 | 硬线DI、强制逻辑 |
2. IO分配表怎么定:从现场信号反推PLC选型
2.1 为什么要先做IO分配再做选型
很多人一上来就买PLC,然后对着硬件编程序,结果输入点不够、模拟量通道不足,只能加扩展模块或者改成外部继电器硬拼。正确顺序是先把现场所有信号列全,做成IO分配表,数清DI/DO/AI数量,再倒推选什么CPU、要不要扩展模块。我这套系统按2台双向射流风机设计,每台22kW,全部以这个规模为基准:
- 数字量输入DI:每台风机3个(正转反馈、反转反馈、综合保护故障),加急停、模式开关2点、消防联动1点,共9点;
- 数字量输出DO:每台风机2个(正转启动、反转启动),加压电状态、报警器2点,共6点;
- 模拟量输入AI:CO浓度1路、VI能见度1路,共2路。
这些信号数下来,CPU本体带24DI/16DO的S7-200 SMART SR40完全够用,DI和DO还留了富余;AI需要扩展一个EM AE04四通道模拟量模块,刚好覆盖。选S7-200 SMART还有个原因:隧道这类环境周边电磁干扰强,它自带RS485口和以太网口,组态软件通过以太网TCP通讯很方便,而且支持在线修改程序,现场调试省心。
2.2 完整的IO分配表(可直接抄)
下面这张表是我项目里实际用的IO分配表。注意地址分配时,我把“反馈”和“启动”错开排,避免维修时看花眼。模拟量地址以扩展模块默认起始AIW0为例,不同固件版本可能略有差异,但逻辑完全一致。
| PLC地址 | 符号名 | 信号来源/去向 | 信号类型 | 说明 |
|---|---|---|---|---|
| I0.0 | 急停信号 | 急停按钮常闭触点 | DI(干接点) | 正常时为1,按下时为0 |
| I0.1 | SA1就地模式 | 转换开关触点 | DI | 1=就地 |
| I0.2 | SA1远程模式 | 转换开关触点 | DI | 1=远程 |
| I0.3 | SA1自动模式 | 转换开关触点 | DI | 1=自动 |
| I0.4 | 1#风机正转反馈 | KM1辅助触点 | DI | 1=正转接触器已吸合 |
| I0.5 | 1#风机反转反馈 | KM2辅助触点 | DI | 1=反转接触器已吸合 |
| I0.6 | 1#综合保护故障 | 电机综合保护器常闭触点 | DI | 正常1,动作0 |
| I0.7 | 2#风机正转反馈 | KM3辅助触点 | DI | 同上 |
| I1.0 | 2#风机反转反馈 | KM4辅助触点 | DI | 同上 |
| I1.1 | 2#综合保护故障 | 综合保护器常闭触点 | DI | 正常1,动作0 |
| I1.2 | 火灾强制信号 | 消防联动输出干接点 | DI | 1=火灾排烟模式 |
| Q0.0 | 1#风机正转启动 | 中间继电器KA1 | DO(继电器触点) | 驱动KM1线圈 |
| Q0.1 | 1#风机反转启动 | 中间继电器KA2 | DO | 驱动KM2线圈 |
| Q0.2 | 2#风机正转启动 | 中间继电器KA3 | DO | 驱动KM3线圈 |
| Q0.3 | 2#风机反转启动 | 中间继电器KA4 | DO | 驱动KM4线圈 |
| Q0.4 | 综合报警输出 | 声光报警器 | DO | 任何风机故障时置1 |
| Q0.5 | 允许运行指示 | 柜面指示灯 | DO | 运行允许时置1 |
| AIW0 | CO浓度 | CO检测仪4-20mA输出 | AI | 量程0~300ppm |
| AIW2 | VI能见度 | 能见度检测仪4-20mA输出 | AI | 量程0~2000(衰减系数) |
这张表里的地址分配有几个讲究。第一,急停用常闭触点,万一急停回路断线,PLC会认为急停被按下,系统自动禁止运行,这比用常开触点更安全。第二,所有DI都做成无源干接点输入,接触器辅助触点、保护器触点都不带强电,PLC侧不会引雷、干扰。第三,DO输出接的是中间继电器而不是直接接接触器线圈,原因下面接线图章节细讲。
2.3 传感器选型和信号进PLC前的处理
CO检测仪我用的是隧道专用的四线制仪表,输出4-20mA,量程选了0~300ppm(隧道运营规范常用CO三分钟均值150ppm左右做启动阈值)。VI能见度检测仪也是4-20mA输出,量程按隧道设计风速和验收标准选。选传感器时注意两点:第一,必须带现场显示屏,不然巡检时不知道数值是多少;第二,传感器安装在隧道一侧距洞口约150米的位置采集环境空气,别装在风机出口正对的地方,否则测的是刚吹出去的气,不是隧道内真实浓度。
信号进PLC之前,我用一只信号隔离器串在传感器和AI模块之间。很多人图省事直接接,但隧道里常有变频器、大电机启动,共模干扰能把模拟量“顶”出几毫安。隔离器成本不高,能把地环路彻底断开,现场信号稳定很多。
3. 接线图和原理图的几个关键回路,逐根线讲
3.1 主回路:正反转换相就这样实现
射流风机要双向工作,原理就是在电机定子侧把三相电源任意两相(我习惯用U相和W相)对调,电机就反转。主回路由断路器QF、正转接触器KM1、反转接触器KM2、电机综合保护器FR、风机电机M组成。
电源进线L1/L2/L3先到QF上端,QF下端分两路。一路经KM1主触点直通电机U1/V1/W1,这是正转;另一路经KM2主触点到电机时把U1和W1对调,也就是换相。无论哪一路,都先经过FR的电流互感器部分,再由FR的常闭触点把信号送进PLC的I0.6/I1.1。这里特别强调一点,KM1和KM2必须采用带机械联锁的接触器,或者安装联锁挡块。机械联锁的意义在于:就算PLC程序写错、线接错,两只接触器也不可能同时吸合,否则就是相间短路,能把隧道变电所总闸直接打掉。程序里的软互锁只是第二道防线,硬互锁才是底线,这句我调试时反复跟电工师傅讲。
主回路之外我加了一个浪涌吸收器(SPD)装在QF下端和对地之间。隧道供电回路雷电感应很常见,PLC和传感器可以因一次过电压全部报废,这钱不能省。
3.2 控制回路:PLC输出不直接带接触器
控制回路的逻辑是这样的:PLC的Q0.0输出继电器触点,控制中间继电器KA1线圈,KA1的一对常开触点再接入KM1线圈回路。为什么绕一道?两个原因。第一,PLC继电器输出触点容量是2A,而接触器线圈在吸合瞬间的冲击电流可能好几安培,长期直带会缩短PLC输出触点寿命;第二,中间继电器把弱电和强电彻底分隔,后续检修、换接触器时不动PLC,运维方便。
控制回路的供电我单独用一组AC220V,急停按钮常闭触点串联在所有接触器线圈公共回路里。没有让PLC的24V直流回路去带接触器,这样PLC掉电或者坏了,现场还能手动操作,不至于风机全瘫。回路接线顺序写出来,现场配线时可以照着套:L火线→控制断路器1FU→急停常闭触点→SA1就地/远程/自动选择触点→到各接触器线圈A1端;线圈A2端直接接N零线。就地按钮的常开触点并联在对应接触器线圈回路里,实现绕过PLC的纯硬线启动;SA1切到就地时,PLC输出回路被中间继电器的常闭触点物理断开,就算程序误动作也到不了接触器。
如果你画的接线图和控制原理图对不上,十有八九就是手动/自动切换中间少了一个互锁触点。我的做法是在SA1切换时,把不用的一路常闭触点串到PLC输出回路里,这套硬逻辑比在程序里做三重保险都可靠。
3.3 模拟量接线和屏蔽处理的经验
CO、VI检测仪到PLC的模拟量输入,我全部用屏蔽双绞线,屏蔽层在PLC柜侧单端接地。注意是单端接地,两端都接地反而会因为地电位差形成环流,干扰更严重。传感器供电是和信号线分开敷设的,避免供电电缆和信号线同管槽,不然20mA信号会被感应出乱七八糟的纹波。
现在普遍用4-20mA做模拟量传输还有个好处:断线能识别。信号线断了电流掉到0mA,PLC侧读到的AIW远低于量程下限,程序里可以做断线报警。0-10V电压信号就做不到这一点,所以我坚持用电流信号进PLC。
4. 梯形图程序逐网络解释:从允许条件到故障锁存
4.1 程序总览:主程序加三个子程序
写梯形图不是一股脑把逻辑塞进主程序。我把程序分成四块:主程序OB1、自动控制子程序、手动/远程控制子程序、故障处理子程序。主程序里先做公共条件,然后根据I0.1/I0.2/I0.3的模式位分别调用对应的子程序。
子程序的好处是不光结构清爽,调试时还能单独禁用某个子程序来隔离问题。早期的版本我把所有逻辑堆在主程序里,改一行就要全盘检查,后来才拆开。如果你用三菱PLC或者汇川Codesys,思路一样,只是子程序组织方式略有不同。
4.2 网络1:运行允许条件
这一段是所有启动逻辑的前置门槛,相当于“系统总闸”。梯形图逻辑我用指令表加注释表达:
LD I0.0 // 急停常闭输入,正常为1,按下为0 AN M1.0 // 无锁存故障(故障M1.0=0说明系统正常) = M0.0 // 运行允许标志解释一下:M1.0是故障锁存位,任何风机综合保护动作或反馈丢失后,M1.0被置1,系统进入禁止状态,只有现场按复位按钮(或上位机复位)才清零。I0.0用常闭触点输入,按下急停时该位变0,运行允许立刻断开,所有正在运行的接触器线圈回路同时失电——这是最硬的安全底线。
实际项目里我还在M0.0之后串了一行“启动间隔保护”:风机停止后,T37开始计时,5秒内即使有启动指令也不会输出,防止正反转之间机械冲击。这行逻辑不放在具体风机的输出网络,而是放在公共条件里,确保所有风机共用同一规则。
4.3 网络2:自动模式联锁(CO/VI阈值判断)
自动模式下,CO和VI信号在PLC内部按同一套流程处理。先说模拟量换算:S7-200 SMARTAI模块将4-20mA映射为0~27648,其中4mA对应5530,20mA对应27648。实测值AIW与实际工程值之间是线性关系:
工程值 = (AIW – 5530)/(27648 – 5530)× 传感器量程
我把这个计算放在上位机做,PLC为了稳定和实时,直接用“原始值”和“折算后的阈值”比较。以CO阈值120ppm、量程0~300ppm为例,折算到AIW原始值就是:
AIW阈值 = 5530 + (27648 – 5530) × (120/300) ≈ 14377
于是自动启动的梯形图可以直接用整数比较:
LD I0.3 // 自动模式 LDW>= AIW0, VW100 // CO原始值 >= 阈值,VW100内存放14377 O LDW>= AIW2, VW102 // VI原始值 >= 阈值 OLD AN M0.2 // 不在停机延时锁定期 = M0.1 // 自动请求启动标志这里VW100和VW102就是阈值寄存器,调试时通过上位机组态画面直接写入,不用重新下载程序。写程序时记住一个原则:比较运算用整数,别的逻辑用浮点,别混用,否则小数点精度上出问题不容易查。
自动请求启动后,再加一个延时(TON)确认,比如浓度超标持续10秒才真正动作,防止瞬时尖峰误启动。这个延时用T38完成,启动前浓度超标持续10秒这一条我后面调试章节还会提到,它是防震荡的关键之一。
4.4 网络3:正转和反转输出,软互锁加硬互锁
以1#风机正转输出为例,梯形图对应的是这样一条串联支路:运行允许M0.0常开→就地模式I0.1常闭→正转反馈I0.4常闭→反转反馈I0.5常闭→换向延时T37常闭→启动脉冲M0.3常开→置位Q0.0。指令表写法:
LD M0.0 // 运行允许 AN I0.1 // 就地模式禁止PLC输出 AN I0.4 // 正转未在运行(反馈为0) AN I0.5 // 反转未在运行(反馈为0) AN T37 // 换向延时未计时,相当于停止后未满5秒禁止反向 A M0.3 // 启动脉冲触发 S Q0.0, 1 // 置位正转输出这个网络的核心是“互锁”。I0.4和I0.5是接触器辅助触点反馈,程序里做软互锁:正转输出时不能有反转反馈;反转输出时不能有正转反馈。但再次强调,不能只靠这一层,KM1/KM2本身的机械联锁才是真正锁死短路风险的手段。程序里为什么要再写一遍?为了在风机电控柜里两只接触器机械联锁失效时,让PLC还能切断逻辑,同时发出报警。
启动脉冲M0.3怎么来?手动模式来自按钮DI,自动模式来自网络2的M0.1延时后上升沿。这里我用S(置位)而不是直接输出给Q0.0,是为了保证风机启动后,只要没有停止条件,Q0.0状态一直被保持。停止逻辑则用R复位。用置位/复位做输出有一个好处:程序扫描周期不会因为某一行逻辑波动而抖断输出。
4.5 网络4:反馈缺失检测和故障锁存
接触器反馈回路断线是个隐蔽问题。明明启动了,现场风机却不转,PLC显示“运行中”。我在每台风机上加了一个30秒反馈监控定时器:Q0.0置位后,T40开始计时,30秒内如果I0.4(正转反馈)一直为0,说明接触器没吸合或者反馈线断了,程序立即把该风机故障位M3.0置位,并复位Q0.0。
故障锁存的梯形图逻辑是直接利用综合保护器常闭点:正常时I0.6为1,综合保护器动作后I0.6变0,PLC收到下降沿后置位M3.0。同时报警输出Q0.4置1,组态画面弹出“1#风机综合保护动作”。运维人员处理完现场,按下复位按钮才能把M3.0清除。
实际项目里综合保护器动作后,本身就是直接电气跳闸,这台风机立即停止,并不依赖PLC。PLC收到信号后做的是“记录+报警+禁止再启动”。这种“现场跳闸+PLC报警”的组合,比让PLC单独判断过载要安全得多,因为PLC判断故障时还要依赖电流采样,现场保护器直接电气跳闸是最快的。
4.6 网络5:多风机轮换和运行时间累计
两台风机如果每次都启动固定的一台,另一台可能几个月都不转,轴承锈死、绝缘受潮,到真正需要时反而启动不了。我在梯形图里给每台风机的运行反馈做累计,保存到保持性寄存器(如VD200/VD204),断电后数据不丢。自动联动时,先判断两台风机中累计运行时间短的那台优先启动;若浓度仍然超标,短时间后再启动第二台。轮换逻辑放在自动子程序里,上位机画面显示每台风机的运行小时数,方便维护排程。
具体到梯形图,就是一行“运行反馈为真时对运行时间做秒脉冲累加”,把秒数累加进双字寄存器,每隔一小时对小时寄存器加1。这里不建议用TON定时器做累计,因为TON在条件断开时会自动清零,达不到累计目的。用“秒脉冲+加法指令”才是正确写法。
5. 上位机组态画面设计:别只画一个好看的面板
5.1 变量字典:上位机和PLC的“翻译对照表”
组态画面不是画图就行,最关键的一步是把画面上的每个元素和PLC地址关联起来。我在组态软件(我用的是组态王,和WinCC思路一样)里建了一张变量表,以下是核心映射:
| 组态变量名 | PLC地址 | 数据类型 | 读写方向 | 画面用途 |
|---|---|---|---|---|
| 急停状态 | I0.0 | Bool | 只读 | 总览页急停红色闪动 |
| 模式就地/远程/自动 | I0.1/I0.2/I0.3 | Bool | 只读 | 模式指示 |
| 1#正转反馈 | I0.4 | Bool | 只读 | 风机图标变绿/转动 |
| 1#反转反馈 | I0.5 | Bool | 只读 | 风机图标反向 |
| 1#故障 | M3.0/M3.1 | Bool | 只读 | 报警列表 |
| CO浓度 | AIW0 | Int | 只读 | 棒图和趋势曲线 |
| VI能见度 | AIW2 | Int | 只读 | 棒图 |
| CO阈值 | VW100 | Int | 读写 | 参数设置页 |
| VI阈值 | VW102 | Int | 读写 | 参数设置页 |
| 1#正转/反转启动 | Q0.0/Q0.1 | Bool | 只写 | 单机操作按钮 |
| 复位 | M0.5 | Bool | 只写 | 故障复位按钮 |
建变量字典时我习惯在名称前加类型前缀和编号,比如“AI_CO_01”“DI_1FWD_FB”,这样画面、报表、脚本引用的变量不会乱。有人喜欢用中文名“CO浓度”,组态软件支持,但后面写脚本、导报表时经常因为全角半角出莫名其妙的问题,还是拼音缩写加英文前缀更稳。
5.2 四大页面结构:总览、单机控制、趋势、报警
我的组态画面分成四页。
系统总览页:一张隧道的简化断面图,两台风机画在顶部,图标用颜色区分状态——灰色停止、绿色正转、蓝色反转、红色故障。旁边放CO和VI两根实时棒图,数值直接显示,超过阈值时棒图变红并闪烁。这一页值班员大多数时间只看它,所以信息要尽量少而醒目,不要堆满仪表。
单机控制页:针对每台风机的操作面板,包含正转启动、反转启动、停止、故障复位四个按钮,以及正转/反转反馈灯、综合保护状态、运行时间显示。页面上做了权限:只有登录为“操作员”以上级别才能点按钮,普通“监视员”只能看不能动。这也是我的习惯——远程控制权限必须分级,不然谁都能点一下,现场就乱了。
趋势曲线页:CO和VI分别画实时趋势和历史曲线,趋势刷新周期1秒,历史数据保存30天。值班员从曲线能直观看到“早高峰CO超标→风机自动启动→浓度回落→延时停机”的完整过程,这也是后期写运行分析报告最需要的证据。这里要提醒:AIW0读出来是原始值,画趋势曲线前必须先按上面的转换公式换算成ppm,否则曲线单位不对。
报警页:列出实时报警和历史报警,报警内容包括设备名称、报警类型、触发时间、恢复时间,按“严重/一般”分级。火灾联动信号触发时报警级别是“严重”,报警声音和颜色都特殊设置,和普通故障报警区分开。
5.3 通讯配置和安全策略:PLC与组态软件握手
S7-200 SMART和上位机通过以太网交换数据。我把PLC的IP设为固定的192.168.0.2,上位机设192.168.0.10,同网段用直连网线或交换机连接。组态软件里选对应驱动(组态王选S7-200 TCP,WinCC配合S7-200 OPC通道),然后填上PLC IP、机架号、槽号。注意S7-200 SMART在S7协议里的TSAP参数要按驱动手册格式填,填不对连不上,初学者经常卡在这里。
安全策略分两层。通讯层:PLC和上位机之间我让报警和模拟量数据主动上传,控制指令必须由操作员点击按钮触发,避免画面刷新时误发指令。权限层:组态软件登录用户分“管理员/操作员/监视员”三档,所有操作带操作日志,记录谁在什么时间点了哪台风机。别小看这点,隧道运营有考核和责任追溯,出事后查日志能省很多扯皮。
6. 调试流程和我踩过的几个坑
6.1 送电前检查清单,照着打勾
项目做得再细,现场通电之前还是要按清单走一遍。我的习惯是先把主回路断开(QF拉掉),只给PLC和控制回路送电,在组态画面上挨个点按钮,看PLC输出继电器是否按程序动作、中间继电器是否吸合、接触器是否动作但电机不转。这一步能验证90%的逻辑问题,而且全程没有大电流,安全。
然后再合上主回路,逐一单机试转。试转时先点动几秒看转向对不对:正转时隧道内气流应该沿行车方向;反转时相反。转向不对,直接在接触器出线端换任意两相就行。但射流电机允许正反双向,转向错误的现象很直观,不要忽略。
6.2 模拟量校验:信号发生器是调试神器
CO/VI信号进PLC后,到底准不准,不能看仪表显示就算数。我用信号发生器给AI模块依次输出4mA、8mA、12mA、16mA、20mA,在PLC监控表里读AIW0,应该分别是5530、约11039、约16548、约22057、27648。如果差得远,检查隔离器设置、端子是否松动、屏蔽层是否单端接地。这一步骤一定要做透,后面自动联动不动作、误动作,八成是模拟量通道标定没做。
6.3 我踩过的几个坑,写出来供参考
第一个是正反转切换太急。最初我把换向延时设成2秒,结果现场试机时风机反转瞬间电机声音不对,电流明显冲高。后来改成停止后5秒再允许反向启动,电流曲线漂亮多了。具体延时按电机功率和风速惯性调整,但一定要有。
第二个是组态画面和PLC地址对不上。我在画面里把1#风机正转按钮关联到了Q0.2,试机时按了1#按钮,结果2#风机转了。这个错发生得很快,但查起来很痛苦,因为画面显示和PLC程序都是“正确”的。后来我统一在变量字典里加注释,画面按钮、PLC地址、柜内端子号三方核对,再没犯过。
第三个是自动模式下风机启停震荡。CO浓度在阈值附近波动时,风机容易频繁启停。我加了两道缓冲:一是启动前浓度超标持续10秒(T38延时),二是停止时浓度降低后还要延时15分钟(T39延时)。这15分钟不只是防震荡,也是隧道通风的实际需求:污染物虽然降了,但余味、余烟要继续吹散,直接停机后浓度很快反弹。
7. 往更大规模扩展时要注意什么
这套设计按2台风机讲,实际隧道可能一排布置8台、12台。扩展时逻辑完全一致,但有几个点必须提前想:
第一,IO不够怎么办:CPU不够就加扩展DO/DI模块,地址接着排。但建议每台风机的启动、反馈、故障占用的地址在程序里用符号寻址(比如把I0.4命名为“1F_FWD_FB”),扩展后新风机接着编号,程序不用大改。
第二,多风机分组联动:同一断面的射流风机要成组联动,不能单台乱开。我的做法是自动模式下按“组”为单位:组内所有风机同时启动,或者按轮流启动间隔3秒的顺序启动,避免瞬间母线压降太大。S7-200 SMART用变址寻址处理起来很方便。
第三,联动信号扩展:隧道系统往往还有风速风向检测、一氧化碳和能见度多断面测点、消防分区,甚至和交通监控联动。设计时PLC选型要预留以太网口和至少20%的IO余量,否则后续加装时硬件推倒重来,成本很高。
第四,画面扩展:多风机后组态画面建议做成分组页签:第一页总览,第二页1-4号风机操作,第三页5-8号风机操作,趋势页和报警页不变。变量多了以后,一定要用上面的变量字典规范,不然后期维护会疯掉。
这套系统后来运行了半年,自动模式下CO/VI联动启动准确,风机轮换正常,远程操作时点响应也快。我自己的体会是:隧道射流风机控制没有多高深的技术,真正拉开差距的是联锁细节、反馈监控和调试方法。把IO分配、接线图、梯形图和组态画面这四样东西按顺序理清楚,项目就成功了一大半。