尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

S7-200燃油锅炉控制:步号状态机与EM235/MM440调试

S7-200燃油锅炉控制:步号状态机与EM235/MM440调试 简介这是一份面向自动化、电气工程及其自动化专业学生与PLC初学者、工程实践课程的锅炉控制系统设计文档。围绕PLC与DCS控制思路以燃油锅炉为对象涵盖启动停止流程、燃烧异常处理、水位高低控制、油温预热与喷油联动、蒸汽压力监测等典型控制要求可作为课程设计、实习报告或毕业设计的参考模板。资源包内含1个doc文档约1.84MB结构完整包含实习任务书、技术要求、进度安排、主要参考资料及目录章节便于直接查阅与二次编辑。文档以实习报告形式呈现从工程实践目的、意义到技术要求与调试安排均有交代读者可据此理解燃油锅炉PLC控制系统的整体设计脉络并复用其中的控制逻辑与报告框架。目前已有195人学习适合需要快速搭建锅炉PLC控制方案、梳理控制逻辑与撰写设计说明的读者参考借鉴。1. 燃油锅炉上继电器柜还能用吗S7-200 方案的第一性理由一个酒店后勤的 2 吨燃油锅炉原柜子里是二十多只中间继电器和时间继电器串出来的点火时序。冬天负荷一上来预热定时器漂个十几秒点火变压器和瓦斯阀就错拍轻则不点火重则爆燃报警。这类现场我见过不止一次根子不在继电器坏没坏而在于时序靠 RC 或电磁式延时元件层层堆叠没有统一时钟也没有联锁优先级——三四个条件同时成立时谁的触点先闭合完全看运气。基于 PLC 的锅炉控制系统把这件事捋直了一台 S7-200 CPU224 加一块 EM235 模拟量模块把预热、点火、喷油建立、稳定燃烧、停炉吹扫、水位上下限、蒸汽压力越限、油温水温判断全部写进梯形图时序交给定时器统一给联锁用步号管理谁先谁后有明确顺序。它和 DCS 的边界也很清楚——单台锅炉、几十个 I/O 点PLC 是更划算的选择真要十几台锅炉联网做集中监控、还要做趋势和报表才轮到 DCS 上场。这套设计的输入输出点不多但每一个都直接对应安全动作所以地址表必须先钉死再谈程序。下面从工艺要求怎么翻译成步号开始拆。2. 把工艺要求翻译成步号与 I/O 表锅炉燃烧时序的状态机建模2.1 从工艺描述到 I/O 地址分配原始技术要求里有五条硬指标启动后预热 1min 才点火、点火持续 3s 后喷油、喷油 3s 后关点火变压器和瓦斯阀、停机时鼓风机续吹 15s、水位和蒸汽压力越限要能自动切断并自动重投。这五条全部落在开关量上模拟量只负责水温和油温判断。先落地址表名称代号地址类型说明启动按钮SF1I0.0数字输入常开按下启动停止按钮SF2I0.1数字输入常开按下停炉水位上限开关BG1I0.2数字输入浮球开关到上限闭合水位下限开关BG2I0.3数字输入浮球开关到下限闭合蒸汽压力开关BPI0.4数字输入越限闭合热继电器BBI0.5数字输入过载时断开水温变送器—AIW0模拟输入4~20mA量程 0~500℃油温变送器—AIW2模拟输入4~20mA量程 0~100℃燃油预热器KF1Q0.0数字输出接触器线圈鼓风机QA1Q0.1数字输出Y90L-41.5kW点火变压器KF2Q0.2数字输出高压点火瓦斯阀MB1Q0.3数字输出母火喷油器电磁阀MB2Q0.4数字输出主油路进水阀MB3Q0.5数字输出出水阀MB4Q0.6数字输出减速信号MB5Q0.7数字输出接 MM440 的 DIN2变频器给定—AQW4模拟输出0~10V 对应 0~50Hz原始任务书按 5 点开关量输入、7 点输出选的 CPU224实际接线时把热继电器和变频器故障接点也算进来14 入 10 出的本机点数仍然留了余量后面要加火焰检测器或燃油压力开关直接挂扩展模块就行。2.2 用步号状态机替代定时器串联最常见的写法是把 T37 串到 T38 再串到 T39链式往下推。这种写法在只跑一次的顺序控制里没问题放到锅炉上就出毛病停机时定时器要逐个复位漏一个下次启动就少走一段故障中断后恢复时间要重新补调试的时候盯着程序状态看半天也不知道此刻走到哪一步。我一般用整型变量 VW100 存步号每一步输出由「运行标志 AND 步号比较」驱动步转移条件只在一处写。步号用 10、20、30 这种带间隔的编号后面要在两步之间插一段就插 15、25不用重排。上电初始化放一段// 首次扫描初始化清步号、清标志、清输出映像 LD SM0.1 // 仅第一次扫描接通 MOVW 0, VW100 // 步号归零回到待机步 R M0.0, 1 // 清系统运行标志 R M10.0, 1 // 清传感器故障标志 R M10.1, 1 // 清自动重投请求 R Q0.0, 8 // 一次复位 Q0.0~Q0.7防上电残留输出R Q0.0, 8从 Q0.0 开始连续复位 8 个位这是 S7-200 位复位指令带个数的写法比写八行干净。注意这一步必须放在 OB1 最前面否则上电瞬间若输出映像里残留上次的置位状态鼓风机或喷油阀会先动作一下再被清掉。2.3 步转移条件表把五条工艺要求拆成八步每步的进入、输出、退出写清楚程序基本就是照抄步号阶段进入条件该步输出退出条件0待机上电或吹扫结束全断I0.0 按下且无故障10燃油预热启动Q0.0T37 到60s20点火预热结束Q0.1 Q0.2 Q0.3T38 到3s30喷油建立点火结束油温合格Q0.1 Q0.4T39 到3s40稳定燃烧喷油建立结束Q0.0 Q0.1 Q0.4按停止或出现异常50停炉吹扫停止按钮Q0.1T40 到15s后回步 060故障吹扫压力或水位越限Q0.1T42 到15s后进步 7070故障待命吹扫结束全断异常消失并确认 5s 后回步 10这张表的价值在于调试时只要在状态表里监视 VW100就知道锅炉走到哪一步比逐个看定时器位直观太多。2.4 水位浮球与压力开关的安全侧约定水位控制的判据容易被写反。浮球开关装在下限位置和上限位置正常运行时水位在下限之上、上限之下所以 BG2下限是闭合的、BG1上限是断开的。于是「低水位」的判据是 NOT I0.3「高水位」的判据是 I0.2。如果现场用的是常闭型浮球这两个判据全部要取反。蒸汽压力开关同理选越限闭合常开接点便于程序直接判断若用常闭接点程序里必须取反否则高压时反而不报警。这个映射关系我建议在接线前写进图纸会签单别等调试时才发现逻辑反了。停炉按钮和急停另外用常闭接点串进输出回路的接触器线圈做一层与程序无关的硬冗余。3. S7-200 梯形图实现预热 60s、点火 3s、吹扫 15s 的定时器网络3.1 定时器时基选择与 PT 值换算S7-200 的定时器分三档时基选错时基会造成 PT 值溢出或分辨率浪费定时器号时基最大定时本设计用途PT 取值T32、T961ms32.767s短脉冲备用—T33~T36、T97~T10010ms327.67s备用—T37~T63、T101~T255100ms3276.7s预热、点火、吹扫600 / 30 / 150工艺时间全是秒级选 100ms 时基就够分辨率 0.1s误差在允许范围内。用 1ms 时基处理 60s 直接溢出PT 最大只能到 32767 即 32.767s。换算方式60s → 6003s → 3015s → 150故障消失确认 5s → 50。3.2 预热、点火、喷油三段时序// Network 1启动——升沿触发进入预热步 LD I0.0 // 启动按钮 SF1 AN I0.1 // 停止按钮未按下 AN M10.0 // 无未确认故障 EU // 上升沿只执行一次 MOVW 10, VW100 // 步号 10燃油预热 S M0.0, 1 // 置系统运行标志 // Network 2预热步输出与 60s 定时 LD M0.0 AW VW100, 10 // 当前处于预热步 Q0.0 // 燃油预热器 KF1 通电 TON T37, 600 // 100ms × 600 60s // Network 3预热结束转点火步 LD T37 AW VW100, 10 MOVW 20, VW100 // Network 4点火步——鼓风机、点火变压器、瓦斯阀同时输出 LD M0.0 AW VW100, 20 Q0.1 // 鼓风机 QA1 送风 Q0.2 // 点火变压器 KF2 Q0.3 // 瓦斯阀 MB1 TON T38, 30 // 持续 3s // Network 5点火结束转喷油步 LD T38 AW VW100, 20 MOVW 30, VW100 // Network 6喷油步——油温合格才喷油再持续 3s LD M0.0 AW VW100, 30 A M0.2 // M0.2 油温高于 25℃ Q0.4 // 喷油器电磁阀 MB2 TON T39, 30 // 3s // Network 7建立稳定燃烧 LD T39 AW VW100, 30 MOVW 40, VW100 // Network 8稳定燃烧步输出 LD M0.0 AW VW100, 40 Q0.0 // 预热器保持 Q0.1 // 鼓风机保持 Q0.4 // 喷油泵保持逻辑说明每个输出都串了运行标志和步号比较步号一跳走输出自动断开不需要在别处补复位指令这是步号法最省心的地方。Q0.2 和 Q0.3 在步 40 不参与输出等效于「持续 3s 后点火变压器和瓦斯阀同时关闭」。参数说明T37 的 PT600 对应工艺要求的 1minT38、T39 的 PT30 对应 3s。注意 Network 6 里 M0.2 串在输出上如果油温不合格Q0.4 不输出但 T39 照样计时3s 后步号仍然会跳到 40——这是一个真实的坑正确做法是把 T39 的使能也串上 M0.2或者在步 30 加「T39 到且 M0.2 为 1」才转移。锅炉现场宁愿多等几秒也不能让程序记录成已喷油。3.3 停机吹扫与故障联锁// Network 9停止按钮——进入停炉吹扫步 LD M0.0 A I0.1 EU MOVW 50, VW100 // Network 10吹扫步只保留鼓风机15s LD M0.0 AW VW100, 50 Q0.1 // 预热器、喷油泵均已断开 TON T40, 150 // 15s // Network 11吹扫结束回待机 LD T40 AW VW100, 50 R M0.0, 1 MOVW 0, VW100 // Network 12异常联锁——压力越限、水位越限 LD I0.4 // 蒸汽压力开关 BP 越限 O I0.2 // 水位到达上限 ON I0.3 // 水位低于下限下限开关断开 A M0.0 // 仅运行中才判 EU MOVW 60, VW100 // 进入故障吹扫步 S M10.1, 1 // 记下需要自动重投 // Network 13故障吹扫步 LD M0.0 AW VW100, 60 Q0.1 TON T42, 150 // 15s 后停风 // Network 14吹扫结束进故障待命步 LD T42 AW VW100, 60 MOVW 70, VW100 // Network 15异常消失并确认 5s自动重新点火 LD M10.1 AN I0.4 AN I0.2 A I0.3 TON T41, 50 // 5s 防抖确认 LD T41 AW VW100, 70 MOVW 10, VW100 // 回预热步完整重走点火程序 R M10.1, 1逻辑说明故障时不是简单地把输出拉低而是切到吹扫步把炉膛里残余可燃气体吹出去再进待命步。压力或水位信号在现场经常抖动所以重投前加了 5s 确认延时避免压力开关一抖就反复点火。重投时回到步 10 而不是步 20因为重新点火必须重新预热燃油否则雾化不良。3.4 水位控制与喷油泵双速切换// Network 16低水位——开进水阀、关出水阀 LDN I0.3 // 水位低于下限 S Q0.5, 1 // 进水阀 MB3 打开 R Q0.6, 1 // 出水阀 MB4 关闭 // Network 17高水位——开出水阀、关进水阀 LD I0.2 S Q0.6, 1 R Q0.5, 1 // Network 18水温高于 90℃发减速信号 LD M0.0 AW VW100, 40 AW AIW0, 11008 // 90℃ 对应数字量标定见第 4 章 Q0.7 // 送 MM440 的 DIN2切到低速段 // Network 19油温高于 25℃ 才允许喷油 LDW AIW2, 12800 // 0~100℃ 量程25℃ 对应 12800 M0.2逻辑说明水位用置位/复位成对写进水阀和出水阀互锁不会出现两个阀同时开的工况。这里用 S/R 而不是直接输出是因为液位控制本身有滞后阀门需要保持状态直到对侧开关动作。参数说明11008 和 12800 是模拟量换算后的阈值不是随意取的数——90℃ 在 0~500℃ 量程下对应 1100825℃ 在 0~100℃ 量程下对应 12800。等第 4 章标定程序跑通后建议把这两个判断改成浮点比较LDR VD200, 90.0可读性更好也免得别人改量程时忘记同步改常数。4. EM235 标定与 MM440 调速4~20mA 到工程量的换算与参数设置4.1 EM235 量程配置与接线注意EM235 是 4 路模拟输入加 1 路模拟输出量程由模块侧面的 SW1~SW6 拨码决定SW6 区分单极性和双极性。常用的几档输入方式SW1SW2SW3SW4SW5SW6数字量范围0~5VONOFFOFFOFFONON0~320000~10VOFFONOFFOFFONON0~320000~20mAONOFFOFFONONOFF0~320004~20mAOFFONONONONOFF6400~32000本设计两块变送器都是 4~20mA 接法所以拨到 4~20mA 档输入范围是 6400~32000 而不是 0~32000这个偏移量是所有换算的基础搞错就会出现「水还没烧就有温度」。两个容易被忽略的点拨码开关必须在断电状态下改上电后改不生效没用到的输入通道不能悬空要把 IN 和 IN- 短接并接到 AGND否则悬空通道读数乱跳还会通过内部电路影响相邻通道。4.2 模拟量标定程序标定公式按线性插值写工程量 (N - 6400) × (量程上限 - 量程下限) / (32000 - 6400) 量程下限水温量程 0~500℃每 1℃ 对应 51.2 个数字量油温量程 0~100℃每 1℃ 对应 256 个数字量。程序按「整数 → 双整数 → 实数」的顺序做别直接用整数乘除500 乘上去立刻溢出 32767。// 水温通道 AIW04~20mA量程 0~500℃ LD SM0.0 ITD AIW0, VD100 // 整数 → 双整数保留符号位 DTR VD100, VD104 // 双整数 → 实数 -R 6400.0, VD104 // 扣掉 4mA 对应的零点偏移 *R 500.0, VD104 // 乘量程上限 /R 25600.0, VD104 // 除以满量程宽度32000-6400 MOVR VD104, VD200 // VD200 水温单位 ℃ // 油温通道 AIW24~20mA量程 0~100℃ LD SM0.0 ITD AIW2, VD108 DTR VD108, VD112 -R 6400.0, VD112 *R 100.0, VD112 /R 25600.0, VD112 MOVR VD112, VD204 // VD204 油温单位 ℃ // 用于变频器给定的水温偏差运算 LD SM0.0 MOVR 90.0, VD300 // 水温给定值 -R VD200, VD300 // VD300 90 - 实测水温 *R 640.0, VD300 // 每 1℃ 偏差给 640 个数字量约 1Hz ROUND VD300, VD304 // 实数 → 双整数四舍五入 DTI VD304, VW306 // 双整数 → 整数 LDI VW306, 32000 MOVW 32000, VW306 // 上限钳位防止溢出 LDI VW306, 0 MOVW 0, VW306 // 下限钳位 MOVW VW306, AQW4 // 送 MM440 模拟量输入参数说明-R 6400.0, VD104在 S7-200 里执行的是 VD104 减去 6400.0 后回存 VD104不是把 6400 减掉 VD104方向别弄反。ROUND 是把实数四舍五入成双整数再经 DTI 转成 16 位整数才能写给 AQW4。钳位那两行是关键——如果水温高于 90℃偏差变负数不加下限钳位就会把负数写进 AQW4模拟量输出模块按补码解释变频器会收到满速信号方向正好相反。4.3 MM440 参数组与给定通道喷油泵用 MM440 调速主机参数按 1.5kW、380V 的 Y90L-4 填参数设定值含义P00033访问等级专家P0100050Hz 制功率单位 kWP0304380电动机额定电压 VP03053.7电动机额定电流 A按铭牌填P03071.5额定功率 kWP031050额定频率 HzP03111400额定转速 r/minP07002命令源端子排P10002频率设定源模拟量输入P10800最小频率P108250最大频率P112010加速时间 sP112110减速时间 sP07011DIN1ON/OFF1P070215DIN2固定频率直接选择P100125固定频率 1低速段 25HzP10161固定频率选择模式直接选择Q0.7 接 MM440 的 DIN2用它切换固定频率 P1001AQW4 接模拟量输入做连续微调。这两路不要同时启用——P1000 切到模拟量给定时DIN2 又去选固定频率最终频率取决于 MM440 内部的叠加规则现场调起来会莫名其妙。稳妥做法是要么纯模拟量给定要么纯多段速二选一。只有一台变频器时用模拟量最省事如果后面要一条 RS485 总线挂多台 MM440就得换 S7-200 的 USS 协议库用 USS_INIT、USS_CTRL、USS_RPM_W 读写参数变频器侧配 P2010 波特率、P2011 站号、P2012/P2013 的 PZD 长度、P2009 数据格式。多机轮询时注意给每台留足响应超时S7-200 的 USS 库一次只处理一个从站扫描周期会被拉长锅炉这种安全相关回路建议把通讯参数和联锁参数分开写别把联锁挂在通讯回来的位变量上。4.4 断线检测与电源抗干扰4~20mA 断线时 EM235 读数会掉到 0 附近程序如果不判就会当成「0℃」水温永远偏低喷油泵一直高速跑。加一条断线检测// 模拟量断线检测低于 4mA 对应值判为传感器故障 LDW AIW0, 6400 O AIW2, 6400 // 两路任一断线 S M10.0, 1 // 置故障标志参与启动联锁电源侧按原设计用隔离变压器给 PLC 供电S7-200 自带的 24V 传感器电源容量不够时加外部 24V 电源但两个电源不能并联公共端 M 要连在一起。模拟量信号线用屏蔽双绞线屏蔽层单端接地变频器输出电缆和模拟量线分槽走交叉处尽量垂直这几条做到位AIW0 的读数波动通常能从几十个字降到个位数。5. 上机调试与故障定位状态表监视、强制输出与组态联调程序写完之后不要急着接负载先在 STEP 7-Micro/WIN 里用状态表把时序跑一遍。监视 VW100、T37、T38、T39 四个量就能完整看到步号从 10 跳到 20 再跳到 30、40 的过程。定时器在状态表里可以直接看当前值比看触点状态直观。调试分三段做第一段只接指示灯验证时序第二段接中间继电器和接触器线圈验证负载动作顺序第三段接传感器和变频器验证模拟量和联锁。第二段最容易发现问题——如果某个接触器吸合时 PLC 突然复位基本是线圈没加浪涌抑制在接触器线圈两端并 RC 阻容或压敏电阻就能解决。现象常见原因排查动作上电后鼓风机瞬间动作一下输出映像残留初始化没清输出检查 SM0.1 里的复位段是否在最前预热结束不点火T37 使能未串运行标志或 PT 值写成 6监视 T37 当前值是否递增喷油步跳过后无油油温阈值与标定不匹配状态表读 AIW2 实际数字量停机后鼓风机不吹扫停止信号被步号条件屏蔽检查步 50 的进入条件水温显示负数4~20mA 档位拨错成 0~20mA核对 SW1~SW6 并断电重启变频器频率反向AQW4 未做下限钳位监视 VW306 是否为负值用 MCGS 做组态画面时通过 PPI 电缆读 VW100 做工艺流程图动画读 VD200、VD204 显示水温油温几个关键输出点用 Q 区地址映射指示灯。组态画面里的按钮不要直接写 I0.0I 区在 S7-200 里是只读的过程映像要用 M 区或者 V 区中间变量在程序里把中间位并到启动逻辑上。最后一个技巧把每种故障现象和当时的 VW100 步号一起记进调试日志。锅炉系统的偶发故障往往几个月才出一次等到再出问题时能拿当时的步号去反查是哪个转移条件没满足——这一步比事后翻程序快得多。现场调试时如果模拟量读数一直抖先用一根短接线在 EM235 端子上把 IN 和 IN- 短接看读数能不能稳定在 6400 附近能稳定就是现场传感器或走线的问题不能稳定就是模块量程拨码或供电的问题这样一刀切下去排查方向立刻就窄了。本文还有配套的精品资源点击获取
返回列表