电工学 PLC 避坑:为什么你写的程序下载后输出一直不动?6 个原因排查

程序写得没问题,下载也成功了,可是输出灯就是不亮、接触器就是不吸合? 别急着怀疑程序——这种情况 90% 都是硬件接线、模式状态、地址映射这几个常见坑。
本文按照从外到内、从硬件到程序的排查顺序,帮你 5 分钟定位问题。
PLC 没切到 RUN 模式
最常见、最容易忽略的低级错误
很多 PLC(西门子 S7-200/1200、三菱 FX 系列等)下载完成后会自动停在 STOP 模式,输出全部锁死为 0。模式开关或软件状态没切到 RUN,程序再正确也是白搭。

✅ 排查方法
① 看 PLC 面板 RUN 灯是否常亮(绿色);② 模式开关拨到 RUN 档;③ 软件中(如博途、GX Works)右键 PLC → 选择”启动”或”RUN”。
输出公共端没接电源
PLC 输出”通断只是个开关”,本身不带电
新手最容易掉的坑!PLC 的输出端(继电器型 COM、晶体管型 1L+/1M)必须外部接 24V 电源,输出点才能驱动负载。如果 COM 端悬空,程序逻辑再正确,负载也不会动。

🚨 必查项
① 万用表测 1L+ 和 1M 之间是否有 24V;② 看输出指示灯是否随程序变化(亮代表 PLC 内部已动作);③ 灯亮负载不动 → 外部回路问题;灯不亮 → PLC 程序或模式问题。
程序地址与实际接线不一致
“我编的是 Q0.0,电工接的是 Q0.1”
程序里输出地址写的是 Q0.0,但现场电工把负载接到了 Q0.1 端子上——这种”程序与图纸不同步”的问题,新工程师踩坑率超 80%。

🔍 排查方法
① 在线监控时强制 ON 程序中的输出点,看哪个端子的指示灯亮;② 对照接线图,确认负载实际接在哪个端子;③ 修改程序地址 或 重新接线,二选一即可。
输出点烧毁 / 保险熔断
最常见于”接错线烧过一次”的旧设备
继电器型输出触点经过反复大电流冲击容易粘连或烧断;晶体管输出被感性负载反向电势击穿也很常见。表现是:程序中输出点亮了,但端子上没电压输出。

🔧 验证方法
① 在线强制该输出点 ON,万用表测端子对 1M 的电压;② 正常应为 24V,读数 0V 或波动 → 输出已烧;③ 解决:把程序地址改到备用空闲点(如 Q0.7),重新接线即可。
程序逻辑互锁 / 复位条件没满足
SET 之后被另一行 RST 立刻复位
当输出被另一段程序中的 RST 指令、互锁触点、急停信号持续置 0,外部表现就是”输出永远不动”。这种坑要靠在线监控逐行扫描才能发现。

🧠 排查思路
① 全局搜索所有用到该输出点的指令(SET / RST / 输出线圈);② 在线监控状态,看哪一行的扫描结果在持续置 0;③ 检查急停、互锁、模式选择触点是否处于错误状态。
在线”强制”功能没解除
调试时强制为 0,下载后忘了清掉
西门子博途、三菱 GX Works 都有强制(Force)功能,可以无视程序逻辑直接锁定 I/O 状态。如果调试时把 Q0.0 强制为 0,断电重启都不会清除,必须手动取消强制。

💡 一键解决
① 看 PLC 面板 “FRCE / FORCE” 灯是否点亮(黄色);② 软件中打开监控表 / 强制表,停止全部强制;③ 西门子按 Ctrl+Shift+F5 也可一键取消。
📊 5 分钟排查总流程


💬 互动话题:你踩过哪些 PLC 输出不动的坑?欢迎在评论区分享你的故障案例和排查心得!
👍 觉得有用?点个 在看,转发给身边的电气工程师朋友~
—— 工控技术平台 · 让工控更简单 ——
夜雨聆风