
干这行快十年了回头看看刚入行那两三年踩过的坑真是拿加班费换来的教训。当时自己闷头琢磨走了不少弯路要是有人能提前把这些经验甩给我至少能少熬几个通宵。所以这次我把这些年摸爬滚打攒下来的PLC实战经验整理成90条分硬件、程序、通讯、调试、习惯几个大块慢慢聊。这篇文章不是教科书没有高深的理论全是现场干过的活儿、写过的程序、拆过的接线、背过的锅。适合刚入行一两年的PLC工程师看也适合带新人的老工程师当个参考清单。说实话PLC这东西入门容易写好难写精更难。学校里教的是指令、是梯形图怎么画可现场的坑没人教你。我见过不少新人程序能跑一上电就冒烟程序能通一联动就乱套通讯能连一干活就掉线。这些问题说到底就是实战经验不够。我打算把这90条经验拆开了揉碎了讲每天更新一部分从硬件选型到程序架构从抗干扰到安全回路一条一条过。今天先把第一部分写了把最疼的坑和最实用的招都摆出来。1. 硬件接线设计图画错一小步现场返工一整天硬件这块是PLC工程师的基本功但恰恰是新人最容易翻车的地方。好多新同学上来就画图、就接线结果现场一送电传感器不动作执行器不响应查了半天发现是NPN和PNP搞混了。这种错误特别低级但特别常见。硬件接线的核心原则是先搞清楚设备的信号类型、极性、电压等级再动手顺序不能反。1.1 传感器接线NPN还是PNP选错就是整段白干我见过太多新人被NPN和PNP搞得一头雾水。简单说NPN传感器输出的是低电平信号负载接在电源正极和传感器输出之间PNP传感器输出的是高电平信号负载接在传感器输出和电源负极之间。PLC的输入模块一般有源型漏型和汇型源型之分日系PLC大多支持源型输入欧洲系PLC常见漏型输入。选型之前必须先确认PLC输入模块的类型再买对应的传感器不然就是白干。实际操作的时候我建议在图纸上就把每个传感器的型号、接线方式标清楚。特别是混用NPN和PNP的场合最好在端子排上做物理隔离用不同颜色的线区分。还有一点要提醒三线制传感器的棕蓝黑三根线棕接正、蓝接负、黑是信号别搞反。曾有次在现场一个光电传感器怎么都不动作排查到最后发现是蓝线和黑线接反了传感器内部的指示灯倒是亮了信号死活不出来。这种问题用万用表一量就能发现但前提是你有排查的意识。1.2 电源和接地模拟量干扰八成来自这里电源和接地是硬件里最容易出问题、也最容易被忽略的地方。PLC系统的电源一般分数字电源和模拟电源如果条件允许最好分开供电。现场经常出现的状况是变频器一启动模拟量信号就跳传感器读数乱飘。这多半是电源共地或者接地不规范导致的。模拟量信号线一定要用屏蔽线屏蔽层单端接地一般接在控制柜的接地排上。千万别两头都接地那样会形成地环路干扰更严重。很多新人不知道这个道理以为屏蔽层两头接地更安全实际恰恰相反。电源侧也一样PLC的24V电源负极有的系统要求接地有的要求浮空这个必须看说明书不能凭感觉来。有次我调试一条生产线称重传感器数值一直不稳排查到最后发现是24V电源负极和设备的保护地接到了一起形成了环路。把负极单独浮空之后数值立刻稳定了。1.3 I/O分配留余量和防呆是给未来的自己铺路I/O分配这件事看着简单其实特别考验经验。新人的通病是输入输出刚刚好一个余量不留。结果后期加了一个传感器、加了一个报警灯就发现没点可用了只能改柜子、改图纸、改程序工程量巨大。我现在的习惯是输入输出至少留15%到20%的备用点而且分布要有规律不要把备用点全部挤在最后面。另外I/O点位的命名要有规矩。比如输入用I0.0到I0.7输出用Q0.0到Q0.7每个点对应的设备名称写在图纸上、写在程序注释里。别小看这件事三个月之后再回来改程序就算是你自己写的没有注释也等于看天书。防呆设计也一样比如急停按钮用常闭触点接入PLC而不是常开这样一旦线路断了系统会报故障停机而不是傻乎乎地继续运行。这种小细节关键时刻能救命。2. 程序结构决定你调试的时候是喝茶还是擦汗硬件接好了程序就是重头戏。我见过不少新人的程序一个主程序里写几百行逻辑全部堆在一起看着跑得通一改就崩。程序结构这件事直接决定你后期的调试效率和维护心情。好的程序结构应该是读起来像一本书章节清晰每个功能模块独立互相之间通过规范的接口通讯而不是一团乱麻。2.1 结构化编程能分功能块就别写大平层我强烈建议新人从开始就养成结构化编程的习惯。所谓结构化就是把程序按功能拆分成独立的块比如手动控制块、自动控制块、报警处理块、模拟量处理块、通讯处理块各自独立再在主程序里按顺序调用。这样做的好处太多了调试的时候可以单独屏蔽某个块定位问题快改动的时候不影响其他逻辑风险小同事接手你的程序看项目树就能明白大概思路不用在一坨梯形图里翻来翻去。具体到代码层面我习惯把每个功能块做成带输入输出参数的函数块FB或函数FC哪怕是简单的电机启停也做成一个FB把启动、停止、急停、复位、反馈这些逻辑都封装进去调用的时候只需要传地址和参数。这样不仅程序简洁而且复用性极强。比如现场有二十台电机你只需要写一次FB调用二十次每台电机的启停有问题只需要改FB本体一次搞定。这比复制粘贴二十段梯形图然后挨个改地址不知道高到哪里去了。2.2 状态机是好东西但别把自己绕进去自动化设备的核心是流程控制流程控制最常用的思想就是状态机。新人在写流程的时候总喜欢用M中间继电器加一堆SET/RST逻辑一长就乱了尤其是并行分支、循环跳转的地方经常出现状态冲突。我的经验是用整数变量或者枚举类型来表示当前步号用CASE或者等于比较来驱动步进逻辑这样每一步的进入条件和退出条件都清清楚楚。比如一个典型的搬运流程等待启动、夹紧、抬起、移动、放下、松开、返回每一步对应一个步号。程序就是判断当前步号执行对应的动作满足条件后步号加一。这样写的好处是出问题的时候你只要监控当前步号就知道设备卡在哪一步再去查那一步的条件和动作排查效率极高。坏处是如果你把状态机的跳转条件写复杂了各种分支套分支最后自己都看不明白。所以我建议状态跳转条件一定要简单、独立能用一条逻辑判断的就别用三条。2.3 断电保持与初始化最容易被忽略的细节断电保持这件事看着不起眼出事就是大事故。自动线运行到一半突然停电恢复供电之后设备是继续原来的动作还是从头开始如果从头开始工件还在夹紧机构里就容易出事故。所以涉及安全的位置、状态变量一定要用断电保持的存储区比如S7-1200/1500的保持性M区或者DB块里的保持变量恢复供电后能恢复到断电前的状态。但这里有个矛盾如果所有变量都保持程序怎么知道该系统刚刚上电需要重新初始化我的做法是用一个“首次上电标志”变量如果这个变量没被初始化说明系统是重新上电的程序就执行初始化逻辑把设备恢复到安全状态再等待操作员确认然后继续。这套逻辑看着简单但很多人会忽略导致设备断电恢复后乱跑轻则撞机重则伤人。写程序的时候一定把异常断电恢复当作一个正式工况来处理不能当作没发生过。3. 模拟量处理和现场排障读数飘了别急着骂传感器自动化现场模拟量是重头戏也是最让新人头疼的东西。温度、压力、流量、位移都是模拟量。模拟量信号是连续变化的抗干扰能力天生比数字量弱所以出问题的概率也高得多。现场一调试压力变送器读数来回跳温度传感器显示忽高忽低很多新人第一反应就是传感器坏了其实很多时候是程序、接线、干扰的问题。3.1 模拟量读数漂移的排查路线图碰到模拟量读数漂移我建议按照这个顺序排查千万别一上来就换传感器。第一步查程序量程换算对不对模拟量模块的测量范围设定对不对硬件组态里滤波时间常数设了没有第二步查接线是不是用了屏蔽线屏蔽层接没接地是不是和动力线走了一个线槽第三步查电源给传感器供电的电源电压稳不稳是不是和变频器共用一个电源第四步才轮到怀疑传感器本身。有个项目印象特别深现场有台设备温度老是跳从80度到120度来回摆。打电话问现场说传感器换了三个模块换了一个问题依旧。我过去之后先用万用表量传感器输出信号稳得很。再往上游查发现模拟量模块旁边的变频器散热风扇一启动读数就开始飘。最后把模拟量线从动力线槽里单独拉出来用金属软管保护问题立刻消失。教训就一句话模拟量干扰多半是走线和接地的问题别让传感器背锅。3.2 通讯不上先怀疑你自己的程序通讯问题也是新人高频踩坑点。PLC和触摸屏连不上PLC和变频器通讯不上PLC和上位机通讯不上一出现问题很多人就陷入玄学是不是波特率不对是不是地址重复了甚至怀疑是不是某个设备是坏的。其实通讯问题十有八九是先怀疑自己的程序或者组态。我总结过一个排查口诀先查物理层再查设置层最后查程序层。物理层就是通讯线、接头、终端电阻特别是RS485通讯终端电阻和极性接反是高频错误。设置层就是波特率、数据位、停止位、校验位、站地址PLC和从站必须完全一致不能想当然。程序层就是通讯指令的调用方式比如是循环发送还是触发发送发送缓冲区是不是被覆盖了接收中断有没有正确处理。还有一个特别坑的地方通讯指令放在程序的什么位置直接影响通讯稳定性。很多人把通讯指令放在主程序的末尾和逻辑混在一起结果CPU扫描周期一变通讯节奏就乱。我的习惯是通讯相关指令放在定时中断或者固定的时间片里执行保证发送间隔稳定这样通讯可靠性一下子上来了。3.3 版本管理和程序备份关键时候救命这件事我放在通讯这一章讲因为它也和“出问题”有关。很多新人没有版本管理的意识程序改一版覆盖一版现场出了问题想回滚发现备份根本不存在。我的习惯是每个项目一个文件夹里面按日期和版本号建子文件夹比如“V1.0_20250110_初版”、“V1.1_20250115_增加报警功能”。每次改动前先把上一版完整备份再动刀。这个习惯在调试阶段特别重要。因为调试现场改动频繁经常是白天改晚上又改回去如果没有版本备份第二天你会发现昨天下午的程序逻辑已经彻底找不回来了只能重新写。我还习惯在程序里写一个版本注释块注明项目名称、作者、修改日期、修改内容以防时间久了连改过什么都不记得了。这个习惯坚持下来回头总结项目经验、复现问题的时候方便得让人感动。4. 安全习惯和职业素养技术之外的命根子PLC工程师这行技术是硬通货但安全意识和职业素养才是让这个职业生涯走得远的保障。我见过有同事为了赶进度把安全回路的跨接做得飞起把急停按钮直接短接掉表面上看设备调试速度上来了但一旦出事就是血的事故。这一部分讲几件我认为比技术更重要的事。4.1 急停和安全回路永远别图省事急停回路是设备安全的最后一道防线这条回路必须采用硬接线直接串在接触器控制回路里断开急停按钮接触器就断电电机就停。这个不能用PLC程序来实现因为PLC会死机、会跑飞、会通讯中断这些情况发生的时候你指望程序里的急停逻辑可靠动作那是在赌命。新人要警惕的是现场的一种“便捷操作”有人觉得程序里已经写了急停逻辑就把急停按钮的常闭触点直接短接让程序去处理急停。这绝对不可以。必须坚持任何情况下急停回路都是纯硬件的不经过PLC不经过触摸屏不经过任何由软件控制的中间环节。另外急停按钮的选型也要注意必须是自锁式的按下去之后能机械保持不能是那种按下去自己弹回来的。安全回路也不止是急停还应该包括安全门开关、安全光幕、双手启动按钮等等这些该有的一定要有该接入硬接线的要接入硬接线。4.2 修设备前先断电这是底线这个道理很多新人觉得是废话但每年因为违反这个底线出事的人不在少数。我就见过一个有经验的同事带电接线手一抖碰到带电端子整根手指被电灼伤休了半个月。带电作业不是勇敢是无知。PLC柜里各种电压等级乱得很220V、24V、甚至380V你永远不知道哪一根线是带电的。正确做法是任何接线、拆线、换模块的工作必须先断电、挂牌、上锁、验电然后再动手。断电之后还要考虑残余电荷的问题。比如直流母线上的大电容断电之后可能还存着几百伏的电如果直接上手照样被电。用万用表测量确认无电之后还要进行放电操作才能放心施工。这个流程看着繁琐但习惯成自然之后你根本不觉得慢。快是拿安全换来的不值。4.3 跟车间师傅和操作工打好交道技术之外的事这一条可能很多新人觉得和技术无关但我想说是大实话。做PLC调试你每天都在和车间操作工打交道设备有什么毛病最能说清楚的不一定是设备图纸而是天天操作它的师傅。你如果态度傲慢觉得人家不懂技术那你就永远得不到最真实的一手信息。我的做法是到现场先不急着动电脑先找操作工聊十分钟问问最近设备哪里不对劲什么时候开始不对的上午和下午有没有区别谁操作的时候容易出现。这些信息比你自己拿着万用表盲查快得多。而且调试的时候如果需要操作工配合你对别人客气别人也愿意配合你否则人家拖你半个小时你一点办法都没有。技术之外的情商也是PLC工程师的重要生产力。5. 经验沉淀一年顶三年的记录方法最后我想聊聊经验沉淀这件事。入行前三年的成长速度很大程度上取决于你怎么记录和复盘经验。很多人干了三年感觉和干了一年没什么区别因为他的经验是散的没有系统化没有总结成自己的知识体系。我建议每个PLC工程师都建立自己的经验库这个库才是你真正的核心竞争力。5.1 故障记录表每天花五分钟我自己的做法是在手机里建一个备忘录或者用表格工具记录每天遇到的故障现象、排查过程、根因、解决办法每天花五分钟。别小看这五分钟累积一年就是三百多条经验。每条记录按照“故障现象-排查过程-根因-解决方案-预防措施”这个结构来写宁可简单也不要空白。比如某一天你处理了一个变频器过压报警记录下来现象是变频器启动瞬间报过压排查过程是查了制动电阻、查了减速时间参数、查了输入电压根因是减速时间太短导致再生能量过大解决方案是延长减速时间并加装制动电阻。这个记录三个月后再看你不需要重新翻说明书就能回忆起来。这种记录做多了你会发现很多故障是有共性的你会在笔记里发现“变送器干扰”这个问题出现过七八次然后你会开始总结出一套通用的抗干扰排查方案这就是从量变到质变。5.2 从“能干活”到“干得明白”复盘的力量写故障记录表只是第一步更关键的是复盘。所谓复盘就是每隔一段时间回头看看近期处理过的故障、写过的程序、调试过的项目问自己三个问题当时为什么会出现这个问题我当时的排查思路有没有绕弯路有没有更好的处理办法我认识一个干了五年的工程师技术水平特别强问他秘诀他说就是每个项目结束之后花一下午时间写个总结这个项目用了哪些新的功能块碰到了哪些没见过的坑哪些地方下次可以做得更好。他甚至把自己的常用功能块整理成了一个库新项目直接调用效率翻倍。这种习惯就是一年顶三年的关键所在。老老实实干活只是积累时长把经验变成体系才是积累能力。我把这90条经验按这几个方向慢慢写后面会逐一展开硬件细节、程序优化、通讯排障、安全习惯这些内容。每天更新的好处是可以把每一条都讲透而不是一笔带过。如果你也是干这行的这些经验对你多少都会有点帮助。我自己当年踩坑的时候最希望的就是有这么一份清单能让我少走弯路。现在我把它们整理出来也算是对自己这些年经历的一个交代。最后再多说一句PLC这行看着是技术活其实干到最后拼的是经验和细节。你处理过的故障、写过的程序、背过的锅最后都会沉淀成你的底气。保持记录保持复盘三年之后回头看你会感谢自己当初的耐心。