三菱PLC在水处理毕业设计中的应用:从控制逻辑到工程实践
做毕业设计时,我原本只想“让水泵转起来”,结果越踩坑越发现:把课本上的“起保停”直接搬进现场,根本挡不住液位乱跳、信号抖动、阀体不回讯这些“老油条”。下面把用三菱FX3U做小型污水处理站的完整复盘写下来,给后来人当垫脚石。整份代码在实验室跑了三个月,没死机,也没被答辩老师怼“这逻辑现场敢用吗”,算是交了一份及格卷。
1. 学生党见的三类坑
- 泵阀互锁只靠“常闭点”——没硬件备份,PLC一扫描异常就直通。
- 液位开关直接驱动泵启停——水面一晃就啪啪反复起停,接触器哭给你看。
- 模拟量当数字量用——pH计输出4-20 mA,结果梯形图只判“>10 mA=合格”,现场标定全废。
- 通信全靠“感觉”——HMI站号、PLC协议、485终端电阻说空就空,调通一次就再不敢重启。
一句话:没把“现场会出妖”写进逻辑,毕业设计就只能活在PPT里。
2. 技术选型:FX3U vs Q 系列
| 维度 | FX3U-(CPU 40 MR) | Q03UDE |
|---|---|---|
| IO 点数 | 本体 24 DI/16 DO,最多 256 点 | 本体 1024 起步 |
| 模拟量 | 需加 FX3U-4AD 模块,单台 4 路 | 可插 Q64AD,单基架 8 块 |
| 成本 | 整套 1200 元 | 单 CPU 就 2500+ |
| 尺寸 | 90 mm 宽,配电箱随便塞 | 200 mm 宽,必须背板 |
| 教学资料 | 遍地例程,B 站一搜一把 | 官方手册厚,例程少 |
结论:日处理量 < 200 t、控制对象 < 20 点的教学原型,FX3U 足够;真想上“冗余+以太网”,再考虑 Q 系列,否则预算和复杂度双双爆表。
3. 核心实现:GX Works2 梯形图模块化
3.1 硬件拓扑
从左到右:断路器 → 24 V 开关电源 → FX3U-40MR → FX3U-4AD → 隔离栅 → 液位、pH、温度传感器。右侧继电器板做硬件互锁,急停硬线串主接触器线圈。
3.2 软件分层
- 信号滤波:模拟量连续采样 5 次,去掉最大最小再平均;液位开关用 1 s 延时判稳。
- 设备互锁:泵→阀顺序启动,阀不到位泵禁止运行;硬件回路用继电器常闭点串回 PLC 输入,实现“双保险”。
- 启停逻辑:把“手动/自动/停止”三态做成一字节状态寄存器 D0,任何模式切换都先进入“停止”过渡,防止误动作。
- 故障报警:分三级——轻(只写 HMI)、中(停对应设备)、重(急停全断)。报警字 D100 每 500 ms 循环刷新,HMI 直接映射。
3.3 模拟量标定公式
4AD 模块量程 0-32000 对应 4-20 mA。以 0-2 m 液位变送器为例:
液位(m) = (D101 - 6400) × 2.0 / 25600结果存 D102,留两位小数,方便 HMI 直接显示 0.01 m 精度。
4. 带注释的 LAD 代码(多级液位联锁)
下面片段在 GX Works2 测试通过,可直接导入。I/O 定义见表,注释写在 STL 视图里,方便阅读。
| 符号 | 含义 |
|---|---|
| X0 | 低液位开关 |
| X1 | 高液位开关 |
| X2 | 超高液位开关 |
| Y0 | 进水阀 |
| Y1 | 提升泵 |
| D102 | 实时液位(m) ×100 |
| M0 | 手动允许 |
| M10 | 故障锁存 |
( 网络 1 ) // 液位信号滤波 LD X0 OUT T0 K10 // 1 s 延时 LD T0 SET M1 // 低液位有效标志 ( 网络 2 ) // 超高强制停车 LD X2 OR M10 SET M10 RST Y1 // 立即停泵 RST Y0 // 关阀 ( 网络 3 ) // 正常启停链 LD M1 AND M0 // 手动允许 ANI M10 AND X1 // 未到高液位 OUT Y1 OUT Y0要点:超高信号 X2 不经过 PLC 扫描,直接硬件继电器断主回路,实现 SIL1 级安全。
5. 可靠性与抗干扰
- 急停回路:采用施耐德 RXM 小型继电器,常闭触点串主接触器线圈;PLC 只监视急停输入,不承载断流任务。
- 电源隔离:24 VDC 与 220 VAC 分桥架;开关电源 PE 端单独接柜壳,不与信号 0 V 混排。
- 模拟量布线:4AD 模块用双绞屏蔽线,屏蔽层在 PLC 侧单端接地;现场侧不接地,防止地环。
- 环境干扰:变频器与 PLC 分柜安装,载波频率 8 kHz 以上,输出电缆加磁环,降低差模噪声。
6. 生产级避坑清单
- 上升沿别滥用:FX3U 的 P 指令每周期最多 32 个,满额后会出现“丢边”现象;大批量计数改用 DHSC 高速区。
- 定时器累积误差:T0-T199 是 100 ms 档,连续运行 24 h 会漂移 8 s;做加药计时请用特殊寄存器 D8013(秒脉冲)做外部校准。
- 掉电保持:重要累计值放在 D200 以后,参数里勾选“电池保持”,否则一断电运行时间全清零,答辩现场翻车。
- 在线修改:毕业设计常边调边改,记得把“运行中写入”设为“允许”,但改完立刻做 ROM 写入,防止掉电丢程序。
7. 把课程设计升级成可部署原型
- 先画 P&ID,再列 IO 表,逻辑与工艺一一对应,避免“多出一根线”。
- 用 Excel 做“信号-地址-注释”三对照,GX Works2 直接导入全局标签,减少手敲。
- 把 HMI 做成交互式:参数修改需二次确认,报警附带帮助页,老师验收时点两下就能看懂。
- 留好 20 % 空 IO、30 % 内存,方便后续加“浊度”“流量”等扩展模块。
- 最后做 24 h 老化:用定时排水-补水模拟工况,记录所有开关量动作次数,验证继电器与程序是否同步。
当你亲手把一箱水从脏到净,又看到 PLC 在小屏上稳稳地刷新数据,就会明白:课本里的“起保停”只是起点,真正的工程藏在每一根保险丝、每一个滤波常数里。把上面的代码扔进 FX3U,再改一改工艺参数,让它在你的实验台上跑起来——只有听见接触器“嗒”一声,你才会相信,逻辑真的活成了系统。