
提到自动组装设备的控制系统干过这行的人都知道绕不开三菱FX系列。而如果要在这条产品线里挑一个最适合中小型非标自动机的型号我会毫不犹豫投FX5U-80MT一票。FX5U-80MT是三菱iQ-F系列里80点主机的代表80点I/O对一套完整自动组装设备来说覆盖率很高MT后缀的晶体管输出又正好满足频繁脉冲发送的需求简单说伺服和步进就是它的拿手菜。这篇文章我从设备选型、硬件架构、程序设计、现场调试到扩展对接几个角度拆一遍把我这几年在自动组装项目上踩过的坑和验证过的做法都放进去希望能帮到正在折腾类似设备的兄弟。这篇内容适合三类人看刚接触FX5U、对型号和指令体系还不熟的电气工程师做非标自动化设备规划、调试想系统梳理控制逻辑的老手还有那些正拿着老设备FX3U程序琢磨着怎么往FX5U迁移的同行。不吹不黑文章里写的都是我实测过、反复确认过的东西照着做能少走不少弯路。1. 为什么自动组装设备选FX5U-80MT当主控1.1 型号拆解80MT到底代表什么FX5U-80MT这个型号乍一看有点复杂拆开看就清楚多了。FX5U是系列名说明这台PLC属于三菱iQ-F平台是FX3U的升级换代产品。80代表主机本身带了80个点其中40个输入点、40个输出点对一套中等规模的自动组装设备来说这个点数的覆盖率很高很多项目连扩展模块都不用加就能跑起来。MT后缀里的T代表晶体管输出和继电器输出MR最大的区别在于响应速度和寿命。自动组装设备上最关键的伺服电机、步进电机都需要高速脉冲来控制继电器输出根本跟不上必须用晶体管输出。晶体管输出没有机械触点寿命长开关频率高可以直接给伺服驱动器发脉冲这是FX5U系列能在自动化装配设备里吃得开的根本原因。FX5U-80MT的晶体管输出类型还支持多轴定位内置高速脉冲输出配合三菱MR-JE系列伺服能用很简洁的程序实现多点定位、插补和原点回归。另外它标配以太网口和RS-485串口支持SLMP、Modbus TCP协议这在中大型项目里接上位机、接视觉系统都非常方便。1.2 和大型过程控制系统的选型差异我见过不少刚入行的朋友一看到设备规模稍大就想着要不要上更高级的PLC甚至开口就问能不能用DCS那一套来做顺序控制。这里得把场景掰开说清楚。像分区SCR脱硝喷氨控制系统、SIMATIC PCS7这类过程控制系统面向的是连续工艺、批量控制、模拟量回路讲究的是PID调节、冗余、安全联锁和批次追溯那是过程行业的主战场。自动组装设备不一样它要的是高节拍的离散逻辑气缸伸出去、到位信号回来、伺服转一个角度、夹具夹紧、气动压装、检测通过、放行下一工位。这种控制对扫描周期的实时性、点位逻辑的灵活性要求极高FX5U这种小型PLC反而是最趁手的工具。选型这件事不是越贵越好更不是平台越高级越好而是要围绕设备工艺选。FX5U-80MT相比大型PLC的优势在于上手快、成本低、编程灵活而且体积小能直接塞进紧凑的电气柜里。项目交付时客户往往要求维护简单招个电气工程师就能改程序FX5U的学习曲线比大型DCS平台友好太多。1.3 我总结的四条选型判断标准我一般按下面四条来判断一个自动组装设备项目是否适合用FX5U-80MT做主控你可以直接抄作业看点数系统输入输出点总数在60到100之间的FX5U-80MT是黄金选择点数超出就加FX5-16EX/16EYR扩展模块性价比依然很高。看轴数设备需要控制的伺服和步进电机在4轴以内FX5U可以内置搞定不需要额外加定位模块。看通讯需要连接HMI、上位机、视觉系统或者变频器的FX5U自带的以太网口和RS-485口够用不用另加通讯卡。看环境电气柜空间不大、设备结构紧凑、现场环境不算特别恶劣的FX5U体积小、发热低非常合适。2. 控制系统整体架构与硬件选型2.1 系统架构这几层各管各的事一套典型的自动组装设备控制系统大致可以分成三层。最上面是操作层也就是人机界面HMI负责显示设备状态、报警信息、生产参数、配方切换中间是控制层就是FX5U-80MT这台PLC负责逻辑运算、运动控制和故障判断最下面是执行层包含伺服驱动器、步进驱动器、电磁阀、气缸、传感器、真空发生器等。这样的架构看起来简单但实际布线设计时有一点容易被忽略FX5U的以太网口除了和HMI通讯通常还要和视觉控制器、扫码枪、甚至是车间MES系统通讯。如果只看成一个“显示器连接线”后面加设备的时候就会特别被动。我在项目设计阶段就会把以太网交换机预留出来把PLC、HMI、视觉系统都接到同一个局域网里这样后面无论是加数据采集还是远程维护都不用拆柜子重新走线。2.2 I/O分配预留是门必修课I/O分配的得失直接影响设备调试顺畅度和后期维护的体验。我首要原则是输入输出各预留10%的空点别把硬件点数用满。这点看起来是常识但很多项目在方案阶段就被销售压成本砍掉了预留点结果调试时想加一个气缸检测、加一个传感器只能换扩展模块工期和成本都受伤。下面是一个五工位旋转式组装机的I/O分配示例这种结构在小型装配线上很常见区域输入点典型分配输出点典型分配操作与安全启动按钮、停止按钮、手动/自动切换、安全门开关、急停三色灯、蜂鸣器、安全门锁工位一 上料振动盘有料检测、上料气缸缩回到位、伸出到位振动盘振动器、上料气缸电磁阀工位二 定位工件到位光电、定位气缸夹紧到位、伺服原点定位气缸电磁阀、伺服使能、脉冲/方向工位三 压装压装气缸退到位、压到位、压力传感器压装气缸电磁阀、保压电磁阀工位四 检测光纤检测结果、视觉OK/NG信号、扫码枪触发视觉触发、吹气电磁阀工位五 下料下料口满料检测、下料气缸到位下料气缸电磁阀、NG料仓电磁阀这个分配我特别想强调一点把急停和安全门回路单独规划不走普通输入点。急停回路必须硬接线进入安全继电器再由安全继电器的监控输出给PLC一个安全状态信号。PLC程序里再把这个信号串联到每一个自动运行步进条件的起始位置。这种双保险的方式能确保即使PLC程序跑飞硬件安全回路依然能把设备停下来。2.3 接线防护晶体管输出最容易踩的暗坑FX5U-80MT的晶体管输出点驱动电磁阀的时候有个问题必须处理电磁阀线圈是感性负载断电瞬间会产生很高的反向电动势如果不做任何处理轻则干扰PLC内部电路重则直接烧输出点。我在前几年一个项目里就吃过亏四个电磁阀并联接在Y0到Y3上没有加续流二极管调试一周后Y0输出点对地击穿替换后还是坏。后来一一排查发现当时用的还是老继电器控制柜线圈本身没有干扰抑制器。之后我所有项目里凡是晶体管输出直接驱动继电器或者电磁阀必须在感性负载线圈两端并联续流二极管二极管的阴极接电源正极阳极接电源负极这样关断瞬间感性负载的能量可以通过二极管释放电压尖峰被压住输出点寿命立刻上来了。3. 程序设计与核心功能模块实现3.1 编程工具与程序架构FX5U-80MT的编程软件是GX Works3注意不是老的GX Developer工程文件格式也不一样。GX Works3最大的特点是支持标签编程和FB功能块程序结构性比老平台好一大截。我自己的习惯是规划程序时先分好模块不急着写梯形图把每个工位、每个动作、每个报警都单独建块后面维护时直接在导航树里点进去改不用在一坨梯形图里翻来翻去找。一个标准的自动组装设备程序骨架我通常会包含以下模块初始化模块设备上电后清中间变量、恢复默认值、检查急停和安全门状态。模式管理模块手动、单步、单循环、全自动四种模式互相切换每种模式有独立的使能条件。序列控制模块用状态继电器实现装配流程的步进逻辑这是整个程序的核心。报警处理模块采集伺服报警、气缸超时、气压过低、温度异常等信号统一处理后触发蜂鸣器并在HMI显示。复位模块报警解除后必须让设备回到安全位才能重新进入自动。3.2 用状态继电器搭装配流程FX5U的程序里我最常用的是STL步进梯形图指令用状态继电器S来表示每一个工序步骤。这种编程方式最大的好处是逻辑结构清晰每一步只有一个入口、一个出口维护的时候谁改都不会把别的地方捅坏。举个例子一个简单的压装工位流程LD X10 // 启动按钮 AND X11 // 安全门关闭 ANI X12 // 急停未按下 SET S10 // 进入上料步 STL S10 // 上料步骤 LD X20 // 振动盘有料 SET S11 // 进入夹紧步骤 STL S11 // 夹紧步骤 OUT Y10 // 定位气缸电磁阀 AND X21 // 夹紧到位 SET S12 // 进入压装步骤看到没有每个步骤都是“条件满足、动作保持、步进切换”的套路。这样写出来的程序现场调试时非常容易定位问题哪个工位卡住了直接看状态继电器停在S几就知道是哪个动作没完成比对着PLC程序一行行猜快得多。这里有一个细节状态继电器S的编号使用要有规划不能随便用。我习惯按工位分段比如S10-S19给上料工位S20-S29给定位工位S30-S39给压装工位S40-S49给检测工位S50-S59给下料工位。报警复位时用ZRST指令一次清掉所有使用到的S区间防止设备在非安全状态下从中间步骤恢复运行。3.3 定位与伺服控制的关键指令自动组装设备里伺服电机主要完成点位移动、精准定位、贴装、拧紧等动作。FX5U-80MT内置了定位指令集最常用的两个是DSZR和DDRVA。DSZR是带DOG搜索的原点回归指令。设备刚上电时伺服当前位置是不确定的必须执行一次原点回归让设备知道“现在在哪里”。实际使用时我一般在手动模式里做一个“回原点”按钮按下后PLC先发原点回归指令等伺服回到原点并完成定位后再让HMI上的“原点已建立”信号置位。没有建立原点之前自动模式的所有启动条件都必须被拒绝这个逻辑一定要做严实。DDRVA是绝对位置定位指令意思就是让伺服走到一个设定好的绝对坐标。程序里图省事的人喜欢用相对定位DDRVI但我在多工位设备上更推荐绝对定位因为每次定位的目标值都是固定坐标即使设备中途停下来重新开始也不会因累计误差越走越偏。绝对定位的坐标值我一般放在D寄存器里通过HMI配方界面去修改这样设备换产品型号时不用改PLC程序操作工直接在触摸屏上改几个数就能切换。3.4 气缸动作超时保护必须写在程序里自动组装设备上气缸非常多很多同行写程序时只写了气缸伸出、缩回输出而没有加动作超时检测。结果就是气缸卡住、磁性开关失灵或气管脱落时设备还在傻乎乎地往下跑直到把工件压坏或者机台撞坏才被发现。我的做法是给每个气缸动作都配一个定时器比如气缸伸出到位信号正常应该在1秒内到位那就设定一个1.5秒的定时器伸出指令一发出就开始计时如果在规定时间内到位信号没有来立即触发气缸动作超时报警设备进入暂停状态并且要在HMI上明确显示是哪个气缸、什么动作超时。这个成本很低但能为设备避免大量悲剧。4. 现场调试流程与问题排查实录4.1 先单动再联动最后才全自动我自己调试这套系统时的顺序很固定绝不跳过单动直接跑自动否则就是给自己埋雷。第一步手动模式单动测试。把每一个气缸点动开关测一遍确认伸出、缩回方向和磁性开关位置把每一个传感器信号检查一遍确认有料、无料、到位、离开信号都能正确反馈把每一台伺服点动慢速运行一遍确认方向和限位有效。第二步半自动单循环测试。在手动逐个检查都正常以后通过HMI上的单循环按钮让设备按程序流程跑一遍完整的单次装配但每一步都确认到位信号反馈正常观察节拍时间是否合理有没有干涉和憋劲的地方。第三步全自动连续运行。连续跑几十件产品重点观察两个指标一是节拍稳定性有没有逐渐变慢的情况二是异常停机的概率。连续运行阶段还能顺带验证报警系统是否准确有没有误报、漏报。4.2 常见报警与故障处理速查表我这两年遇到的现场故障七成以上是下面这几种可以直接对照排查故障现象可能原因处理方法伺服报警显示过载或过流机械卡死、抱闸未释放、伺服增益过高先手动盘车确认负载再检查抱闸信号最后调伺服增益气缸发出动作指令但到位信号一直不来节流阀太小、气缸活塞密封磨损、磁性开关位置偏移拧大节流阀试一下用手感觉气缸进退力度调整磁性开关位置Y输出点有输出指示灯亮但电磁阀不动晶体管输出公共端接线断开或保险丝烧断检查公共端电压和保险丝用万用表量输出点电压PLC和HMI通讯偶尔中断IP地址冲突、网线接触不良、电磁干扰固定IP并检查是否和车间其他设备冲突换屏蔽网线PLC侧接地处理自动运行中途突然停机无报警气缸超时保护触发、安全门传感器瞬间误动作查看状态继电器停在哪个工位对照检查该工位全部信号这个表里的“气缸动作超时保护触发”是排第一位的排查重点。因为很多时候报警显示在HMI上只是一个笼统的“Cycle Time Over”并不直接告诉你是哪个气缸超时。我会在报警信息里把具体的工位号和气缸编号也写进去这样现场操作工不用喊电气工程师就能知道问题出在哪。4.3 干扰和接地三个让我印象深刻的教训第一个教训是变频器干扰PLC模拟量。我们有一台设备里变频器和FX5U装在同一个柜子动力线从PLC上方走过距离只有十几厘米。伺服运行的时候偶尔会触发一个来路不明的报警查了两天才发现是变频器输出侧的高频谐波通过空间耦合进了PLC的输入信号线。后来把所有动力线全部套上金属软管信号线换成屏蔽线且屏蔽层在PLC侧单端接地问题就好了。第二个教训是多层设备信号线与电源线走同一个线槽。气缸磁性开关的信号线跟着电磁阀电源线一起往下走距离超过两米现场出现了“气缸一动作相邻传感器信号就被干扰”的怪象。这其实是典型的线间电容耦合把传感器线单独走线物理隔离之后一切都安静了。第三个教训是接地环路。设备用了两条地线一条接PLC柜一条接机械本体两台伺服之间的零电位不一致导致偶尔发生过流报警。后面把所有设备的接地线统一汇到配电柜的接地铜排单点接地PLC、伺服、变频器都从铜排单独引线再也没有出现这种莫名报警。4.4 一个真实调试案例原点建立不上的困惑有一台四工位旋转组装机按下回原点按钮伺服应该回到原点位置但设备停在那里不动HMI也没有任何报警。我先排查程序逻辑确认DSZR指令执行条件满足再查伺服驱动器面板显示的是“正向限位激活”当时就明白了伺服已经撞到了正向限位开关上再继续回原点就会过行程。处理方法是先把伺服手动反向退出一段距离让机械位置离开限位区域然后重新回原点。这件事让我养成了一个习惯设备的限位开关位置必须反复验证最好在装配完成后让机械工程师确认原点位置和限位开关之间的行程余量充足否则小零件公差累积起来就会导致原点建立失败。5. 从控制系统到智能制造扩展方向5.1 和视觉系统、MES对接的两种常见方式现在甲方对自动组装设备的要求早已不是“能跑”就行而是“能看、能记、能追溯”。FX5U-80MT的标准以太网口在对接视觉系统和MES时优势很明显。常见的对接方式是PLC触发视觉控制器拍照视觉系统把OK/NG结果通过TCP/IP报文传回PLCPLC再根据结果决定是放行还是把产品吹到NG料仓。这里有个经验报文的解析一定要做超时保护设定视觉系统响应等待时间比如2秒内没有收到回复就判定视觉通讯故障设备进入暂停。视觉系统毕竟是第三方设备谁也不敢保证它永远不掉线。和MES对接时FX5U既可以用MC协议主动上报数据也可以做SLMP服务器让MES定时来抓数据。我最常用的是把设备状态、当前产量、设备节拍、报警代码这些关键数据写到固定的D寄存器和M寄存器里再由上位机每隔几百毫秒读一次。这种被动读取的方式简单可靠程序改动量小MES那边也好写采集。5.2 数据采集与远程运维FX5U-80MT本身能存很多数据但长远看我建议在系统设计初期就规划一台边缘数据网关把PLC里的数据实时转发到数据库或者云平台。这样不仅仅是看设备状态还能把设备OEE、良品率、故障分布做成统计报表。我最近一个项目里就是用FX5U内置以太网连接一台网关盒子网关通过MQTT协议把信号转发到机房的时序数据库再在网页上做看板。设备报了什么警、停了多久、操作工几点签到全都自动记录客户非常满意。这套方案里PLC侧只需要做一件事把需要采集的数据全部集中到一个连续分配的D元件区域网关按配置去读以免把程序里散落的地址一个个去找。5.3 中小型设备控制系统的定位思考很多同行会纠结FX5U会不会很快被淘汰是不是该一步到位用更大型的平台。我的观点是控制系统选型和公司体量、设备形态、客户维护能力强相关。自动组装设备的特点是种类杂、批量小、交期短、改型快FX5U这种结构清晰、编程灵活、交付周期短的小型PLC反而最能适配这种节奏。我也参与过过程控制系统项目用过带高级过程库的PCS7方案它确实强大但那是为了化工、电力这种长周期连续流程准备的装到一台自动组装机上是纯粹的杀鸡用牛刀。FX5U的定位从来不是说要在所有控制场合和那些庞然大物一较高下而是在离散制造、顺序控制这个局域里做到性价比最优。定位想清楚了选型才不会左右摇摆。最后再分享一个我自己的习惯每次项目用到FX5U-80MT我都会把最终版的I/O分配表、程序结构说明、报警代码清单整理成一份文档放进电控柜抽屉。三五年后客户打电话来说要改设备接手的工程师看着这份文档基本不用打电话骚扰我。干这一行很多麻烦不是技术难而是不知道当年设计的人是怎么想的。把思路写清楚比把程序写得高深其实更重要。