ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

自动化应届生入行指南:PLC编程与电气基础90条实战经验

自动化应届生入行指南:PLC编程与电气基础90条实战经验

1. 入行前必须想清楚的几件事

1.1 自动化应届生到底在焦虑什么

每年六七月份,后台总会涌进来一批自动化、电气工程、机电一体化专业的应届生,问的问题翻来覆去就那么几类:PLC到底该学西门子还是三菱?没有项目经验怎么找工作?培训班值不值得去?进了厂是不是就只能天天接线拧螺丝?这些问题我太熟悉了,因为十二年前我自己就是从那个状态过来的。

先说一个基本事实:自动化这个行业,门槛不在学历,在动手能力和现场经验。我见过太多本科甚至硕士毕业的年轻人,到了现场连一个中间继电器的常开常闭都分不清楚,也见过中专出身干了三五年就能独立负责整条产线电气设计的狠人。学历决定你进什么样的公司,但决定你能走多远的,是你愿不愿意蹲在电柜前面一根线一根线地查。

所以这90条经验,我不打算写成教科书式的知识清单。我想做的是把十二年里踩过的坑、走过的弯路、被师傅骂过的那些瞬间,一条一条摊开来讲。如果你是刚毕业或者即将毕业的自动化专业学生,正在纠结要不要入这行、怎么入这行,那这些内容应该能帮你少走至少两年的弯路。

1.2 这个行业到底在做什么

很多应届生对自动化的理解停留在“PLC编程”四个字上,实际上这个行业的分工远比想象中细。从大的方向分,至少有这么几条路:系统集成(做产线电气设计和调试)、设备制造(做单机设备的控制系统)、终端用户(工厂里的设备维护和技改)、技术销售(卖PLC、变频器、伺服这些工控产品)、上位机开发(SCADA、MES接口、数据采集)。

每条路的技术栈和要求都不一样。做系统集成的,你得懂电气原理图、会选型、能调试变频器和伺服;做设备制造的,对运动控制算法和时序逻辑要求更高;做终端维护的,排查故障的能力比编程能力更重要;做上位机的,除了PLC还得会C#或者Python,懂数据库和通信协议。

我建议应届生第一份工作尽量去系统集成或者设备制造,因为这两类岗位能让你在短时间内接触到完整的项目流程,从图纸到选型到编程到调试,成长速度最快。终端维护虽然稳定,但技术面容易越走越窄。

1.3 关于PLC品牌选择的真实建议

“学西门子还是三菱”这个问题,我被问了不下几百遍。直接给结论:如果你在长三角或者外资企业多的地方,优先学西门子;如果在珠三角或者日系企业多的地方,优先学三菱;如果在中西部,国产汇川、信捷的份额在快速上升,也值得关注。

但更重要的是,不要把自己绑死在一个品牌上。PLC的编程思想是相通的,西门子的OB/FB/FC体系、三菱的梯形图逻辑、汇川的Codesys平台,底层都是那套东西。你真正要掌握的是:逻辑控制思维、状态机设计、通信协议理解、电气图纸识读。这些能力跨品牌通用。

我自己的路径是:学校学的三菱FX系列,工作前三年用西门子S7-200 SMART和S7-300,后来做项目接触到汇川AM系列和Codesys平台,再后来因为客户要求又回头做三菱FX5U和Q系列。每次换平台大概需要两周到一个月适应,但核心的东西从来没变过。

给应届生的第一条实操建议:不管你现在学的是哪个品牌,去二手平台花几百块钱买一个二手PLC实物,哪怕是最老的S7-200或者FX2N,接上按钮和指示灯,把电机正反转、星三角启动、红绿灯控制这些经典案例亲手跑一遍。看视频一百遍不如自己接线跑一遍。

2. 电气基础与硬件认知

2.1 电气图纸是吃饭的家伙

如果你问我自动化工程师最重要的单项技能是什么,我会毫不犹豫地说:看懂电气原理图。编程只是实现逻辑,但逻辑建立在硬件接线的基础上。你连图纸都看不懂,怎么知道哪个端子接的是传感器、哪个接触器控制的是主电机?

电气原理图分几种:系统框图(展示整体架构)、原理图(展示电气逻辑关系)、接线图(展示实际端子连接)、布置图(展示元件在电柜内的位置)。应届生最需要先掌握的是原理图和接线图。

看原理图的顺序一般是:先看电源部分(AC220V还是DC24V,有没有隔离变压器),再看控制回路(按钮、继电器、PLC的IO分配),最后看主回路(接触器、变频器、电机的接线)。图纸上的每个元件都有代号,比如KM代表接触器、KA代表中间继电器、SB代表按钮、SQ代表行程开关,这些符号要烂熟于心。

我见过一个应届生,编程能力不错,但第一次去现场调试时把24V电源直接接到了PLC的220V输出端子上,结果烧了一个输出模块。这种错误不是编程能弥补的,纯粹是硬件常识缺失。

2.2 常用低压电器的选型逻辑

选型这件事,学校里讲得少,但工作中天天用。我挑几个最常用的说一下。

断路器:不是随便选个电流值就行。你要考虑负载类型(阻性还是感性)、启动电流倍数、短路分断能力。比如一台7.5kW的三相异步电机,额定电流大概15A,直接启动的话启动电流是额定电流的5到7倍,所以断路器不能只按15A选,一般要选到20A到25A,并且要选D曲线(电动机保护型)而不是C曲线。

接触器:主触点的额定电流要大于电机额定电流的1.2到1.5倍。线圈电压要和PLC输出类型匹配,如果PLC是晶体管输出(DC24V),那接触器线圈就要选DC24V的,不能选AC220V的,否则要加中间继电器转换。

中间继电器:主要作用是隔离和放大。PLC输出点一般容量有限(比如2A),直接驱动大接触器线圈容易烧点,所以用中间继电器过渡。选型时注意线圈电压和触点数量。

传感器:光电、接近、电感、电容,各有各的适用场景。金属检测用电感式,非金属用光电或电容式。NPN和PNP的选择取决于PLC输入模块的类型,漏型输入配NPN,源型输入配PNP。这个搞反了信号永远读不进来。

实操心得:每次选型完,把关键参数列一个表,包括型号、额定电流、线圈电压、触点数量、安装方式。这个习惯能帮你在后期维护和替换时省大量时间。

2.3 万用表不是拿来测通断就完事了

很多应届生用万用表只会一个功能:蜂鸣档测通断。这远远不够。一个合格的自动化工程师,至少要用好这几个档位:

  • 直流电压档:测24V开关电源输出是否正常,测PLC输出点是否有电压。
  • 交流电压档:测三相电是否缺相,测接触器线圈电压。
  • 电阻档:测电机绕组是否平衡,测传感器好坏。
  • 电流档:测电机运行电流,判断是否过载。注意电流档要串联接入,不能并联,否则会烧表。

我自己的习惯是随身带两块表,一块普通数字万用表,一块钳形表。钳形表测电流不用断线,现场排查电机过载特别方便。

2.4 电柜里那些不起眼但很重要的细节

电柜是自动化工程师的脸面。一个电柜做得好不好,不用看编程,打开柜门看走线就知道了。线号管有没有套、线槽盖有没有盖、接地线有没有接、端子排有没有标号,这些细节直接反映一个工程师的专业程度。

我总结了几条电柜装配的基本要求:动力线和信号线分开走线槽,避免干扰;模拟量信号线必须用屏蔽线,屏蔽层单端接地;每个端子最多接两根线,多了容易松动;线号管方向统一,方便查线;电柜内要有照明和插座,调试的时候你就知道有多重要了。

3. PLC编程的核心思维

3.1 梯形图只是表达方式,逻辑才是核心

很多应届生把学PLC等同于学梯形图指令,这是本末倒置。梯形图、ST语言、FBD功能块图,都只是表达逻辑的工具。真正重要的是你脑子里的控制逻辑是否清晰。

我举个例子:一个简单的电机星三角启动。用梯形图写,无非就是几个定时器和输出线圈。但如果你不理解星三角启动的物理过程——先星形接法降压启动,延时后切换到三角形接法全压运行,切换过程中要确保星形接触器和三角形接触器不能同时吸合——那你写出来的程序就是一堆指令的堆砌,出了问题根本不知道怎么查。

我的建议是:写程序之前先用纸笔画流程图。把设备的每个动作、每个状态、每个条件都画出来,确认逻辑没有漏洞之后再打开编程软件。这个习惯我坚持了十二年,到现在做复杂项目依然如此。

3.2 状态机是解决复杂逻辑的利器

当设备动作超过五步、有多个分支和互锁条件时,用传统的置位复位或者自锁电路写程序会变得非常混乱。这时候状态机(State Machine)就是最好的工具。

状态机的核心思想是:把设备的运行过程分解成若干个状态,每个状态有明确的进入条件、执行动作和退出条件。状态之间通过转移条件连接。这样程序结构清晰,调试时也容易定位问题。

在西门子PLC里,可以用整数变量表示状态号,用CASE语句(SCL语言)或者比较指令(梯形图)来实现状态切换。在三菱里可以用步进指令STL,或者同样用整数变量加比较指令。

我做过一个包装机的项目,整个流程有十几个工位、几十个动作,用状态机写出来主程序只有两百多行,每个状态独立成块,调试的时候哪个工位出问题就查哪个状态,非常高效。

3.3 IO分配和变量命名要规范

这是应届生最容易忽视的地方。IO分配表不是随便填填就完事了,它直接决定了你编程和调试的效率。

我的习惯是:输入点按物理位置或功能分区分配,比如X0到X7给按钮和急停,X10到X17给传感器,X20到X27给限位开关。输出点按执行机构类型分配,Y0到Y7给接触器,Y10到Y17给指示灯,Y20到Y27给电磁阀。

变量命名要见名知意。不要用M0、M1、M2这种无意义的地址,要用“启动按钮”、“左限位”、“电机过载”这样的中文或者英文缩写。西门子TIA Portal支持中文变量名,三菱GX Works也支持,用起来非常方便。

踩过的坑:早期做项目时变量命名混乱,三个月后客户打电话说设备有问题,我打开程序一看,满屏的M0、M1、V0、V1,自己都看不懂了。从那以后我强制自己用规范命名,哪怕多花十分钟,后期维护省下的时间远不止十分钟。

3.4 模拟量处理的基本功

温度、压力、流量、液位这些连续变化的物理量,最终都要通过传感器转换成电信号(通常是4-20mA或者0-10V),再进入PLC的模拟量输入模块。应届生必须掌握模拟量处理的完整链条。

以西门子S7-1200为例,模拟量输入模块把4-20mA转换成0-27648的整数。你需要用NORM_X和SCALE_X指令把这个整数转换成实际的工程量。比如一个温度传感器量程是0到100度,对应4-20mA,那么27648就对应100度,0对应0度。

反过来,模拟量输出也是一样。PLC输出0-27648,模块转换成4-20mA或者0-10V,去控制变频器频率或者比例阀开度。

这里有个关键点:4-20mA的信号,断线时电流为0,PLC读到的值会小于0(或者负值),可以用来判断传感器是否断线。而0-10V的信号断线时电压为0,和最小量程重合,无法区分。所以工业现场更倾向于用4-20mA。

3.5 通信协议不用怕,一个一个啃

PLC通信是很多应届生的噩梦。Modbus、Profibus、Profinet、EtherCAT、CANopen,名字都记不住。但其实常用的就那么几种,而且用法很固定。

Modbus RTU:最常用的串口通信协议,通过RS485或者RS232。主站发请求,从站响应。你需要知道从站地址、功能码、寄存器地址、数据格式。用西门子的MB_COMM_LOAD和MB_MASTER指令,或者三菱的ADPRW指令,配置好参数就能读写。

Modbus TCP:把Modbus RTU的报文封装在TCP/IP里,通过网口通信。配置更简单,不需要设波特率,只需要IP地址和端口号(默认502)。

Profinet:西门子主推的工业以太网协议。在TIA Portal里组态好设备名称和IP地址,导入GSD文件,就能像组态IO模块一样组态第三方设备。汇川、ABB、施耐德很多设备都支持Profinet。

EtherCAT:倍福主推的实时以太网协议,周期可以做到微秒级,适合运动控制。汇川AM系列、Codesys平台都支持。

我的建议是:先把Modbus RTU和Modbus TCP吃透,因为这两个协议覆盖了80%的第三方设备通信需求。其他的用到再学,不用一开始就贪多。

4. 上位机与系统集成

4.1 SCADA和PLC怎么连

SCADA(数据采集与监视控制系统)和PLC的连接,是自动化工程师往上走的关键一步。很多应届生觉得SCADA是IT的事情,跟自己无关,这个想法很危险。现在的自动化项目,纯PLC控制越来越少,大部分都要配上位机做数据展示、报警记录、报表生成。

SCADA和PLC连接的核心是通信驱动。以WinCC为例,它内置了西门子PLC的驱动,添加连接时选择PLC型号、填IP地址和机架槽号就行。如果是第三方PLC,比如三菱或者汇川,就需要安装对应的驱动或者用OPC Server中转。

OPC(开放平台通信)是解决不同品牌设备通信的通用方案。Kepware是最常用的OPC Server软件,支持几乎所有主流PLC。SCADA通过OPC连接Kepware,Kepware再连接PLC,这样SCADA就不需要关心PLC是什么品牌了。

我做过一个项目,现场有西门子S7-1500、三菱FX5U、汇川AM400三种PLC,上位机用WinCC。如果直接连,WinCC只能连西门子。后来加了一台Kepware,把三菱和汇川的数据通过Modbus TCP采集上来,再统一转成OPC DA给WinCC,问题就解决了。

4.2 上位机开发语言怎么选

如果你不想局限于组态软件,想自己写上位机,那语言选择就很重要。C#是工控上位机开发的首选语言,因为WinForm和WPF做界面快,NuGet上有大量现成的通信库(比如S7.Net、HslCommunication、NModbus),开发效率高。

Python也可以,配合PyQt或者Tkinter做界面,用python-snap7或者pymodbus做通信。Python的优势在于数据处理和算法,如果你要做数据分析或者AI相关的功能,Python更合适。

Java在工控上位机领域用得相对少,主要是Web端MES系统用得多。如果你走的是MES或者工业互联网方向,Java和前端技术栈是必须的。

我的建议是:先学C#,把WinForm和S7.Net通信跑通,做一个能读写PLC数据的小软件。这个过程中你会学到线程处理、异常捕获、界面刷新这些实用技能,比单纯看视频强得多。

4.3 数据库不是IT的专利

自动化工程师也要懂数据库,因为报警记录、历史数据、生产报表都要存数据库。最常用的是SQL Server和MySQL。

你不需要学到DBA的程度,但至少要会:建表、增删改查、写简单的存储过程、用C#或者Python连接数据库读写数据。

我见过一个应届生做的项目,报警记录存在PLC的掉电保持寄存器里,结果寄存器满了之后新报警覆盖旧报警,客户查历史报警查不到。后来改成PLC触发报警时通过Modbus TCP发给上位机,上位机写入SQL Server,问题才解决。

4.4 MES接口对接的常见坑

MES(制造执行系统)对接是自动化项目里最容易扯皮的部分。MES厂商、设备厂商、甲方三方各有各的说法,最后往往卡在接口上。

常见的对接方式有:数据库中间表(PLC或SCADA往MES指定的数据库表里写数据,MES定时读取)、WebService接口(SCADA调用MES提供的WebService方法)、MQTT(通过消息队列传输数据)。

不管哪种方式,一定要在项目初期就明确:数据格式、传输频率、异常处理机制、责任边界。我吃过亏,项目快验收了MES厂商才说数据格式要改,结果SCADA这边全部重做,多花了两周时间。

实操建议:MES接口对接前,先写一个模拟程序,把数据按照约定的格式发出去,让MES那边确认能收到、能解析。确认无误后再集成到SCADA里。这个步骤能避免80%的返工。

5. 现场调试与故障排查

5.1 第一次去现场要带什么

应届生第一次出差去现场,往往不知道该带什么。我列一个自己的标配清单:

  • 笔记本电脑:装好所有编程软件、驱动、通信线驱动。建议带一个USB转串口线(FTDI芯片的稳定性好)、一个USB转网口线。
  • 万用表:数字万用表加钳形表。
  • 螺丝刀套装:十字、一字、内六角、星型,各种规格都要有。
  • 短接线:调试时短接信号用,带鳄鱼夹的那种。
  • 网线:长短各带两根,现场网线经常不够长或者坏了。
  • U盘:拷贝程序、图纸、手册。
  • 笔记本和笔:现场记录问题、改线、参数,好记性不如烂笔头。

这些东西看起来琐碎,但少一样就可能让你在现场干瞪眼。我有一次去现场忘了带USB转串口线,结果现场只有RS232接口的触摸屏,折腾了半天才找到一根线。

5.2 程序下载不进去怎么办

这是应届生最常遇到的问题之一。PLC连不上、程序下载不进去,原因可能有很多。我按排查顺序列一下:

  1. 物理连接:网线插好了吗?串口线接对了吗?网口灯亮不亮?
  2. IP地址:电脑和PLC在同一个网段吗?PLC的IP是多少?用ping命令试一下。
  3. 驱动:USB转串口线的驱动装了吗?设备管理器里能看到COM口吗?
  4. 软件设置:编程软件里选的PLC型号对吗?通信接口选对了吗?
  5. PLC状态:PLC处于RUN模式还是STOP模式?有些操作需要在STOP模式下进行。
  6. 防火墙:电脑防火墙关了吗?有些杀毒软件会拦截通信端口。

我遇到最多的情况是IP地址不对。特别是用别人的电脑或者借来的PLC,IP地址往往是上一个项目留下的。这时候用编程软件的“搜索设备”功能或者用西门子的PRONETA工具扫一下网段,基本就能找到。

5.3 PLC启动不了且没有报错

这个问题在热词里出现了好几次,说明是很多人的痛点。PLC启动不了且没有报错,通常有几种可能:

电源问题:24V开关电源输出正常吗?用万用表量一下PLC的电源端子。有些PLC需要外部24V供电,有些自带电源。如果电源正常但PLC不启动,检查电源端子是否松动。

模式开关:PLC上的RUN/STOP开关是不是在STOP位置?有些PLC上电后默认是STOP模式,需要手动切到RUN。

存储卡问题:如果PLC插了存储卡,卡里的程序可能损坏或者不兼容。拔掉存储卡再上电试试。

固件问题:PLC固件版本和编程软件版本不匹配。比如用TIA Portal V16给V17固件的PLC下载程序,可能会失败。这时候需要升级固件或者换软件版本。

硬件故障:如果以上都排除了,可能是PLC硬件本身有问题。换一台同型号的PLC试试,如果换了就好,那就是硬件故障。

特别提醒:S7-1200/1500系列PLC如果启动不了且没有报错,先检查存储卡。我遇到过好几次,都是存储卡里的项目文件损坏导致PLC无法启动,拔掉卡就正常了。

5.4 模拟量信号跳变怎么查

模拟量信号跳变是现场调试的常见问题。一个温度信号本来应该稳定在80度左右,结果在70到90之间来回跳。原因通常有这几个:

干扰:信号线没有用屏蔽线,或者屏蔽层没有接地。变频器、伺服驱动器、大功率接触器都是干扰源。解决方法是用屏蔽双绞线,屏蔽层在PLC侧单端接地,信号线远离动力线。

接地问题:PLC的模拟量模块地和信号源地没有等电位连接。用万用表量一下两边的地之间有没有电压差,如果有,用一根线把两边地连起来。

传感器问题:传感器本身不稳定,或者供电电源纹波大。换一个传感器试试,或者用稳压电源给传感器供电。

模块滤波:PLC模拟量模块一般有滤波参数可以设置。西门子的模拟量模块可以设置滤波等级,等级越高越稳定但响应越慢。根据实际需求调整。

5.5 通信断线怎么排查

Modbus RTU通信断线,先查硬件:RS485的A接A、B接B,终端电阻有没有接(长距离通信时需要在两端各接一个120欧姆电阻)。然后用串口调试助手抓报文,看主站发的请求从站有没有响应。

Modbus TCP通信断线,先ping一下IP通不通。通了但通信不上,检查端口号(默认502)、单元标识符(从站地址)、寄存器地址是否正确。用Modbus Poll工具模拟主站,看能不能读到数据。

Profinet通信断线,在TIA Portal的在线诊断里看设备状态。常见原因是设备名称不对、IP地址冲突、网线质量差。Profinet对网线要求比较高,建议用工业级网线。

6. 职业发展与持续学习

6.1 前三年怎么规划

自动化工程师的前三年,我建议这样分配精力:

第一年:把电气基础打牢。看懂图纸、会选型、能独立完成简单项目的电气设计和调试。PLC编程以梯形图为主,掌握基本的逻辑控制、定时器、计数器、模拟量处理。

第二年:深入学习通信和运动控制。把Modbus、Profinet玩熟,能对接第三方设备。学一门高级语言(C#或Python),能做简单的上位机。开始接触伺服和变频器的调试。

第三年:独立负责中小型项目。从需求分析、方案设计、选型、编程、调试到验收,全流程走一遍。同时开始学SCADA和数据库,往系统集成方向发展。

三年之后,你应该具备独立负责一个几百万级别的自动化项目的能力。如果还没有,就要反思是平台的问题还是自己的问题。

6.2 要不要学AI和新技术

热词里出现了“AI PLC代码生成”、“AI自动化物料选型”这些词,说明AI正在渗透到自动化领域。我的看法是:AI是工具,不是替代品。它可以帮你生成代码框架、优化参数、辅助选型,但它不能替代你对工艺的理解、对现场问题的判断。

我试过用AI生成一段PLC代码,逻辑上没问题,但细节上有很多不符合实际的地方。比如它不知道你的传感器是NPN还是PNP,不知道你的电机启动方式,不知道你的安全回路要求。这些都需要人来判断。

所以我的建议是:保持对新技术的好奇心,但不要本末倒置。先把PLC、电气、通信这些基本功练扎实,再去学AI工具怎么用。基本功不扎实,AI生成的代码你也看不懂、改不了。

6.3 证书和培训班的真实价值

很多应届生纠结要不要考证书、要不要报培训班。我的看法是:证书是敲门砖,但不是通行证。西门子的认证、Rockwell的认证,在求职时确实能加分,但面试官更看重你实际做过什么。

培训班的问题在于,它教的是通用案例,不是真实项目。你在培训班里做的红绿灯、电梯、灌装线,和实际项目中的设备差距很大。实际项目要考虑安全回路、故障诊断、断电恢复、多设备协同,这些培训班很少涉及。

如果一定要报培训班,建议选那种有实际设备可以动手操作的,而不是纯看视频的。另外,培训班的老师最好是有现场经验的,而不是只会讲理论的。

6.4 英语和文档能力被严重低估

自动化行业的高端设备和软件,很多是进口的。西门子、倍福、罗克韦尔的官方文档都是英文的,而且写得比中文翻译版好得多。你能直接读英文手册,解决问题的速度至少快一倍。

文档能力同样重要。你做过的项目,要能写成清晰的方案文档、调试报告、操作手册。这不仅是给客户看的,也是你自己经验的沉淀。我到现在还保持着每个项目结束后写总结的习惯,把遇到的问题、解决方法、优化思路记下来。这些总结后来成了我培训新人和写这篇文章的素材。

6.5 身体和心态的长期管理

自动化工程师的工作强度不小,出差多、加班多、现场环境差。我见过很多年轻人干了几年就转行了,原因无非是身体扛不住或者心态崩了。

我的经验是:出差时注意饮食和休息,现场再急也不要通宵干。通宵调试出来的程序,第二天看往往一堆问题。心态上要接受“问题永远解决不完”这个事实,设备调试就是不断发现问题、解决问题的过程。每解决一个问题,你就比昨天更强一点。

最后说一句实在话:自动化这个行业,发不了大财,但也不会让你饿着。它适合那些喜欢动手、喜欢解决问题、能从“让机器动起来”这件事中获得成就感的人。如果你是这样的人,那这行值得你投入。

我个人在实际操作中的体会是:入行前三年是最关键的,这三年里你养成的习惯、积累的基础、建立的知识框架,会决定你后面十年能走多远。不要急着追求高薪,先把本事学到手。本事到了,钱自然就来了。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进