
带过不少应届生我越来越觉得很多人入行卡壳不是因为学不会PLC而是因为没人告诉他们自动化工程师真正的工作方式是什么样的。十二年前我也一样学校毕业进了车间面对电柜里密密麻麻的端子和陌生的程序段第一反应是这跟我课本里学的完全是两码事。后来慢慢摸爬滚打才弄明白哪些坑可以提前避开、哪些习惯越早养成越好。所以我想把这12年积累的PLC与自动化从业经验整理成90条给刚入行的同学一条条讲清楚。这一篇先不急着铺开90条我先挑出最核心的几个方向把最容易被新人忽视的东西讲透。1. 我为什么想写给应届生这90条经验1.1 带应届生这些年我看到太多有理论没手感的新人过去十二年里我陆陆续续带过不少自动化专业的毕业生。第一年进项目组的孩子基本分成两种一种是上手快几天就能跟着接线路、改程序另一种是知识面很扎实一张嘴就是PID整定、机器学习算法但到了电柜面前连万用表该拧到哪一档都要犹豫。后者并不笨只是在学校里被系统性地灌输了控制就是写软件的错觉不知道设备的电气回路和现场工艺是PLC程序之外的另一半生命。我印象最深的一个新人是某年招进来的硕士代码写得不错能把PID调得很好看。第一次带他去车间排查一个温度跳变的问题他盯着屏上的数值想了半小时然后问我是不是程序里滤波没写好实际上现场的原因是热电阻的屏蔽层被端子压到了柜壳上产生了地环路干扰。这本来是个很基础的排查方向但他完全没有现场物理环境会影响信号这个概念。那一次之后我反思了很久发现我们的教育把控制讲得太干净了好像信号就是一根线逻辑就是一段代码完全忽略了它在真实车间里会遇到的噪声、振动、发热和接线失误。所以我特别想把这些年积累下来的现场感传给新人。这不是学校里能学到的也不是看几本书就能建立的只能靠真实项目里的具体经验一条条沉淀。90条这个数字不是噱头是因为我真的觉得能讲清楚的经验远不止90条只是每天更新一条的话大家更容易消化。1.2 经验清单到底覆盖了什么以及今天先挑哪几条讲90条经验我大致分了几个方向入行心态、电气基础、PLC编程规范、程序架构设计、HMI和SCADA通讯、现场调试排查、设备安全、项目交付与沟通、职业规划。每个方向下面我都会挑最可能让新人眼前一亮或者原来如此的具体条目来讲而不是泛泛而谈要多学习、要多下现场这种废话。这一篇我决定先讲四块入行前三年最该补的电气课、编程工程化习惯怎么养成、现场调试的完整排查思路以及我十二年之后的职业复盘。先说前两块因为它们决定了你三年后是成为一个能独立扛项目的工程师还是成为一个只会照猫画虎改程序的操作工。2. 入行前三年先别急着追求编程花活2.1 电气基础和图纸阅读才是PLC工程师真正的入场券很多人一入职就想我什么时候可以开始写PLC程序。我的建议是头半年别急着碰软件先去车间把电柜、端子排、继电器、接触器、断路器的实际形态认全。你至少要能回答这几个问题这排端子上为什么有24V和0V中间继电器为什么并联一个续流二极管断路器、熔断器、热继电器分别保护什么如果这三个问题你答不上来那你写出来的梯形图大概率是纸上谈兵。图纸阅读是这个阶段的另一项基本功。拿到一张电气原理图要能快速定位主回路和控制回路知道哪一根线是给PLC供电的哪个端子是DI哪个端子是DO。I/O分配表是连接图纸和程序的桥梁程序里看到的DB1.DBX0.0对应电柜里某一排端子的第几个位置这套对应关系必须刻在脑子里。我刚入行时吃过一个亏项目调试时现场的设备号跟图纸不一致我按照图纸强制了一个输出结果把隔壁工位的气缸顶了一下。后来我养成了一个死规矩动输出之前先对着I/O分配表和端子照片确认三次。这里也顺带说一句万用表的使用建议新人自己在家多练。测电压、测通断、测毫安级电流这几件事的熟练程度直接决定你在现场敢不敢动手。我见过一个工作了两年的工程师排查一个DO点没输出拿万用表量了半天最后发现是表笔插错孔位了。这种事不丢人但会非常耽误项目进度。2.2 梯形图就是从继电器回路演化来的别把编程自学成玄学PLC的梯形图说白了就是把六十年代那代电气工程师在继电器控制柜里搭的硬接线逻辑搬进了CPU里用软指令模拟。如果你能看懂一个传统的电动机启动停止电路——也就是常说的自锁保停电路——那你写梯形图就有了一半的功底。自锁是并联自己的常开触点互锁是串联对方的常闭触点联锁是串联其他设备的状态位。这些概念全部来自物理继电器电路。我给新人推荐的学习路径是先拿纸把自锁保停电路画出来再把这个电路翻译成梯形图然后在仿真软件里跑一遍最后找个真实的PLC去现场接一个按钮、一个接触器实际验证。一套流程下来你对输入扫描、输出刷新、扫描周期的理解是背概念完全替代不了的。很多人问到底学西门子好还是三菱好。我的建议是第一年别挑品牌。PLC编程的核心范式是IEC 61131-3里定义的那套东西梯形图、功能块图、结构文本、顺序功能图。品牌只是外壳你把一个品牌吃透换成另一个品牌只需要一两周适应期。西门子的TIA Portal信息量大、生态完整适合建立整体认知三菱的GX Works有一个特点就是入门门槛更低适合快速建立信心。但最终你都绕不开那几个通用概念输入映像区、扫描周期、上升沿、定时器、计数器、数据块。2.3 复杂流程先画时序和状态图再写程序这一步没人教你但你离不开应届生最欠缺、也最难从书本学到的一点是工艺优先。我见过新人拿到项目需求就开始闷头写梯形图写了三天发现逻辑根本对不上因为他对设备要完成的动作过程完全没有概念。举例来说一台最简单的自动包装机它的主流程可能是这样物料到位→夹紧气缸伸出→热封头下压→保压2秒→热封头抬起→夹紧气缸收回→成品推出。这中间每个动作之间都有严格的时序关系而且可能还有互锁夹紧气缸没有伸出到位热封头绝对不能下压否则会压坏包装袋或撞坏机构。我的习惯是接到一个控制项目先花40%的时间去搞清楚工艺流程包括每个气缸的节拍、每个电机的启停条件、传感器信号的时序图然后用30%的时间去搭程序框架最后才用剩下的时间写具体逻辑。写程序之前哪怕只是用一张纸把状态转移图画出来都比直接上手写梯形图高效得多。顺序功能图SFC和状态机这样的思路不是只用于复杂项目简单设备里养成这个习惯后面遇到几十个工位的产线才不会慌。3. PLC程序不是能跑就行工程化习惯从第一行开始3.1 变量命名和注释是写给三个月后的自己看的程序能跑只是及格线。在项目交付三个月以后你自己回头去改一段代码如果看不懂当时为什么要这么写那就是当时偷懒没做注释。我在评审新人程序时第一件事不是看逻辑对不对而是看变量命名有没有规则、注释有没有覆盖到关键联锁点。命名这块我的个人习惯是输入信号用设备名_位置_信号名格式比如Conveyor1_Motor_Start中间变量用功能缩写加描述比如Conveyor1_Running输出信号用设备名_执行器_动作比如Valve2_Open。不要贪图省事用M0.0、M0.1这种裸地址。西门子TIA Portal和博途里强烈建议用符号地址写程序在变量表里把注释写清楚这样任何人拿到程序都能在十分钟内看懂整体结构。注释也不是越多越好关键是注释要写为什么而不是做了什么。我见过不少新人的注释写法是X0闭合给Y0通电这种注释等于没写。更有效的注释是当料位达到高位时禁止进料阀打开防止物料溢出——它描述的是设计意图和安全边界而不是指令本身的动作。还有一个很容易被忽略的习惯程序版本管理。很多PLC工程师还在用程序最终版程序最终版2程序真正最终版这种文件名。我的建议是每个阶段保存一份带日期和项目名的归档文件比如PackLine_20250115_v1.0.zip。这个习惯在项目交付后尤其重要。现场设备出了问题你往往需要回退到上一个稳定版本如果所有版本混在一起找起来会非常痛苦。3.2 一套模块化结构OB、FC、FB的职责分工西门子PLC里有个经典但经常被滥用的组织块OB1它是CPU循环扫描的主入口。有的新人喜欢把所有逻辑都堆在OB1里几百个网络从上往下排这会让程序变成一个巨型毛线团。我推荐的架构是在OB1里只做几件事调用初始化逻辑、调用各工艺段的主控功能块、处理手动/自动模式切换以及调用报警处理块。举个例子一条自动包装线上的每一个包装工位都可以封装成一个独立的FB带自己的背景数据块。这个FB内部管理自己的气缸时序、传感器判断和报警输出。这样做的好处非常明显第一个工位的程序跟第二个工位完全独立改一个不影响另一个而且FB可以反复实例化十个一样的气缸控制逻辑写一个FB就够。无状态的计算逻辑则用FC来做比如PID需要调用的数值转换、模拟量工程量换算这类逻辑不保存数据调用完了就释放。模块化还有一个隐藏的好处程序分段后现场排查问题的速度会快很多。哪个工位报警了直接打开对应的FB去看而不是从几百行的大程序中一层层往下翻。新人刚开始会觉得这东西麻烦但等到你负责的产线有五六十个工位的时候模块化就是唯一的选择。我提供一个最简的分层思路供你们套用第一层OB1调度层只做块调用和模式切换。第二层工艺段层每个工艺段对应一个FB或一组FB。第三层设备执行层把电机、气缸、阀门这些单体设备封装成通用FB。第四层信号处理层负责模拟量换算、报警判断、通讯数据映射。新人在做项目时哪怕设备再简单也建议按这个分层来组织程序。一旦养成了分层的习惯后来面对复杂系统就不会手足无措。3.3 安全逻辑永远是现场调试前必须检查的第一优先级说到安全逻辑我一定要强调急停回路、安全门、光栅这些安全功能一定要有硬件的安全回路不能只靠PLC程序。硬件安全回路走的是独立于PLC的接线急停按下接触器主回路直接断电即使PLC程序因为某种原因卡死设备也一定会停下来。软件侧的联锁可以补充但不能替代硬件的最后一道防线。程序里的联锁逻辑则负责防止设备误动作。比如两个气缸的活塞杆不能同时顶出否则会撞到一起那么程序里就要有互锁气缸A伸出的条件是气缸B收回到位且没有干涉信号。这种联锁不仅要写在自动流程里也要写在手动模式里防止调试人员在手动模式下误操作。我在实际项目中见过不少次这种情况自动模式下一切正常手动模式下一顿乱按把夹具撞坏了。所以我在所有手动控制指令里也统一加上设备间的安全联锁条件。另一个容易被忽视的点是报警逻辑不要只在程序里做还要通过HMI让操作员在第一时间明白发生了什么。报警信息至少应该包括设备名称、故障原因、建议处理措施。千万不要在触摸屏上显示一个设备故障就完事那等于没做报警。报警分组也要做好把安全类、工艺类、通讯类报警分开操作员才能快速定位。4. 现场调试才是最值钱的课堂4.1 上电前这半小时能省出后面几个通宵调试阶段的第一个关键动作是上电前的I/O核对。标准的做法是先对照I/O分配表把电柜端子的每一个输入信号短接或施加信号确认PLC里对应的输入位能正确置1然后再用强制输出或临时下发指令的方式逐个测试输出点的动作。这个核对过程虽然枯燥但重要性怎么强调都不为过。我踩过的最惨的一次坑是在一个老项目改造中接口信号文档忘记更新我以为第12号端子接的是传送带启动实际上电柜那边接的是风机启动。结果上电试运行时一按启动风机转了传送带纹丝不动整个产线停了一个下午。后来我给自己定了一个强制流程每个点实打实确认一遍并且在I/O表上打勾签字谁确认谁负责。这里多说一句强制输出的风险。很多人喜欢用PLC的强制功能来测试输出但强制输出是一把双刃剑。强制一个接触器通电如果接触器带的是一台几百公斤的冲压机后果不堪设想。我的建议是强制输出前先确认被驱动的执行机构不会对人或设备造成伤害能断开的机械负载尽量断开比如拆下电机线或断开气缸气源试过逻辑之后再接回去。安全永远比进度重要。4.2 模拟量跳变的排查顺序从传感器一路查到屏显模拟量信号在自动化现场是个绕不开的痛点。温度变送器、压力变送器、液位计输出4到20毫安信号到PLC的模拟量模块然后你会在HMI上看到数值上下乱跳。很多新人的第一反应是PLC模拟量模块坏了但实际上现场90%的模拟量问题都出在信号链路的各个环节。我的排查顺序是这样的你们可以直接照抄第一步用万用表毫安档直接在PLC模拟量模块的端子上测电流跟传感器实际输出值对比。如果电流本身在跳说明传感器或者线路有问题如果电流稳定但屏显跳动说明问题出在模拟量模块或信号处理逻辑。第二步检查接线距离和电缆类型超过一定距离的模拟量信号建议用屏蔽双绞线而且屏蔽层要在PLC侧单端接地千万不要两头都接否则会产生地环路噪声。第三步看看信号线有没有跟电机动力线走同一个线槽。变频器输出侧的强电会产生较强的空间电磁场干扰附近的模拟量信号这种情况下不仅要屏蔽接地还要物理分离走线路径。第四步在PLC侧加装信号隔离器把模拟量信号做一次电气隔离。在很多复杂电磁环境下这是最快见效的解决办法。再补充一个容易被忽略的点模拟量工程量换算。4到20毫安对应的是0到满量程程序里要做标定换算很多新人直接在屏上显示原始值然后莫名其妙地发现数据不对。换算本身不难难的是确认量程范围和单位。我见过一个料位显示负数的案例排查了半天结果是传感器安装方向装反了量程上限当成了量程下限。4.3 SCADA连不上PLC先从物理层打起再谈协议配置很多项目里的上位机用的是SCADA系统。应届生最常遇到的场景是工程师站在电脑前PLC连不上SCADA了。排查这类通讯问题我有一套固定的流程。这套流程不限于某个品牌Modbus TCP、Profinet、以太网通讯都适用。第一步先排除物理层查看PLC以太网模块的指示灯确认网线有没有松动用电脑直接ping PLC的IP地址如果ping不通检查网线、交换机、IP网段。不要一上来就翻上位机的配置这是我用一个通宵换来的教训。第二步确认访问权限和协议参数。西门子PLC走S7协议的话要确认CPU属性里有没有勾选允许来自远程对象的PUT/GET通讯访问Modbus TCP要确认功能码、从站地址、保持寄存器地址都设置正确。第三步用专门的通讯测试工具发Modbus请求或查看S7报文确认PLC有没有正常响应。如果响应不正常再看防火墙和上位机组态软件的端口设置。第四步最后才考虑上位机软件本身的配置包括驱动选择、通道地址映射、变量绑定。我遇到过一次最离谱的情况现场连不上PLC我查了一下午网络电脑和PLC在同一个网段ping也通协议参数也对最后发现是上位机软件里把扫描周期设置成了0毫秒CPU被上位机的通讯请求刷到卡死。把扫描周期改回到1000毫秒问题立刻消失。这种坑没有经验光靠课本真的很难想到。如果你刚接触SCADA和PLC通讯我建议先从Modbus TCP练起。原因是它足够简单几乎所有PLC和上位机都支持而且调试工具多。你用Modbus Poll这类工具可以很容易地读取PLC里的保持寄存器确认通讯链路是不是通的。等理解了客户端-服务器和寄存器地址这些概念再去用OPC UA或者Profinet会顺畅很多。4.4 现场试运行阶段手要懒一点脑子要勤快一点很多新人到了试运行阶段看到设备一动就兴奋恨不得马上把节拍拉满。我的建议恰恰相反试运行阶段最忌急躁。每一步操作之前先想清楚它会导致什么后果。气缸伸出去会不会撞到人电机转起来有没有反转联锁逻辑有没有生效确认清楚了再按下启动键。还有一个小技巧试运行阶段要多看、多听、多闻。摸一摸电机外壳的温度听一听气动回路有没有漏气声闻一闻电柜里有没有焦糊味。这些看似原始的方法往往能比传感器更早暴露问题。我在一次设备调试中就是靠闻到电柜里淡淡的焦糊味提前发现了一个端子排接触不良的问题避免了一次停机事故。5. 十二年了我给自己的三条职业复盘5.1 选对行业比选对公司更重要但别频繁跳自动化行业内部的行业差异非常大这点很多应届生一开始并不清楚。汽车产线项目通常体量大、管理规范能接触到复杂的多工位联锁、机器人与PLC的协同、标准化的安全方案半导体设备行业则更强调精度控制、洁净室环境、通讯架构的实时性物流自动化这些年发展很快涉及大量的堆垛机、RGV、输送线调度PLC之外还要懂一些WCS调度逻辑非标设备项目虽然软件含量不一定高但胜在覆盖面广你能在两年内同时接触机械、电气、气动、机器视觉像个全科医生。我的建议是前三年尽量扎根一个行业把工艺逻辑真正吃透而不是每半年换一个方向。跳槽涨薪的快感很容易让人忽略积累的可持续性但真正值钱的是你在某个细分场景下形成判断力哪个环节容易出故障、哪种设计在维护上更友好、怎么跟机械工程师沟通才能减少互相扯皮。这些素养只有在一个行业里沉淀足够久才能形成。5.2 证书和职称不能救命但能省掉很多不必要的麻烦再实际一点的建议是能把电工证、特种作业操作证考下来就尽早考。别觉得这些证没什么技术含量。在很多工厂和项目现场没有电工证连电柜门都不让你开有些场合就算你技术再牛没有证也只能在旁边指导持证人员操作。这就是行业的规则你可以觉得不合理但没必要跟自己过不去。职称也一样。如果未来想往技术管理或者项目负责人方向发展助理工程师、工程师、高级工程师的职称路径还是要早点规划。很多大型项目的投标文件里对项目组成员的职称有硬性要求。我见过几个技术很好但因为一直没评职称在关键岗位竞聘时吃亏的同事。这种遗憾最好别让它发生在你们身上。5.3 到最后懂工艺的PLC工程师比纯写程序的更吃香十二年下来我越来越意识到一个真相PLC工程师的终点不是程序员而是工艺工程师加系统工程师的结合体。单纯会写程序的人在任何时代都容易被替代真正稀缺的是那种能站在车间里看着设备运行快速判断这个工艺节拍还能不能提升、这个动作能不能合并、这个传感器装在这个位置是不是不合理的人。最近两年AI编程工具发展得很快也有人问我PLC工程师会不会被取代。我的看法是重复性的梯形图翻译大概率会被工具替代但是理解工艺需求、设计安全方案、做现场调试判断、和操作员沟通这些事AI短期内很难完全替代。所以我的建议是把编程工具当成你的效率放大器但把更大的精力花在对工艺、对设备、对人的理解上。这些经验我会在90条系列里继续展开下一条讲PLC程序架构设计的误区再后面讲HMI画面设计里那些看着不起眼但其实能省很多事的细节。我写这些东西不是想让人觉得这条路有多简单而是希望大家少走弯路。毕竟这个行业真正的门槛从来不是知识而是经验。等你也到了第十二年回头看自己带过的人、调试过的设备、解决过的故障一定会觉得这条路非常值得走。