我是零几年入的行从维修电工干起后来转PLC再后来写上位机再后来带项目。八年多下来技术栈换了三四茬踩过的坑比我写过的代码行数还多。今天不跟你聊虚的什么行业前景薪资待遇网上有的是。我就说技术本身把自动化岗位上那些真刀真枪的东西掰开揉碎了讲给你听。自动化到底在自动什么外行人看自动化觉得高大上机器自己动、产线自己跑。我告诉你实话自动化这玩意儿本质上就干三件事感知、决策、执行。感知靠什么传感器。光电开关、接近开关、编码器、温湿度传感器、压力变送器、视觉相机。这些东西把物理世界的信号变成电信号再变成数字交给脑子去判断。决策靠什么控制器。PLC、运动控制器、工业PC、单片机。脑子收到信号之后根据你写好的逻辑算出该干啥。执行靠什么执行器。气缸、电机、变频器、伺服驱动器、继电器、电磁阀。脑子说动这些东西就动起来。你干自动化甭管你具体负责哪一块这三样东西你得心里有数。光会写PLC看不懂传感器选型光会调伺服不懂通信协议早晚要出事。PLC这块我自己走过的弯路我刚学PLC那会儿犯了个低级错误。买的二手三菱FX照着网上教程写了个起保停电路下载进去按按钮灯亮了松开灯灭了顺利得不行。我就飘了以为PLC不过如此。后来做第一个正经项目给一台小型包装机写程序。设备有六个气缸、两个步进电机、三个传感器逻辑不复杂我两天就写完了。结果上机一跑传感器触发的时候气缸动作延迟有时候延迟几百毫秒有时候干脆没反应。查来查去最后发现问题出在扫描周期上。我把所有逻辑全塞在一个程序块里包括高速脉冲输出、通信处理、气缸动作判断、报警检测一锅烩。扫描周期干到了四十多毫秒传感器信号来了得等下一个扫描周期才能处理可不就延迟嘛。后来我把程序拆开了高速IO放中断程序里、通信放独立块里、普通逻辑放主程序里扫描周期压到了八毫秒以内问题解决了。从那以后我养成了个习惯写PLC程序之前先把扫描周期算一遍哪些东西必须实时响应的放中断哪些可以慢半拍的放循环里。这东西书上有写但没踩过坑你是真记不住。还有一个坑跟定时器有关。有次写一个延时启动的程序用了TON延时接通定时器。设备调试的时候好好的交付之后过了两个月客户说有时候启动延时不准有时候多了一两秒。我去现场查了半天最后发现是定时器的PT值用的是十进制常数但三菱的定时器基址跟定时器类型有关T0到T199是100毫秒基址T200到T255是10毫秒基址。我随便选了个T200以为跟T0一样结果我写的延时一秒实际上是十秒反复改了好几次才调到差不多但精度始终不对。后来换了T0问题马上消失。从那以后我记住了定时器编号不是随便选的基址决定了精度。这些细节说明书上都有但没人提醒你的时候你根本不会去看。通信这块血泪教训最多自动化离不开通信。PLC跟变频器说话、跟触摸屏说话、跟上位机说话、跟远程IO说话全是通信的事儿。我干上位机的头两年在通信上栽的跟头比写代码本身还多。总结下来最要命的就几个东西串口参数的玄学。你看说明书上写波特率9600、数据位8、停止位1、无校验你照配了怎么发数据设备都不理你。折腾了半天去问厂家技术支持人家来一句哦我们那个说明书印错了校验位应该是偶校验。我差点没把电脑砸了。这事儿后来我学精了说明书上的参数先信一半另一半拿逻辑分析仪自己抓波形看。不想花那个钱的话就用串口监控软件看PC端发的报文跟设备手册上的格式对不对得上一条一条对着抠。线接对了不代表通了。有个项目现场调试了三天两台设备之间的485通信就是不通。换线、换转换器、换波特率全试了不行。最后我蹲在地上仔细看接线端子发现对方的A端子排标错了标的是A实际内部连的是B。把线对调了一下通了。这事儿让我明白一个道理别人给的图纸和说明书你就当个参考一切以自己的实测为准。万用表量一下A和B之间的电压量一下有没有短路量一下屏蔽层有没有接地这些基本功比看一百遍说明书管用。协议解析不是你想象的那样。网上教Modbus的教程都是理想化的发03命令设备回一串整齐的数据你解析完了就完了。实际上现场收到的东西乱七八糟。有时候数据是断开的一次只收到半个包你得等下一批数据拼起来。有时候数据中间混了干扰字节你拼出来的报文CRC校验死活对不上。还有的时候设备忙回的是异常码而不是正常数据你没处理异常码程序直接崩了。我写通信代码现在都是这样收到数据先存到缓冲区然后从缓冲区里找完整的帧找不到就等着继续收。找到一个帧就解析一次解析完从缓冲区删掉。循环往复。收到异常码日志里记一笔界面提示操作工不崩溃。这个缓冲区拼包的处理逻辑说起来简单写起来至少得调试一两天才能稳定。新手最容易犯的错就是收到啥就解析啥一遇到分包就死了。伺服和运动控制我吃过的亏伺服驱动器这东西我头一次调的时候直接懵了。参数好几十个什么位置环增益、速度环增益、惯量比、前馈系数、陷波滤波器一个不懂。当时我带一个项目用到三台台达伺服控制一个XY两轴的贴装机构。起始阶段设备抖动得厉害定位不准贴出来的东西歪歪扭扭的。我干了一件事把三台伺服的所有参数全部恢复出厂然后只调三个东西惯量比、位置环增益、速度环增益。惯量比用伺服自带的自动惯量辨识功能跑一遍让驱动器自己算。位置环增益先给一个保守值然后慢慢往上加加到设备开始发震了就往回调20%。速度环增益也是同样的操作。就这三步设备的抖动问题解决了一大半。剩下的那一小半是机械装配问题滑块导轨的平行度差了伺服再准也白搭。后来我调伺服就这个套路先从机械和基础参数入手别上来就动那些高级参数。很多所谓的定位不准其实就是惯量比没配对或者增益给太高了导致震荡。还有一个经验伺服的脉冲输入方式一定要跟PLC的输出方式对得上。差分输出就接差分输入集电极开路就接集电极方向脉冲还是正反脉冲要在驱动器上设置好。这些东西接错了你程序写得再好电机就是不动或者只往一个方向转能把人气死。视觉这块我入门的时候差点放弃工业视觉听着高级其实就是用相机当眼睛用算法当脑子。我接触视觉是第三年一个项目要做产品表面瑕疵检测六个工位每个工位一台相机检测完把OK或者NG信号发给PLC。那会儿我连OpenCV是啥都不知道公司的老工程师给了我一个现成的库说你就调用几个函数就行。结果我调用第一个函数就报错提示找不到DLL。折腾了三天最后发现是环境变量没配库的路径没加进去。后来慢慢摸索发现工业视觉就那么几件事图像采集、预处理、定位、测量、识别、分类。图像采集你得会调相机参数曝光时间、增益、白平衡、帧率。工厂车间光线复杂曝光没调好拍出来的全是过曝或者太暗的照片算法根本没法处理。预处理你得会去噪、增强对比度、二值化。这些算法原理不用全懂但你得知道什么场景用什么方法。光照不均的用局部阈值有干扰的先用中值滤波去噪再处理。定位你得会找Mark点测量你得会算像素尺寸对应的物理尺寸识别你得会用模板匹配。我用的是C#加Halcon或者VisionPro这种商业库算法现成的你调参数就行了。但参数怎么调这是一门手艺活儿没有公式全靠试试多了就有手感。有一个项目差点把我搞崩溃了检测手机屏幕上有没有划痕。划痕很细微光照稍微偏一点就看不出来但光照太强了屏幕反光又会把划痕盖住。我前前后后试了十几种打光方式条形光、环形光、同轴光、背光、低角度光最后选了同轴光加偏振片才把划痕拍清楚。就这一个打光方案我折腾了三个星期。从那以后我明白了视觉项目的成败打光占了七成算法只占三成。一个打光方案对了后续的算法处理就顺了。打光方案不对你换什么高级算法都是白搭。再说几句掏心窝的话自动化这个行当技术面太宽了电气、机械、软件、通信、控制理论样样都得沾点边。我刚入行的时候以为把PLC学会了就够了后来发现不行还得懂伺服。把伺服搞明白了觉得差不多了又来一个上位机通信的项目又得学C#。上位机刚捋顺了领导说下个项目加视觉检测又得啃OpenCV。就这么一路追着跑追了八年发现没有尽头新的东西永远在冒出来。但你真要是问我现在最值钱的技能是什么不是具体的某一项技术是排查问题的能力。设备不动了你要能五分钟内判断是没电、没气、没信号还是程序跑飞了。通信断了你要能快速定位是线的问题、参数的问题还是设备本身的问题。伺服震荡了你要能区分是增益调高了还是机械卡死了。这个能力书上学不来只能靠一次次出问题一次次解决慢慢养出来的手感。我跟新来的同事说过一句话干自动化这行技术这东西可以慢慢学但解决问题的耐心和韧性你第一天就得带上。因为从你接手第一个项目的那个时刻开始各种想得到想不到的问题就会排着队来找你躲不掉的。你只有一个选择挨个解决它们。解决了你就能往前走一步。解决不了你就卡在那儿哪儿也去不了。这行就是这样简单又残忍但也公平。能扛住的人路越走越宽。扛不住的早就转行了。