1. 入行1-3年PLC工程师的实战经验全景拆解1.1 为什么这个阶段的工程师最需要“经验清单”入行1到3年的PLC工程师处在一个非常尴尬的位置。学校里学的那点梯形图逻辑到了现场发现根本不够用师傅带你的那几个月能教你的多半是“怎么接线”“怎么下载程序”这类基础操作真正遇到设备抽风、通讯掉线、模拟量跳变的时候还是得自己扛。我带过不少这个阶段的兄弟发现他们最大的问题不是不努力而是不知道“该往哪个方向使劲”。PLC这个行当知识点太碎了碎到你可能干了两年还在纠结一个高速计数器为什么计不准。这份经验清单就是给这个阶段的人准备的。它不跟你讲什么“工业4.0”“智能制造”的大词那些东西离你手上的项目太远。它讲的是程序下载不下去怎么办、模拟量波动大怎么滤波、伺服定位不准怎么调参数、触摸屏通讯不上怎么排查。这些东西书本上不会写师傅可能也懒得讲但你不懂就得在现场熬夜。我整理这90条经验的时候刻意打乱了顺序因为现场问题从来不会按章节出现。你可能正调着PID突然发现变频器干扰了编码器信号也可能刚解决完通讯问题又碰上PLC电池报警。所以这份清单更像是一个“工具箱”你遇到什么问题翻到哪一条能直接拿去用。1.2 这份经验清单适合谁不适合谁先说适合谁。如果你刚入行能看懂基本的梯形图能独立下载程序但遇到设备异常就发懵那这份清单就是给你写的。如果你干了两年觉得自己什么都会一点但什么都不精这份清单能帮你把零散的知识点串起来。如果你正在准备跳槽面试面试官问你“遇到过最难的故障是什么”这份清单能给你提供十几个真实案例。再说说不适合谁。如果你已经是五年以上的老手这些内容对你来说可能太基础了。如果你只做上位机开发从来不碰现场设备那这些经验对你帮助有限。如果你指望看完这份清单就能独立做项目那也不现实经验这东西看是一回事动手是另一回事。我写这些东西不是要教你“怎么做”而是告诉你“我踩过哪些坑”。你看了之后至少知道遇到类似情况该往哪个方向想。这就够了。2. 硬件接线与信号处理那些让你半夜爬起来的问题2.1 数字量输入输出的“隐形陷阱”数字量输入看起来最简单一个按钮接进去PLC读到0或1有什么难的但就是这东西坑了无数新手。我见过最典型的问题按钮按下去PLC的输入灯亮了但程序里就是没反应。你以为是程序写错了查了半天最后发现是输入滤波时间设得太长。PLC的输入滤波默认一般是10ms如果你按按钮的速度快一点或者按钮本身有抖动PLC可能根本捕捉不到。这时候你得把滤波时间改短比如1ms但改短了又容易受干扰所以得根据实际情况调。还有一个坑NPN和PNP混用。你买了一个NPN的接近开关结果PLC的公共端接的是正极那这个开关永远输出不了信号。很多新手不知道以为开关坏了换了一个又一个最后才发现是类型不匹配。记住一句话NPN输出低电平PNP输出高电平PLC的公共端接法决定了你能用哪种。如果你用的是漏型输入公共端接24V那就得配NPN传感器如果是源型输入公共端接0V那就得配PNP传感器。这个搞反了神仙也救不了你。数字量输出也有坑。继电器输出和晶体管输出很多人不关心觉得能亮就行。但如果你控制的是高频动作的负载比如伺服使能、脉冲输出继电器输出根本扛不住。继电器输出有机械寿命一般也就几十万次你一天动作几千次几个月就废了。晶体管输出没这个问题但要注意电流方向而且过载能力差短路一下就烧。所以选型的时候一定要看清楚负载类型和动作频率。提示数字量输入滤波时间不是越短越好。如果现场有变频器、伺服驱动器这类干扰源滤波时间太短会导致误触发。我一般建议先设默认值如果发现信号抖动再逐步调大直到稳定为止。2.2 模拟量信号的“漂移与滤波”模拟量是新手最容易翻车的地方。你接了一个压力传感器4-20mA信号PLC读到的数值一直在跳跳得你怀疑人生。这时候你先别急着改程序先拿万用表量一下传感器输出电流稳不稳。如果电流本身就在跳那是传感器或者线路的问题如果电流很稳但PLC读到的数值在跳那就是PLC模块或者程序的问题。模拟量跳变最常见的原因是干扰。变频器、伺服驱动器、大功率接触器这些都是干扰源。你的信号线如果和动力线走在一个线槽里那基本上没救。正确的做法是信号线用屏蔽双绞线屏蔽层单端接地而且要和动力线分开走至少保持20cm以上的距离。如果实在分不开那就用金属隔板隔开。我见过一个项目信号线和动力线捆在一起模拟量跳了半年最后把线分开问题立刻消失。还有一个坑模拟量模块的量程设置。很多PLC的模拟量模块默认量程是0-10V或者0-20mA但你的传感器是4-20mA如果你不设置PLC读到的就是错的。比如4-20mA对应0-100bar你读到的数值是5530你以为压力是55.3bar其实可能是69bar。所以拿到模块第一件事就是确认量程设置对不对。滤波也是必须的。PLC的模拟量模块一般都有滤波功能可以设置滤波强度。但滤波太强响应就慢滤波太弱数值就跳。我一般建议先用中等滤波然后根据实际需求调。如果还是跳那就得在程序里做平均值滤波比如取10次采样的平均值或者用一阶滞后滤波。这个没有标准答案得看你的控制精度要求。2.3 接地与屏蔽的“玄学”接地这东西说起来简单做起来玄。你问十个老工程师可能有五种不同的接法。但有几个原则是通用的第一信号地和动力地要分开最后单点接地。第二屏蔽层不要两端接地否则会形成地环路反而引入干扰。第三接地电阻要小于4欧姆越小越好。我见过最离谱的案例一个项目的PLC柜信号地和动力地接在一起结果模拟量跳得没法看。后来把信号地单独接了一根线到接地排问题立刻解决。还有一次编码器的屏蔽线两端都接了地结果电机一转编码器就丢脉冲。后来把屏蔽层一端悬空问题消失。注意接地不是万能的但不接地是万万不能的。如果你不确定怎么接就记住一个原则信号线的屏蔽层只在PLC柜这一端接地现场那一端悬空。这样能避免大部分地环路问题。3. 程序逻辑与调试从“能跑”到“跑得稳”3.1 梯形图里的“定时器陷阱”定时器是PLC编程里最常用的指令但也是最容易出问题的。我见过一个新手用TON定时器做延时结果发现定时器永远不动作。查了半天发现是他把定时器的使能条件写成了一个瞬间信号PLC扫描周期是10ms那个信号只持续了5ms定时器根本没来得及启动。所以记住定时器的使能条件必须保持不能是脉冲信号。还有定时器的时基问题。很多PLC的定时器时基是100ms你设个10以为是10秒其实是1秒。这个错误太常见了我刚开始干的时候也犯过。后来养成了一个习惯每次用定时器先确认时基是多少然后算一下实际时间对不对。定时器的复位也很关键。如果你用定时器做报警延时报警消失后要记得复位定时器否则下次报警时定时器可能还带着上次的累计值。我一般会在定时器前面加一个复位条件或者用RST指令手动复位。3.2 中断程序的“双刃剑”中断程序用好了能解决很多高速响应的问题用不好就是灾难。我见过一个项目用中断做高速计数结果中断程序里写了一堆逻辑导致中断执行时间太长主程序都被拖慢了。后来把中断程序精简到只做计数逻辑放到主程序里问题才解决。中断程序的另一个坑是中断里不能调用某些指令比如通讯指令、文件操作指令这些指令执行时间不确定放在中断里会导致不可预测的后果。所以中断程序要尽量短最好只做标志位设置或者数据搬运。还有中断的优先级问题。如果你用了多个中断一定要搞清楚优先级否则可能出现低优先级中断被高优先级中断打断导致数据错乱。我一般建议能用主程序解决的就别用中断非要用中断就只用一个而且尽量简单。3.3 程序调试的“分段排查法”程序调试最怕的就是“一锅粥”。你写了几百行程序下载进去设备不动你从哪开始查我的经验是分段排查。先把程序分成几个功能块比如手动、自动、报警、通讯然后一块一块地调试。手动块调通了再调自动块自动块调通了再调报警块。这样出了问题你至少知道是哪一块的问题。分段排查的另一个好处是你能快速定位是硬件问题还是软件问题。比如手动块里你按按钮PLC输入灯亮了但输出没动作那可能是程序问题如果输入灯都不亮那就是硬件问题。这样你就不用瞎猜了。我一般还会在程序里加一些“调试标志位”比如M100.0表示手动模式M100.1表示自动模式然后在触摸屏上做几个指示灯实时显示这些标志位的状态。这样设备一动你就能看出程序走到哪一步了。提示调试的时候一定要把程序的“首次扫描”标志用上。很多初始化操作比如复位、清零只在首次扫描时执行一次。如果你忘了这个设备一上电数据可能是乱的。4. 通讯与网络让设备“说上话”的实战技巧4.1 串口通讯的“参数匹配”串口通讯最基础也最磨人。你接了一个变频器用Modbus RTU通讯结果死活读不到数据。这时候你先别怀疑程序先检查三个东西波特率、数据位、停止位、校验位。这四个参数只要有一个不对通讯就失败。我见过一个项目PLC设的是9600变频器设的是19200查了一下午才发现。还有一个坑站号。Modbus通讯里每个从站都有一个站号如果你把站号设错了或者两个从站站号冲突通讯就会出问题。我一般会在程序里做一个站号扫描把可能的站号都试一遍看哪个能通。接线也很关键。RS485通讯A接AB接B不能接反。如果接反了有时候能通但数据会错乱。我见过一个项目A和B接反了读到的数据全是65535查了半天才发现是线接反了。所以接线的时候一定要看清楚端子标号。4.2 以太网通讯的“IP冲突”以太网通讯比串口快但也更复杂。最常见的问题是IP冲突。你给PLC设了一个IP结果和现场的其他设备冲突了通讯时断时续。这时候你得用电脑ping一下看能不能通如果时通时不通那多半是IP冲突。解决办法很简单给PLC设一个没人用的IP或者用DHCP自动获取。还有一个坑子网掩码。如果PLC和电脑不在同一个子网那就算IP不冲突也通讯不上。我一般建议把PLC和电脑设成同一个子网比如都是192.168.1.x子网掩码都是255.255.255.0。这样最省事。以太网通讯的另一个问题是防火墙。有些电脑的防火墙会拦截PLC的通讯请求导致连不上。这时候你得把防火墙关了或者把PLC的IP加到白名单里。我一般会在调试的时候先把防火墙关了调通了再开。4.3 通讯故障的“分层排查法”通讯故障排查起来最头疼因为涉及的东西太多硬件、接线、参数、程序、干扰。我的经验是分层排查。第一层物理层线接对了没端子松了没第二层参数层波特率、站号、IP对不对第三层程序层发送和接收的指令写对了没第四层干扰层有没有变频器、伺服驱动器在旁边分层排查的好处是你不会漏掉任何一层。我见过一个项目通讯时好时坏查了硬件、参数、程序都没问题最后发现是变频器的载波频率太高干扰了通讯线。把载波频率调低问题解决。注意通讯线一定要用屏蔽双绞线而且屏蔽层要接地。如果通讯距离超过50米最好加中继器。我见过一个项目通讯线拉了200米没加中继器结果通讯成功率只有50%。5. 常见故障速查与避坑心得5.1 故障速查表故障现象可能原因排查方法解决措施PLC输入灯亮但程序无反应输入滤波时间过长检查输入滤波设置调短滤波时间模拟量数值跳变干扰或量程设置错误万用表量传感器输出加滤波、分开走线、检查量程定时器不动作使能条件为脉冲信号检查使能条件保持使能信号通讯失败参数不匹配或接线错误检查波特率、站号、接线统一参数、重新接线伺服定位不准电子齿轮比或增益参数错误检查伺服参数重新计算齿轮比、调增益PLC电池报警电池电量不足检查电池电压更换电池输出模块烧毁负载短路或过载检查负载电流加熔断器或继电器隔离触摸屏通讯不上IP冲突或通讯线问题ping测试、检查线缆改IP、换线5.2 那些年我踩过的坑第一个坑PLC的24V电源带不动负载。我刚开始干的时候觉得PLC的24V电源是万能的什么传感器都往上接。结果接多了电压降到20V传感器全都不工作了。后来才知道PLC的24V电源一般只有几百毫安带几个传感器还行带多了就得外接开关电源。第二个坑程序下载不下去。有一次我改完程序点下载提示“通讯错误”。查了半天发现是PLC的运行开关没打到STOP位置。PLC在RUN模式下是不能下载程序的。这个错误太低级了但我确实犯过。第三个坑编码器丢脉冲。一个项目电机一转编码器就丢脉冲。查了接线、屏蔽、程序都没问题。最后发现是编码器的分辨率设错了PLC读到的脉冲数和实际不符。把分辨率改对问题解决。第四个坑PID调不好。PID这东西参数太敏感P大了震荡P小了响应慢。我调PID的经验是先把I和D设为0只调P让系统有一点震荡然后把P减小到不震荡再加I最后加D。这个过程需要耐心不能急。第五个坑触摸屏死机。触摸屏死机很多时候是因为程序太大内存不够。我一般会在触摸屏程序里加一个“看门狗”定时刷新防止死机。如果还是死机那就得换大内存的触摸屏。5.3 给新手的三个建议第一个建议多动手少空想。PLC这东西看十遍书不如动手做一遍。你可以在淘宝上买一套二手的PLC几百块钱自己搭个小实验台想怎么玩怎么玩。接错了烧了也就几百块钱的事比在现场烧设备划算多了。第二个建议养成做笔记的习惯。我干了这么多年到现在还保持一个习惯每解决一个问题就记下来问题现象、排查过程、解决方法都写清楚。下次遇到类似问题翻笔记就行不用重新想。这个习惯让我省了无数时间。第三个建议多和同行交流。PLC这个行当很多经验是“只可意会不可言传”的你一个人琢磨可能几天都想不通但别人一句话就能点醒你。我建议你加几个技术群遇到问题在群里问问很多时候比查手册管用。提示现场调试的时候一定要带一个万用表和一个笔记本。万用表用来量电压、电流、通断笔记本用来记问题和解决方法。这两样东西比你的电脑还重要。6. 从“能干活”到“干得好”的进阶思路6.1 程序架构的“模块化思维”干了几年之后你会发现程序写得好不好不在于你用了多少高级指令而在于你的程序架构清不清晰。我见过很多人的程序从头到尾一条线几百行梯形图没有注释没有分段出了问题自己都看不懂。这种程序能跑但维护起来要命。我的建议是从一开始就养成模块化的习惯。把程序分成几个功能块比如手动、自动、报警、通讯、数据处理每个功能块写成一个子程序主程序只负责调用。这样程序结构清晰出了问题也好查。而且子程序可以复用下次做类似的项目直接拿过来改改就行。模块化还有一个好处方便多人协作。如果一个项目几个人做每人负责一个模块最后拼起来就行。如果程序是一锅粥那只能一个人从头写到尾效率太低。6.2 从“解决问题”到“预防问题”新手和熟手的区别不在于解决问题的能力而在于预防问题的能力。新手是出了问题再解决熟手是提前想到可能出问题的地方提前规避。比如你知道变频器会干扰模拟量那你在布线的时候就把信号线和动力线分开你知道PLC电池会没电那你就在程序里加一个电池电压检测提前报警。预防问题需要经验但也需要习惯。我一般会在项目开始前列一个“风险清单”把可能出问题的地方都列出来然后一个一个想对策。比如电源稳不稳接地好不好通讯距离远不远干扰源多不多把这些都想清楚了项目做起来就顺了。6.3 持续学习的“方向感”PLC这个行当技术更新不快但也不慢。你干了三年如果只会梯形图那迟早会被淘汰。我的建议是在精通梯形图的基础上学一门高级语言比如C#或者Python用来做上位机或者数据处理。再学一点数据库知识用来存历史数据。这些东西不一定马上用得上但迟早会用上。还有别只盯着PLC。伺服、变频器、机器人、视觉系统这些东西都是相关的。你懂PLC再懂一点伺服和视觉那你的价值就完全不一样了。我见过很多工程师PLC玩得很溜但一碰到伺服就懵这就是短板。最后别把时间都花在技术上。沟通能力、文档能力、项目管理能力这些软技能越往上走越重要。你技术再好如果说不清楚写不明白那也只能一辈子做调试。注意学习要有方向不能瞎学。我建议你先确定一个目标比如“三年内成为项目负责人”然后倒推需要哪些能力再一个一个去补。这样比漫无目的地学效率高得多。6.4 现场调试的“心态管理”现场调试心态很重要。你可能会遇到各种奇葩问题设备不动、通讯不上、数据乱跳、客户催命。这时候你越急越容易出错。我的经验是遇到问题先深呼吸然后按步骤排查。别一上来就改程序先确认硬件没问题再查参数最后查程序。还有别怕犯错。我干了这么多年犯过的错数不清。烧过模块、丢过程序、调错过参数但这些错误让我学到了最多。所以如果你犯了错别藏着掖着赶紧说出来赶紧解决。错误不可怕可怕的是不敢面对错误。最后别把自己逼得太紧。调试累了就休息一下出去走走换个脑子。很多时候你休息完了回来一眼就能看出问题在哪。这个我试过很多次很管用。这份经验清单我还会继续更新。PLC这个行当学无止境我也还在学。希望这些东西能帮到刚入行的兄弟少走一点弯路少熬几个夜。
阅读完成 · 觉得有帮助?