ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

隧道射流风机PLC自动控制系统设计:IO分配、梯形图与组态

隧道射流风机PLC自动控制系统设计:IO分配、梯形图与组态 做隧道射流风机自动控制系统设计不是把几台风机按钮接到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分配、梯形图、组态画面都对着这张表来序号问题需要实现的逻辑涉及模块1CO浓度超标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点模拟量输入AICO浓度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按下时为0I0.1SA1就地模式转换开关触点DI1就地I0.2SA1远程模式转换开关触点DI1远程I0.3SA1自动模式转换开关触点DI1自动I0.41#风机正转反馈KM1辅助触点DI1正转接触器已吸合I0.51#风机反转反馈KM2辅助触点DI1反转接触器已吸合I0.61#综合保护故障电机综合保护器常闭触点DI正常1动作0I0.72#风机正转反馈KM3辅助触点DI同上I1.02#风机反转反馈KM4辅助触点DI同上I1.12#综合保护故障综合保护器常闭触点DI正常1动作0I1.2火灾强制信号消防联动输出干接点DI1火灾排烟模式Q0.01#风机正转启动中间继电器KA1DO继电器触点驱动KM1线圈Q0.11#风机反转启动中间继电器KA2DO驱动KM2线圈Q0.22#风机正转启动中间继电器KA3DO驱动KM3线圈Q0.32#风机反转启动中间继电器KA4DO驱动KM4线圈Q0.4综合报警输出声光报警器DO任何风机故障时置1Q0.5允许运行指示柜面指示灯DO运行允许时置1AIW0CO浓度CO检测仪4-20mA输出AI量程0~300ppmAIW2VI能见度能见度检测仪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做模拟量传输还有个好处断线能识别。信号线断了电流掉到0mAPLC侧读到的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.00说明系统正常 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对应553020mA对应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变0PLC收到下降沿后置位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.0Bool只读总览页急停红色闪动模式就地/远程/自动I0.1/I0.2/I0.3Bool只读模式指示1#正转反馈I0.4Bool只读风机图标变绿/转动1#反转反馈I0.5Bool只读风机图标反向1#故障M3.0/M3.1Bool只读报警列表CO浓度AIW0Int只读棒图和趋势曲线VI能见度AIW2Int只读棒图CO阈值VW100Int读写参数设置页VI阈值VW102Int读写参数设置页1#正转/反转启动Q0.0/Q0.1Bool只写单机操作按钮复位M0.5Bool只写故障复位按钮建变量字典时我习惯在名称前加类型前缀和编号比如“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 TCPWinCC配合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分配、接线图、梯形图和组态画面这四样东西按顺序理清楚项目就成功了一大半。
返回列表