
搞自动化的年头多了手底下经过的设备没有一百套也有八十套。前阵子刚完成一套基于三菱FX5U-80MT的自动组装设备控制系统从电气设计到程序调试全程自己跟下来觉得这台PLC用在中小型组装线上是真的合适。后台也一直有同行问我选型、编程、调试的事儿索性把这次的完整思路和经验整理成文给准备入坑或正在做同类项目的朋友做个参考。FX5U-80MT简单说就是三菱MELSEC iQ-F系列里80点I/O的CPU模块输入40点、输出40点晶体管输出。这套自动组装设备的控制系统以它为核心负责震动盘上料、气缸定位夹紧、伺服锁付、视觉检测、良品分拣、下料这一段完整流程。如果你是做非标自动化设备的电气工程师或者车间里负责维护组装产线的技术人员这篇文章基本能帮你搞明白1536行程序背后的设计逻辑和调试心得。1. 先掰扯清楚FX5U-80MT这个型号到底强在哪很多朋友一上来就问为什么不用FX3U为什么不用Q系列这个问题我在选型阶段就被问过无数次。说实话FX3U确实是经典十年前的设备有一半以上都是它在跑。但你拿FX3U做今天这种带以太网通信、带定位控制、带数据记录的组装设备就有点力不从心了。1.1 80MT的型号参数到底怎么读型号拆开看其实非常简单。FX是系列前缀5U代表第五代微型PLC平台也就是MELSEC iQ-F系列。80说的是本体自带的总I/O点数具体是40点DC24V输入加上40点晶体管输出。M表示输出形式是晶体管这对组装设备特别重要因为晶体管输出响应速度快能直接输出高频脉冲给伺服驱动器做定位控制。如果选成MR的继电器输出脉冲频率上限几十KHz伺服一跑高速就拉胯定位步数稍微密集点就丢脉冲。本体参数上FX5U-80MT的程序容量是64K步内置RAM可以存58K步这块比FX3U翻了两倍还多。我这次设备逻辑做了大概5300多步带了4个伺服轴的程序段、8个气缸的时序逻辑、30多个报警分支容量上还有一大半富余。另外CPU内置了4通道模拟量输入可以直接接压力传感器或者真空检测不用额外买模拟量模块成本省下小两千块。通信接口方面这台PLC标配以太网口、USB口、RS-485口和SD卡槽。以太网口特别实用接触摸屏不用再买通信模块一条网线直接连GX Works3下载程序调试速度比老式USB转RS-422快得不是一星半点。RS-485口可以用来连变频器或者第三方的温控表做Modbus RTU主站很顺手。SD卡槽用来记录生产数据、报警历史或者做程序备份后期维护可以直接拔卡拷贝省得带电脑去现场。1.2 为什么自动组装设备偏偏要用它组装设备跟普通机床或皮带机的控制系统有个本质区别组装设备是多工位协同、多动作并发的系统。震动盘在上料的同时夹紧气缸可能在半秒后就动作而伺服锁付轴必须在夹紧到位信号后立刻启动视觉检测和分拣机构又要跟主流程严格互锁。这种设备对PLC的响应速度、中断处理能力、定位精度要求都很高。FX5U有内置的4轴200KHz高速脉冲输出做锁螺丝、点胶轨迹这种直线和圆弧插补基本够用。它的高速计数器支持6通道200KHz编码器反馈信号可以直接进PLC省了买单独计数模块的钱。指令集比FX3U多了一批功能块比如可以直接用定位指令组合出回原点、绝对位置驱动、相对位置驱动、速度控制这些在组装设备里天天用。另外FX5U还支持结构体标签编程程序条理性比老式软元件编程清楚太多设备后期移交给别人维护也方便。要说最打动我的一点其实是它整体的集成度。一个小CPU模块把通信、定位、模拟量输入、计数全部搞定电气柜空间压缩得很小。我给这套设备做的电柜只有800x600x250比上一代用FX3U加一堆扩展模块的柜子小了三分之一客户看到都问是不是少装了东西。2. 自动组装设备控制系统的整体架构与信号规划控制系统的价值不在于把IO全部接上然后把程序跑通而在于从机械动作里提炼出清晰的逻辑模型。这套设备一共17个气缸动作、2个伺服轴、1套视觉检测相机和1个分拣拨叉所有动作要按一定节拍配合这对系统的顶层设计是有要求的。2.1 从供料、组装到检测分拣的完整工艺链路这台设备的生产流程是这样的震动盘把螺丝和塑料件分别排序送到取件位感应器检测到来料后抓取气缸下行取件然后旋转气缸转到组装位主件由人工放入治具并双手启动按钮气缸夹紧后伺服锁螺丝轴启动锁完螺丝后气动检测头和相机联合判定结果良品放行到出货口不良品由拨叉推到不良品盒然后治具松开一个循环结束。整个循环动作大约8.5秒。核心逻辑其实是多工位并行震动盘上料和人工放主件是并行的锁付和检测是串行的分拣又在锁付完成之后才允许动作。程序把每个工位做成独立功能块之间通过中间变量做握手信号而不是简单的顺序步进。这样调试时只动对应工位的程序其他工位不受影响。我当时选这套结构的原因主要是考虑到设备将来要改型。客户很可能过两个月要加一个新工位如果程序是单线顺序逻辑加一个工位可能会改掉一大半程序。而工位独立功能块加握手通信的结构新工位进来只需要新增一个功能块和几组握手信号主流程基本不用动。2.2 I/O分配思路4040怎么规划才不手忙脚乱FX5U-80MT本体40点输入、40点输出说实话如果设计时没有规划后面一定会不够。我做这套设备时把输入点分配成这么几类传感器信号来料检测、位置检测、夹紧到位、锁付到位、料满等共11点按钮与旋钮启动、停止、复位、急停、模式切换、双手启动按钮共8点安全信号安全门开关、气压低检测、伺服报警共4点伺服驱动器输入定位完成、报警、回原点完成共6点视觉系统输出信号OK/NG结果共2点其他预留总共用了31点还剩9点留作以后扩展输出点就更紧张了。8个气缸的电磁阀占8点伺服使能、方向、脉冲各2个轴共6点三色灯和蜂鸣器占3点分拣拨叉占1点震动盘和送料器控制占2点真空发生器占1点总共21点剩19点算是非常宽裕。这里要特别提醒新入行的朋友I/O规划时别抠抠搜搜把点刚好用完一定要预留。我做第一套设备时把点排得满满的结果调试到一半客户要加一个检测工位硬是去买了扩展模块又改线又改程序折腾了三天。从那以后我所有项目的I/O预留都至少在15%以上。2.3 脉冲定位还是总线定位组装设备到底怎么选伺服轴的控制方式也是选型时绕不开的问题。FX5U本体支持两种方式一种是直接用高速脉冲输出控制伺服驱动器一种是加总线模块用CC-Link IE TSN这类工业总线控制伺服。脉冲方式的优点是硬件成本低、编程简单缺点是精度和实时性受限于脉冲频率而且线束比较多——每个轴至少要脉冲、方向、使能、报警、到位5根线以上。总线方式的好处是接线少、参数监控方便、位置数据是数字传输抗干扰强而且能用上伺服驱动器的很多高级功能。但成本高一个总线模块加伺服总线型驱动器比脉冲型要贵不少。我这套设备选的是脉冲方式两个伺服轴都是MR-JE系列配套脉冲型驱动器。原因很直接锁螺丝轴不需要做圆弧插补或同步运动定位精度靠伺服本身的光栅尺闭环足够了脉冲频率要求也不高200KHz足够应对。唯一要注意的是脉冲线尽量用双绞屏蔽线而且屏蔽层要单端接地否则震动盘一启动脉冲信号容易被干扰导致丢步。现场调试时我就吃了一次这个亏后面详细讲。3. 程序设计与关键逻辑的实操拆解硬件选型只是地基真正的核心全在程序里。这套设备的程序我用了GX Works3开发语言以梯形图为主加了一部分结构化文本写的算法块。设计上遵循一个原则逻辑要简单到让维护电工能看懂又要复杂到能覆盖所有异常情况。3.1 自动流程的状态机设计替代老式步进梯形图组装设备最怕的就是死规矩的顺序逻辑。传统做法是用步进梯形图S0到S50一步步往下走每一步做一个动作。这在简单设备上没问题但工位一多、异常分支一多步进梯形图就会变成一团乱麻你在S20要判断S35的状态跳来跳去自己都会看晕。我这次的自动循环改成状态机写法。用一个字软元件里的不同位表示当前主状态如准备中、取件中、组装中、锁付中、检测中、分拣中。每个工位功能块在自己的触发条件下运行完成后把对应的状态位置1主状态机根据各工位的完成状态决定是跳转到下一步还是在当前等待。举个实际例子取件工位在感应到来料后把取件状态置为进行中气缸下行时如果有人打开安全门取件气缸会立刻停止这是安全互锁优先。主状态机在等待取件完成信号时发现安全门是开的根本不进入下一步而且会弹报警——安全门未关等待取件复位。这套逻辑放在老式步进里就要多写十几个跳转分支状态机里只要两行。状态机还带来一个好处单步调试非常方便。调试时可以把自动模式切换成单周期每一步执行后停在当前状态观察各工位到位信号是否正常。客户验收时的PPT演示里我就是用单周期模式一步步走给他看的整个流程一目了然。3.2 防错互锁组装设备不出安全事故的底线组装设备里面有人工上下料的工位安全互锁必须做到最严格级别。第一个是双手启动按钮我用的是双按钮同时按下0.5秒才允许启动两个按钮间距设置成300mm以上保证操作员不可能用一只手同时碰到。按钮信号程序里做了持续延时检查不满足时间窗直接不响应。第二个是安全门防护。机械臂周围和锁付工位前都装了安全门开关任何一道门被打开设备立即停止所有运动轴和气缸动作。这里有个细节伺服轴必须接急停信号而不是只靠PLC程序去停止。为什么因为如果只写程序停止PLC扫描周期有延迟可能在这一两个毫秒里轴还在动。而伺服驱动器的急停输入是硬件端子信号一到立即封锁输出响应速度是微秒级的。我把安全门开关的常闭点直接串在伺服和气缸电磁阀的电源回路里硬件和软件双重保护这才算放心的方案。第三个是气压检测。设备运行前必须确认气源压力在0.4MPa以上否则机械手夹紧力不够容易掉工件。用的是气压开关的常开点气压低于设定值就断开PLC检测到这个信号后把允许自动运行的中间继电器复位掉同时报警。而且在检测到气压异常后不是简单地停而是先让夹紧气缸保持夹紧——因为气压一掉如果马上松夹工件会直接砸下来反而危险。我加了一个气压掉线保持5秒的逻辑5秒内气压恢复就继续超时就报警等待人工确认。3.3 伺服定位程序与速度参数的选择逻辑两个伺服轴一个负责锁螺丝一个负责旋转工作台。锁螺丝的定位程序相对简单回原点用DZRN指令走减速找原点方式然后每次锁付都是相对位置驱动。因为螺丝孔位置是固定的公差在0.2mm以内开环的位置指令完全够用。速度参数上我吃了一次亏。第一次调试时把锁付轴的速度改成高速——理论上3000rpm对于这个螺丝规格是允许的结果连续锁了20颗螺丝后发现螺丝头滑牙。后来查下来是因为锁付过程要求低速对牙、高速切入、扭矩锁定三段式而不是单纯高速转。最终设计成前5mm用300rpm找牙到牙底后提高到1500rpm切入最后扭矩传感器反馈到设定值后立即降速到100rpm收尾。看上去节拍多花了将近1秒但良率从92%直接干到99.7%这个账是划算的。程序写法是用速度切换指令每次锁付前把速度预设值更新再加上位置判断来切换。如果用FX3U这种变速逻辑写起来要好几段CMP加MOVFX5U有专门的定位速度切换功能块一个块就好了省了不少事。3.4 报警系统与生产数据记录没人愿意盯着指示灯看设备运行中不可能永远不报警报警系统做得越细维护成本越低。这次我总共设置了37条报错信息从取件位无料保持5秒到锁付扭矩异常全部登记到触摸屏报警页面并附带发生时间。报警内容在触摸屏上直接用文字显示比如工位2伺服报警代码E6.1——过载维修工看一眼就知道往哪查不用再去翻梯形图找对应点。数据记录方面用了SD卡。每班次的产量、良品数、不良品数、平均节拍、设备运行率我写进一个定时记录功能块每10分钟写一次SD卡CSV文件。这数据对现场管理特别有用月底盘点、效率分析、甚至排查哪个时间段容易出不良都有据可查。因为没有连上位机MES系统暂时先这样处理以后客户要做物联网数据对接FX5U的以太网口直接就能支持SLMP或者Socket通信改起来不费劲。4. 调试阶段实录与常见问题排查手册调试是整个项目里最折磨人但也最有收获的阶段。我前后在现场蹲了7天整理了十几条调试记录挑几个典型的和几个共性的问题跟大家分享这些都是文档里找不到的实战经验。4.1 我现场踩过最大的坑脉冲线干扰丢步当时的现象是设备跑一个班次下来锁螺丝轴偶尔会偏那么0.3~0.5mm导致螺丝锁不到位。刚开始怀疑是伺服参数没调好把刚性、增益都试了一遍无效。后来用示波器看脉冲信号发现震动盘一工作脉冲线上就能看到明显的尖峰干扰。排查下来是脉冲线走线跟震动盘的电源线绑在同一个线槽里而且屏蔽层两端都接地了。震动盘电磁铁的启停瞬间会产生几百伏的瞬变干扰耦合进脉冲线。解决方法是把脉冲线单独走线槽远离动力线屏蔽层改成PLC侧单端接地。改了之后跑了两个班次再也没有丢步现象。各位做组装设备的一定要记住脉冲线的布线比想象中敏感十倍别图省事分开走线太重要了。4.2 气缸到位信号误判的经典问题流延机也好组装机也好气缸上的磁性开关用久了都会出问题——信号波形不干净、动作还没到就有感应、或者到了反而没信号。我这套设备上的是位置传感器不是磁性开关本来抗干扰应该好一点但调试时还是遇到了误判。情况是夹紧气缸动作后0.2秒我就开始检查到位信号结果有几次气缸其实还没完全到位但因为震动或惯性传感器短暂抖动触发了。如果这时伺服锁付已经启动螺丝孔对不上就会把产品夹坏。解决办法是程序设计上做信号滤波到位信号必须稳定保持30ms以上才判定为有效。这是PLC程序里最简单也最好用的一个防抖技巧强烈建议大家在做气缸状态判断时都加上。4.3 常用排查方法监控表加强制比万用表还快现场排查故障我最常用的不是万用表而是GX Works3的软元件监控表。开启在线监控后把所有输入、输出、中间继电器的状态拉成一排行一边操作设备一边看哪个点没动作、哪个点动作了但没触发后续逻辑基本一眼就能定位问题。需要强制输出时要注意安全。强制某个气缸输出前必须确认气缸周围没有手或异物。我在调试时都跟维护工交代过强制输出有风险最好用单步手动模式代替就是操作面板上的手动操作界面把每个气缸、伺服轴都做成独立手动按钮调试和维护时就在触摸屏上点安全得多。4.4 常见问题速查表收藏这页就够了故障现象可能原因排查方法设备上电后触摸屏连不上PLCIP设置不一致检查PLC以太网地址和触摸屏通信设置是否同一网段单个气缸不动作电磁阀线圈烧坏、接线松脱、PLC输出点损坏万用表测电磁阀两端电压无电压则查PLC输出伺服偶尔丢步脉冲线干扰、伺服增益过低检查脉冲线布线、屏蔽层接地提高伺服位置增益传感器信号乱跳干扰、接线不良、传感器损坏查屏蔽接地检查传感器电源必要时串10ms滤波触摸屏上产量不增加计数逻辑故障、计数位被清零在线监控计数软元件确认每个循环是否加1自动运行突然停住无报警中间信号丢失、急停回路断开查急停回路的常闭点是否断开看安全门开关位置气压报警频繁误报气压开关设定不当、气管漏气检查气路泄漏重新校核气压开关整定值4.5 调试工具与备件清单进现场必须带的东西调试设备并不是只带笔记本就行。每次进现场我都有一个固定的工具清单笔记本GX Works3预装、网线两根一根备用、三用表、示波器调试伺服必备、RS-485转USB模块以防用得上Modbus调试、全套内六角扳手和活动扳手、备用PLC保险管、备用磁性开关三个、备用传感器三个、扎带和线槽若干。其中示波器看起来大但伺服调试时看脉冲波形、干扰信号基本离不开它。有一次客户问我为啥别人调试都不带示波器我说那是因为他们还没吃过干扰的亏。5. 设备后期的扩展方向与我顺手总结的几个建议项目交付不等于结束。设备在现场跑稳定只是第一步客户后续大概率会提一些新需求。这套FX5U系统因为选型时就考虑了扩展后期加个扫码枪、接个MES系统、增加工位都还算从容。如果要跟MES系统对接FX5U的以太网口支持SLMP协议和Socket通信可以直接用GX Works3里的通信功能块做或者用ST语言写一个TCP客户端。产线数据往数据库传做SPC分析、追溯管理都不是难事。如果要接扫码枪串口或者以太网条码扫描枪都可以直连读到的条码数据存进PLC配方缓存区绑在每件的测试数据上做全流程追溯。如果计划做多条线连机那建议直接考虑CC-Link IE TSN总线。一台FX5U做主站多台设备加总线模块做从站节拍协同和数据共享都在一个网络里跑。这个扩展路径三菱的产品体系是通的后期成本可控。工具以外再说一个软能力的建议做组装设备控制系统的程序一定要养成写注释和做文档的习惯。我见过太多设备程序里全是X0、Y10这种裸标识符没注释没文档换了维护人员就是灾难。用GX Works3的标签编程可以起中文名比如锁付轴原点回归完成、取件气缸上行到位别人看程序再也不用来回翻I/O对照表这是最值得坚持的好习惯。再聊一个三个月的坚持调试完成后我建议至少保留一份每次报警的统计记录做周报。前一台设备三个月里报了127次警通过统计发现安全门频繁开关导致停机占比最高。跟客户现场沟通过后发现是操作员拿取产品时习惯性推门后来优化了安全门开启角度和取件口大小报警量直接下去了。数据驱动设备优化这件事比多写三百行逻辑还有价值。最后说说技术传承的问题。我现在这套标准程序框架已经复制到另一条产线的设备上了只花了一周就完成了改型和调试。里面每一个功能块都尽量做成参数化的比如气缸的动作时间、伺服的速度值、报警字的内容全部做成标签或者触摸屏配方值下次换设备不用改程序改参数就能用。做控系统久了你会发现真正值钱的不是哪一行的逻辑而是这一整套能够快速复用的控制方法论。趁着这套设备还在现场稳定运行赶紧把这些经验拓下来比埋头赶下一台设备的活儿更有长期价值。