1. 为什么PLC故障排查总卡在“按下复位按钮没反应”我见过太多人——包括早年的我自己——一遇到PLC停机就先查程序对着梯形图翻半天或者直接按复位、断电重启等报警灯自己灭。运气好能救回来运气不好同一个故障一天犯三次谁也说不清根因。PLC故障排查最要命的从来不是“不会查”而是没有一套固定的排查逻辑导致每次都在盲目试错。先说清楚PLC故障排查是什么它是在系统停机或误动作时通过观察现象、调取诊断信息、测量关键点位、分析程序逻辑最终定位故障源并修复的一套方法论。它适用于设备维护工程师、自动化调试人员、车间设备管理员也适用于刚入行的电气技术员——只要你跟产线设备打交道这套方法迟早用得上。排查的目标不是“让设备尽快转起来”而是“弄清楚它为什么停然后让它健康地转起来”。这两者差别非常大前者是按下葫芦浮起瓢后者是根治。所以这篇文章我不会只罗列“先查电源、再查PLC、再查输出”这种谁都会背的流程而是把每一步背后的判断依据、常见误区和实测过的排查链路完整写出来。你可以把它当作一份可以直接带到现场对照执行的排查手册。这套方法的核心可以浓缩成十六个字先外后内、先易后难、先静后动、先电源后逻辑。后面所有步骤都是这十六个字的展开。等你真正把它们内化成肌肉记忆再遇到设备停摆你就不会慌而是像医生问诊一样有条不紊地一个症状一个症状排除。2. 排查前必须捋清楚的“三问三看”框架很多故障排查失败不是因为技术不够而是因为信息收集阶段就漏了关键细节。故障发生后你冲到现场第一件事不是打开控制柜而是先做三件事问、看、闻。我把这个阶段叫“三问三看”它是整个排查链路的地基。2.1 三问故障现场就是最好的说明书第一问问操作工故障发生前设备在做什么是正常运行中突然停机还是刚启动就报错是有人按了某个按钮之后才出现的还是到了固定位置必停操作工不一定懂技术但ta描述的现象往往直接决定排查方向。比如“每次加工到第三个工件就停”这指向循环计数或位置检测比如“换了料卷之后就开始报警”那大概率跟传感器调整有关。第二问问自己这个故障是第一次出现还是周期性出现第一次出现优先怀疑偶发性干扰、接线松动、硬件损坏周期性出现优先怀疑机械磨损、传感器漂移、程序逻辑缺陷。这两种情况的处理策略完全不同偶发故障靠记录和监测抓证据周期故障靠触发条件复现问题。第三问问系统PLC面板上的报警代码是什么这一步看起来最简单但很多人直接跳过因为他们觉得报警代码“看不懂”。实际上每个品牌的PLC都有报警码对照表从硬件错误到程序看门狗超时都有明确编号。哪怕看不懂具体含义把报警码原原本本记录下来后续查手册、问售后、搜资料都方便。用手机拍下报警画面是基本功别偷懒。2.2 三看眼睛比万用表先用上第一看控制柜整体状态柜门是否关好、有没有异味、指示灯全貌如何、断路器有没有跳闸。这一步能快速排除最基础的供电问题。我见过排查了半天程序最后发现只是进线断路器跳了推回去就好。第二看PLC模块指示灯每个品牌的PLC模块上都有一排LED——电源指示、运行指示、故障指示、输入/输出通道指示。这些灯的组合本身就是一套诊断语言。比如某品牌PLCRUN灯灭但POWER灯亮说明CPU停止运行ERR灯慢闪可能是程序丢失快闪可能是硬件故障I/O模块的通道灯如果该亮不亮、该灭不灭直接指向输入信号缺失或输出负载异常。第三看机械设备的位置状态气缸是否到位、皮带是否跑偏、限位开关是否被撞坏、料位是否堵住。很多时候PLC程序完全没问题纯粹是机械机构卡死导致信号反馈不对程序据此停机。所谓“先外后内”就是先把机械设备、传感器这些外设检查一遍再深入到PLC内部逻辑。“闻”这个动作也不能省闻有没有焦糊味、有没有电解电容爆裂的酸味。这个信号一旦出现直接指向硬件损坏区间就不用按常规流程慢慢量了。我把“三问三看”做成了一个排查记录表在实际带人时特别好用。列头分别是时间、操作工描述、报警代码、指示灯状态、机械位置、天气/温度、最近改动。这个表填完之后故障类型基本能缩小到一个很小的范围。3. 电源系统排查从进线到24V直流输出的完整链路电源故障是所有PLC故障中占比最高的一类但也是最容易被跳过的。多数人的习惯是看到PLC有电就默认电源没问题——这是个很大的误区。电源问题不只是“有电没电”还有电压波动、纹波干扰、瞬间跌落这些都足以让PLC重启、程序跑飞或误动作。3.1 电源排查的三个测量节点节点一是主电源进线端。用万用表交流挡测L-N电压确认在额定范围内。这里要注意三相系统的相电压与线电压区别如果是三相380V系统相间电压约380V相零电压约220V。电压偏高或偏低超过10%就要往供电局或车间变压器方向排查。节点二是开关电源的输入端和输出端。PLC通常由24V开关电源供电输入侧接220V输出侧接24V。输出侧电压正常值应在24V±5%范围即22.8V到25.2V之间。低于22VPLC在驱动继电器或传感器时可能因欠压复位高于26V可能烧毁模块。测量时万用表打到直流挡红笔接黑笔接-读数稳定后再做下一步判断。节点三是PLC电源端子处的实际电压。这里特别强调“实际”两个字因为从开关电源到PLC端子之间隔着断路器和端子排任何一个触点氧化、压接松动都会造成电压降。你量开关电源输出是24V量到PLC端子上可能只有20V——这种压降问题极难发现却是故障高发点。排查时要沿着供电回路逐段量量到哪个点电压明显下降问题就在哪个点。3.2 电源故障的隐蔽场景瞬间跌落与纹波干扰连续电压异常容易发现麻烦的是瞬间跌落。产线上大功率设备启动瞬间或者变频器加速瞬间会造成母线电压骤降如果PLC供电恰好在这个回路里就可能触发一次重启。等你去现场看的时候电压又恢复正常了根本测不出问题。对付这种情况我常用的方法是让故障复现——通过操作设备手动运行观察PLC是否在特定动作发生的瞬间重启或报警。如果每次都在某个大功率接触器吸合的瞬间出问题十有八九是电压跌落。根治要么给PLC加UPS或稳压电源要么将PLC供电回路与大功率负载供电回路分开。纹波干扰是另一个隐蔽杀手。普通万用表测不出纹波需要用示波器观察24V电源的交流分量。正常情况下纹波应该在几十毫伏级别如果读到几百毫伏甚至伏级说明电源本身滤波性能下降或者附近有强干扰源耦合。这种情况下PLC偶发死机、模拟量通道跳动都是典型的电源品质问题。经验之谈开关电源是有寿命的电解电容老化后纹波会逐渐变大。我遇到过一台设备不定期死机排查了将近一周最后用示波器抓到电源输出纹波高达1.2V换掉开关电源后一个月都没再犯。所以遇到“查不出原因的偶发故障”不要怀疑PLC本身先怀疑它吃的东西——电干不干净。4. 输入输出信号排查用万用表和强制功能定位故障点电源确认无恙后排查进入第二层输入输出信号链。PLC本质上是一个信号处理器——输入端接收传感器和按钮信号程序处理逻辑输出端驱动接触器和指示灯。任一环节断了程序就会表现出“不该停的停了”“该动的不动”。这一层的排查要掌握“两点一逻辑”的方法。4.1 两点一逻辑同时量信号和模块不要只量一头很多人排查输入信号时只量传感器有没有输出发现传感器有24V就觉得传感器没问题。这个判断不完整——传感器有输出不代表PLC模块的输入端子收到了信号中间还隔着电缆、端子排、中间继电器任何一处断路都会让信号到不了PLC。正确做法是同时测量两点第一点传感器端的信号线电压第二点PLC输入模块对应通道端子的电压。两点都有信号再看程序判断内部逻辑是否被正确触发第一点有信号第二点没有问题出在中间线路两点都没有信号先查传感器供电和传感器本身。以最常见的接近开关为例三线制NPN输出正常状态下信号线对0V应为24V高电平感应到铁块时信号线被拉到0V低电平。测量时用万用表直流挡黑笔接0V红笔接信号线读数变化一目了然。有些老手为了省事直接以PLC模块输入指示灯判断但灯亮说明信号到了灯灭只能说明“模块认为没信号”中间断了线灯也会灭还是要用电表确认。4.2 输出端排查先确认程序输出再确认实际输出输出侧故障的排查逻辑正好相反。程序逻辑上要求某个输出点置位比如Y0输出、继电器KA1吸合但负载不动。这时候先看PLC输出模块上对应的LED指示灯——如果指示灯亮说明程序输出正常且模块内部已经动作问题出在模块以后的回路如果指示灯不亮说明程序没有输出问题在程序侧或输入信号未满足条件。当指示灯亮而起不动时继续拆输出端子处有没有电压中间继电器线圈有没有得电接触器是否吸合负载是否正常这个链条上每一环都要确认。顺带说一个常见坑PLC输出端子处的24V和220V一定要分清很多模块带有不同电压的公共端搞混了不止烧模块还可能伤到人。4.3 用好PLC的强制功能但必须知道代价排查程序逻辑时I/O强制是效率极高的工具。比如你怀疑某个输入信号没触发导致程序卡在某个分支可以直接在编程软件里强制这个输入点为ON观察后续动作是否恢复。如果能恢复基本确认是信号丢失不能恢复说明程序内部还有别的问题或者动作条件本身就不满足。但强制功能是把双刃剑滥用会出事故。强制某个输出点ON时对应的外部设备会直接动作——如果那是个启动电机或打开阀门的信号设备突然运转可能伤人。我的习惯是强制之前先断开输出模块的负载电源让动作只停留在逻辑层面不实际驱动外部设备。排查逻辑就够了没必要让机器真的动起来。软件在线监视也是必备手段。通过编程软件在线监视梯形图能直接看到每个触点的通断状态——程序走到哪一步、卡在哪一个条件、当前值是多少一览无余。这套“在线监视强制测试逐点电压测量”的组合拳能覆盖绝大多数I/O侧故障。5. 程序逻辑排查从梯形图到数据块按执行顺序层层筛查如果I/O信号都正常程序却不按预期走问题就藏进了PLC内部的逻辑世界。程序排查是最考验功力的环节因为它涉及梯形图逻辑、定时器计数器、数据寄存器、子程序调用任何一环出问题都会表现为异常动作或停机。5.1 先看程序能不能“跑起来”我见过不少程序问题根源不是逻辑写错而是CPU本身没在正常运行。所以第一步先确认PLC处于RUN状态没有因为看门狗超时、程序错误、存储器异常而被CPU强制STOP。这里要养成一个习惯——看到设备停机先看一眼CPU面板的RUN灯是否亮着。RUN灯灭、ERR灯亮程序再对也没有用直接进诊断菜单看错误信息。常见的CPU异常原因包括程序被修改下载时断电导致程序区不完整、Flash存储器寿命耗尽、电池没电导致程序丢失针对老式RAM存储的CPU、看门狗定时器超时程序死循环或执行时间过长。CPU层面出问题时一切I/O排查都是白忙所以程序排查的第一步永远是确认CPU运行状态。5.2 按执行顺序排查从主程序到子程序分段锁定很多人的程序结构是主程序OB1里调用一堆子程序子程序里再嵌套子程序。排查时不按调用顺序来就会一直在顶层转圈看哪个条件都满足就是不知道哪儿没通。正确做法是从主程序的第一个网络开始一个网络一个网络地向下走。走到某个网络发现该通的触点不通、该置位的线圈没置位问题大概率在这个网络的输入条件中。再点进当前网络关联的输入点看它的实际状态与程序判断是否一致。不一致说明信号采集或地址映射有问题一致却输出不了重点查定时器和计数器。具体展开三个小点第一定时器的当前值和目标值。程序里写了个延时5秒启动的定时器实际等了10秒才动甚至一直不动先看定时器当前值是否在增加。当前值不动说明定时器没有被触发当前值到了目标值但输出没动作定时器类型通电延时/断电延时或复位条件可能有问题。第二计数器的触发频率和复位信号。计数到设定值后动作是最常见的循环控制逻辑。计数器不增加查触发信号的脉冲宽度是否太短——如果使用普通输入点接高速脉冲信号PLC扫描周期跟不上计数就会丢脉冲。第三数据寄存器的当前值是否异常。程序里做数据运算、比较、传送一旦寄存器数值超出预期比较条件就永远不成立程序就会卡住。排查时在线监视数据块把关键寄存器的当前值抄下来和设计值逐一对。很多时候问题的根源就是某个数据被其他程序段意外覆盖了。5.3 程序与被改过的痕迹“上次谁动过程序”——这是排查程序问题前必须问的一句话。产线设备不是实验室样品程序大概率被不同的人陆陆续续改过。有的人改了没注释有的人改了一半留了隐患有的人用别人的程序覆盖了你的版本。拿到一台故障设备先在编程软件里对比当前程序和备份程序把差异点找出来看。这些差异点就是最可疑的故障源。我实际遇到过这种情况设备每天凌晨三点准时停机查了所有信号和程序都没问题最后发现是某位工程师为测试加了一段定时停机逻辑——到点就强制停机——测试完忘了删。所以程序备份管理这件事平时看着麻烦关键时刻能救命。每次修改程序前一定要备份修改时写清楚注释修改后同步更新备份版本。6. 分类诊断工具箱按故障现象直接选排查路径前面几节是按故障排查的自然顺序讲的这一节换个角度按故障现象给排查路径分类。同样的“设备停机”背后的原因类型完全不同。我把实际工作中高频出现的PLC故障现象分成了五类每类对应一套独立的排查策略现场用起来更省时间。故障现象最常见的根因方向首选排查动作偶发死机/自动重启电源跌落、纹波干扰、程序看门狗示波器测电源检查大功率负载启动瞬间输入信号丢失/误动作传感器故障、接线松动、信号干扰逐点量信号回路查看屏蔽与接地输出动作异常中间继电器损坏、接触器卡滞、程序条件不满足先查程序在线监视再量输出回路电压模拟量数值漂移/跳动变送器故障、屏蔽层断、PLC模拟量模块损坏用信号发生器灌标准信号对比程序不运行/CPU停机存储区异常、看门狗超时、程序丢失直接进CPU诊断菜单看错误码6.1 偶发死机的“证据链”收集法偶发故障是所有故障中最难查的因为它不按你的时间表出错。对付这种问题不能靠碰运气要建立证据链——让故障发生后你可以追溯当时的状态。具体做法如果你手上设备支持SD卡记录或通过上位机记录PLC的运行日志务必开启如果没有数据记录条件就在PLC程序里加一个“故障发生时刻寄存器”记录最后一次停机前的关键状态值。这样下次偶发故障出现时你可以拿寄存器里的状态值反推故障条件。另一个实用技巧是延长调查窗口。偶发故障排查时把“只看故障瞬间”改成“看故障前后十分钟内的所有信号变化”。很多时候你觉得毫无规律的死机回头看趋势图会发现每一次死机前都有一个特定变频器的电流尖峰或者某一个传感器都会出现短暂异常。规律找到了根因也就浮出水面了。6.2 模拟量信号异常排查的标准流程模拟量通道4-20mA或0-10V在实际现场问题非常多且诊断难度高于开关量。我总结的标准流程是四步走第一步在信号源端传感器/变送器输出端测量信号值确认实际输出的电流或电压是否正常。比如一个温度变送器应该输出8mA对应50度你量到12mA说明传感器端已经在报错跟PLC无关。第二步在PLC模拟量输入模块端子处测量信号值和第一步的数值对比。如果两个值一致说明线路没问题如果不一致分段量中间端子排找出信号在哪里丢失或掺入了干扰。第三步在PLC软件里监视对应的模拟量通道转换值。如果输入端子处测到的信号正常但软件读数不对多半是模块量程配置、转换系数设置错误或者通道损坏。第四步用信号发生器直接从模块端子灌入标准信号比如4mA、8mA、12mA、16mA、20mA看软件读数是否符合对应量程。这一步能干净利落地判定“PLC模拟量模块到底有没有坏”把模块问题和外部信号问题彻底分开。这三个工具是模拟量排查的标配信号发生器精密万用表以及可调电阻箱某些场合代替变送器模拟阻值信号。7. 一个完整案例某定位系统间歇性停机的排查链路复盘理论讲多了容易飘用一个完整的实际案例来展示整套排查思路是怎么落地的。这个案例来自一个模拟自动化产线项目故障特征很有代表性——间歇性停机、无固定规律、报警码模糊。7.1 故障现象与信息收集阶段设备状况某输送线定位系统PLC控制伺服电机驱动滑台到指定位置每次停靠时检测到位信号后进入下一工序。故障表现为产线运行期间滑台偶尔在定位完成前停下触摸屏上报“定位超时”复位后又能继续运行故障次数每天2~6次不等没有固定位置和固定工件。拿到这个描述后我按照“三问三看”的顺序做信息收集操作工反馈“好像总是在换完班次前后出现得比较多”报警码是“定位超时”PLC面板I/O模块指示灯没有异常机械位置检查后发现滑台导轨上有一点磨损痕迹但不确定是否相关。初步方向判断定位超时报错说明PLC发出了停止信号——要么真的定位完成但信号没被读到要么定位根本没完成。两个方向差异很大一个指向传感器/接线一个指向伺服/控制逻辑。7.2 排查过程从电气到机械再到程序的递进第一步查电源用示波器挂在24V开关电源输出端观察了两小时波形稳定纹波在80mV左右排除了电源问题。第二步查输入信号定位采用接近开关NPN输出。把万用表表笔焊在信号线上这种间歇性故障用手持表没法捕捉连续监测到位信号。等了两小时采集到一次故障发现停机的瞬间接近开关的信号线始终没有出现过下降沿——也就是说滑台真的还没到位置PLC的逻辑判定没错。问题转向为什么伺服没到位就停了第三步查伺服驱动状态伺服驱动器面板上看到了报警信息——扭矩限制报警。这一条信息非常关键——伺服不是因为定位完成而停止而是因为被外部阻力憋停了。扭矩异常直接指向机械负载。第四步回到机械侧彻底检查导轨滑块时发现导轨某段有轻微的台阶状磨损滑块滑到该处时阻力明显增大伺服电机为了保持位置指令输出大扭矩超过扭矩限制后触发保护停机。到这里根因浮出水面磨损失效的导轨导致机械阻力偶发增大伺服扭矩保护触发定位未完成PLC报超时停机。7.3 解决方案与复盘要点修复手段并不复杂更换磨损段导轨重新校准伺服参数并调整扭矩限制阈值到合理范围留足余量而不是取消保护。处理后连续追踪一个月故障未再出现。这个案例值得复盘三个方法论上的要点第一从报警码“定位超时”直接推断“传感器坏”是典型的窄视野错误。信息收集阶段多看了伺服驱动器的报警状态这是破解此案的关键一步。PLC报警只是表象要找底层的真实故障源头需要联动排查同一动作链路上的所有关联设备。第二间歇性故障必须用连续监测手段抓证据不能靠眼巴巴看着。我在故障发生前就预判输入信号可能正常所以做了长时间的数据采集而不是碰运气检查这一步节省了大量时间。第三PLC排查不能只盯着PLC本身。这个案例中PLC从头到尾都在正确执行——它检测到“位置未到”做出停机决策完全符合程序设计。真正的病根在机械侧而PLC只是一个诚实的告密者。8. 经验清单我踩过的坑和你应当养成的习惯最后这部分我不讲理论了直接分享我在无数次现场排查中沉淀下来的实操经验和踩坑教训每一条都是真金白银换来的。8.1 安全永远是第一位的排查前提排查PLC故障时你面对的不只是逻辑而是真实带电的回路。测量端子时手一抖探针就碰到相邻带电点——放炮、烧表、伤手我都亲眼见过。所以养成几个铁规矩测量前确认万用表挡位和表笔插入位置是否正确很多人烧表是电流挡当电压挡用接触带电端子之前先断电挂牌需要带电测量时一手握表笔、另一手绝不碰金属裸露部分超过220V的回路必须戴绝缘手套并使用绝缘良好的表笔。设备运行时禁止伸手进入动作机构区域这是底线。检查限位开关、气缸位置、皮带张力时务必先确保设备处于安全锁定状态。宁可多花两分钟走安全流程也不要拿手指去试探。8.2 工具与备件排查效率的分水岭我随身工具包里常年保证这些东西可用一块精度不低于0.5级的数字万用表带真有效值功能更好一个手持示波器排查纹波和干扰必备一套PLC编程线缆适配器常用传感器备件接近开关、光电开关、限位开关、中间继电器各种规格的备用保险丝管和备用开关电源细热缩管、端子压线钳、备用端子和线鼻子备件不是浪费——一次夜班排查到凌晨就差一个中间继电器换上去就能恢复生产没有备件就得等天亮拿货产线停摆的成本早就超过那几十块钱的继电器了。常用备件必须建立库存清单用完及时补。8.3 同步做好“故障记录手册”与“程序版本管理”这是我多次受益的好习惯也是我建议每个维护工程师尽早做的事。每次处理完一个故障做三件事一是在故障记录手册里写下故障时间、报警码、现象描述、排查过程、终根因、处理动作、有效数据截图。定期翻看这本手册你会发现很多“新故障”其实是“旧故障的变体”处理速度会越来越快。二是同步更新程序的备份版本。修改程序拷出后立刻做版本命名保存注释写清楚改动原因、改动人、改动时间。不备份就改程序是最常见的“故障制造机”。很多现场程序没有版本管理出问题之后连“还原到之前能用的版本”都做不到。三是涉及参数调整伺服参数、变频器参数、温控参数时先把修改前参数表拍照或导出存档再改。有些参数是关联性的改了一个会影响其他回头发现不对却不知道原值是多少非常被动。8.4 和操作工多聊几句往往能少加班几小时操作工是每天和这台设备相处时间最长的人ta们口中那些“感觉最近声音不太对”“好像每次夜班第一台必停”的模糊描述很多时候就是故障方向的重要指引。不过要注意方式不是审问而是闲聊式的引导——“今天这台设备有没有什么跟平时不一样的地方”这种开放式问题比“你是不是误操作了”有效得多。尊重现场现场才会回馈你线索。9. 写在最后排查能力是在一次次“抓不到”中练出来的说到最后我最大的体会是PLC故障排查能力的提升主要靠的不是看书而是靠一次次“抓不到故障”之后回到原理里重新推理。那些清晰流畅的排查步骤写出来似乎顺理成章但真正在现场每一步都可能被不熟悉的工作绕进去——这是正常的也是必经之路。如果你刚接触PLC维护我的建议很简单把十六个字“先外后内、先易后难、先静后动、先电源后逻辑”贴在工具箱盖上。故障一旦出现不要急着按复位先按这十六个字走一遍流程记录现象测量关键点再动手处理。你会发现自己犯错的次数在快速下降。如果你已经有一定经验不妨做一次自我检查我的故障记录手册坚持写了吗程序备份做到哪些程度遇到过偶发死机时我会第一时间用示波器测电源吗这些问题没有正确答案但它们决定了你在真正棘手的故障面前是花四小时定位还是花四天定位。这次先分享到这儿。希望这套排查框架能让你下次站在控制柜前时更从容。也欢迎你用自己手头的实际案例来验证这套思路——只有经过现场检验的方法才真正算你的能力。