ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

手机背光检测设备PLC控制系统实战:三菱5U完整方案拆解

手机背光检测设备PLC控制系统实战:三菱5U完整方案拆解 手机背光检测设备这几年在3C自动化里算是非常成熟的机型了但成熟归成熟真正能把程序写得稳定、高效、好维护的说实话不多。我前后经手过几条手机背光模组检测线从单机版到联机版都碰过今天拿一套用三菱5U做的方案出来完整拆一遍把硬件选型思路、程序架构、关键功能块的写法、现场调试踩过的坑一次性讲透。这篇东西适合正在做视觉检测类设备的朋友参考也适合准备从FX系列往5U迁移的电气工程师或者想做标准化程序框架的团队。内容全部来自实际项目方案可以抄但调试心得更值钱。1. 项目需求与整体方案设计1.1 手机背光检测到底在检测什么很多刚入行的朋友容易把背光检测和普通外观检测混在一起其实两者的侧重点完全不同。手机背光模组BLUBacklight Unit是液晶显示模组的核心光源组件它主要由导光板、扩散膜、增亮膜、反射膜、LED灯条等叠加而成。检测的核心指标集中在三块亮度均匀性、色度一致性、点灯后的外观缺陷亮点、暗点、划伤、异物、Mura。具体到设备动作上典型的单工位检测流程是产品流入定位机构夹紧定位后由探针或连接器压合完成点亮然后CCD相机在暗室环境下拍摄2到4个不同灰阶画面软件分析后将判定结果发给PLCPLC根据结果控制气缸把产品分到OK或NG料道。这一套流程里PLC承担的角色不只是简单的顺序控制它还管理着整个节拍节奏、视觉触发时序、结果交互、良品率统计、报警追溯甚至还要和上游MES系统做通讯。所以选型看起来是选一个PLC实际上是在定一套整机控制方案。1.2 为什么选三菱5U而不选FX或者L系列选三菱5U最直接的原因是它在定位控制和通信上的性价比这条设备上了一套伺服用于载台移动定位视觉系统走以太网通讯同时还要挂一个扫码枪做产品追踪未来还要对接MES。这些需求在FX5U上是完全够的但如果从整个产品线的通用性考虑MELSEC iQ-F系列也就是5U比老的FX系列最大的优势在于内置以太网口是标配而且支持结构化编程ST语言工程管理的灵活性高很多。很多人会问为什么不用L系列或者更高级的iQ-R系列。答案很简单成本。背光检测设备不是高精度半导体设备它需要的是足够的定位精度、可靠稳定的通讯、以及快速便捷的调试手段5U在这几点上正好卡在一个很合适的位置。伺服轴数最多4轴加扩展常规机型2-3个轴足够内置的定位指令也支持表格运行方式几百个定位点随便写。1.3 系统拓扑与控制架构这套设备的控制拓扑不复杂但有一个值得借鉴的地方把控制分区做得很清晰。我按功能把系统分成了三个区运动控制区、检测控制区、数据管理区。运动控制区负责载台X轴、Y轴、旋转轴的伺服定位以及各工位气缸的顺序动作检测控制区负责任何与视觉检测相关的信号流转包括相机触发、光源切换、结果接收判定数据管理区负责扫码枪数据解析、产品结果存档、MES通讯和报警记录。三个区在程序里是三个独立的程序块互不干扰后续哪一块出了问题排查起来非常快。通讯方面PLC内置以太网口直接连接视觉控制器和扫码枪使用的是Socket通讯。视觉控制器是海康的也有用基恩士的通讯协议类似扫码枪用的是传统的串口转以太网模块走TCP Server模式PLC作为客户端去读取。2. 硬件配置与程序地址规划2.1 主控模块与IO扩展方案主控用的是FX5U-64MT/ES这是一款64点的继电器输出型号。可能有朋友会问为什么不用晶体管输出原因很实在整个设备负载以电磁阀和交流接触器为主通断频率不高继电器输出完全够用价格还便宜。如果是控制伺服脉冲或需要高频输出的点位再单独用晶体管输出模块不迟。IO扩展用了两个16点输入模块和一个16点输出模块。实际分配上输入点主要覆盖各气缸磁开关、定位气缸到位信号、安全门开关、启动停止按钮、产品有无检测输出点主要覆盖各电磁阀、三色灯、蜂鸣器、不合格品剔除气缸。这里有一个规划上的细节我把所有安全相关的输入急停、安全门、光栅全部接在PLC的输入点上统一处理而不是简单地硬接线切断主回路。因为单独硬接线只能切断动力程序里还必须要感知到安全信号的变化去做复位、警示和状态记录否则复机的时候容易造成不必要的误动作。2.2 伺服驱动与控制配置载台定位用的是三菱MR-JE系列伺服和5U搭配不用额外买定位模块直接走内置高速脉冲输出。5U本体最多支持4轴200kpps脉冲输出对于这种检测设备的XY平台完全够用了。伺服参数设置有几个必调项电子齿轮比决定脉冲当量、加减速时间影响启停平稳性、位置增益影响定位稳定时间。一般我会将电子齿轮比设成10000个脉冲对应10mm行程这样每脉冲对应0.001mm视觉检测的载台定位精度完全够用同时调试的时候换算也方便。加减速时间上实测下来X轴建议加速200ms、减速200msY轴因为负载较小可以设150ms。如果您负载跟我这个不一样建议先用默认值跑然后观察跟随误差曲线再进行微调不要一上来就追求极致的快设备跑飞了比慢更麻烦。2.3 PLC内部地址分配思路程序写得多了以后你会发现一个容易维护的程序地址表一定是有规律的。我习惯把地址按功能分区固定下来这个习惯从FX系列一直带到了5U上效果很好。地址规划大致如下M0到M99为系统状态标志自动运行、手动模式、原点回归完成、报警状态等M100到M199为各工位控制标志每个工位8个位M200到M299为视觉交互标志D0到D99为系统参数区节拍时间、计数、运行时间D100到D199为定位坐标区D200到D299为视觉结果存储区D300以后是通讯缓冲区和MES数据区。这样一段分下去后面不管是自己维护还是交接给同事几百条程序翻下来都能快速定位问题变量。我见过很多设备程序地址写得跟天书一样一个M点到处都是报警了查半天查不到原因这种程序即使功能能跑长期看也是负资产。3. 核心程序结构与关键逻辑实现3.1 主流程状态机编写5U的程序和FX最大的区别在于支持结构化工程可以同时使用梯形图和ST语言。我的做法是主流程用梯形图写状态机大量的数据运算和通讯解析用ST函数块实现。这样做的好处是现场维护的电气工程师能看到直观的梯形图逻辑而后台复杂的数据处理又不用在梯形图里拉几百行指令。主流程的状态机是按工位拆分的。以典型的双工位检测设备为例一工位放料、二工位检测、三工位列OK/NG状态机的核心转移条件如下状态0空闲检测启动按钮或自动信号满足条件后进入状态1状态1放料中等放料气缸夹紧到位信号、产品检测传感器ON进入状态2状态2定位完成X/Y轴伺服移到拍照位定位完成标志ON进入状态3状态3视觉触发发送相机触发信号等待视觉检测完成信号或超时进入状态4状态4结果判定读取视觉结果区域判定OK/NG决定气缸动作路径进入状态5状态5出料复位放料气缸松开OK/NG分流完成回归状态0。这套状态机是设备最核心的骨架它确保任何情况下PLC都知道设备当前在干什么也方便做暂停、复位、报警恢复等操作。3.2 视觉交互逻辑的时序控制视觉交互是整个程序的灵魂也是最容易出现时序问题的地方。我的做法是用一个专用的ST函数块来做视觉触发与结果接收输入是触发命令和超时时间输出是检测完成标志和结果数据。触发命令发出后PLC同时启动一个内部定时器超时时间一般在3秒左右。如果3秒内没有收到视觉控制器的完成信号程序立即判定视觉超时报警并且做一次触发信号复位。这里有一个我在多个项目里反复踩过的坑如果是第一次触发失败后没有正确复位触发信号第二次触发时视觉控制器会认为是一次新任务但上位机软件那边可能还在处理上一次数据导致结果错位。所以复位逻辑必须放在结果接收并确认之后而不是触发之后就马上复位。视觉结果接收采用TCP Socket通讯。5U通过内置以太网口与视觉控制器建立TCP连接视觉检测完成后主动把结果字符串发给PLC。字符串格式我这边固定为产品条码 逗号 工位号 逗号 判定结果OK/NG 逗号 缺陷代码中间以分号结尾。PLC收到后在ST块里做字符串解析转存到D区。3.3 数据统计与MES通讯模块背光检测设备在产线上通常是要求有数据追溯的所以统计模块必不可少。我用D寄存器做计数OK数、NG数、总产出数各占3个寄存器每次检测完成后对应计数器加1并在HMI上实时刷新。除了计数外还记录了当前班次、开机时间、单产品节拍时间方便生产管理。MES通讯这块如果工厂有MES要求PLC作为TCP客户端主动上传产品检测数据。考虑到有些老MES系统对接比较麻烦我在这套程序里做了一个很实用的设计数据上传失败时自动存入一个FIFO缓冲区用ZR文件寄存器每5分钟自动重传一次直到上传成功或缓冲区满。这样即使网络抖动一下数据也不会丢失后面补传就行。这个需求听起来简单但很多工程师做通讯时只做了单向发送完全没有考虑到异常情况真正上线的时候就会被生产部门追着骂。4. 伺服定位与运动控制细节4.1 原点回归与定位参数整定5U内置的原点回归指令DSZR很好用配合MR-JE伺服可以做到高精度原点回归。我的参数设置是原点回归方向为负方向原点接近信号DOG用伺服自带的Z相输出作为零点信号。这样回归精度可以稳定控制在1个脉冲以内为后面的视觉定位打好基础。定位参数方面X轴加减速设200ms最高速度设为150mm/s定位速度爬行速度30mm/s。Y轴因为行程短加减速120ms最高速度100mm/s。这些速度看起来不快但背光检测设备本身就是一个精度优先的设备在拍照位置停下来之后需要等待稳定一段时间我一般设300ms才会发触发信号所以速度再快也无法提高多少节拍反而会增加定位时间。4.2 多点位定位与视觉对位这套设备由于每次放料的位置会有偏差光靠机械定位无法满足检测精度。因此我加入了一个视觉对位纠偏功能先拍一张低分辨率图像识别产品实际位置计算出偏移量然后PLC通过偏移数据修正定位坐标。这个实现的关键在于坐标换算公式。相机拍到的偏移量是像素值需要先换算成实际距离再叠加到PLC定位坐标上。具体做法在视觉软件里做一次标定标定结果传一个脉冲当量系数像素到脉冲的换算系数比如1像素等于多少脉冲给PLCPLC在收到视觉的X/Y偏移量后乘以这个系数再加上基准定位坐标就是最终的修正坐标。这个逻辑在ST函数块里写很方便梯形图做这个运算会麻烦不少。我把计算函数块命名为CAL_OFFSET输入为基准坐标D100、D101、视觉偏移D210、D211、脉冲当量系数D220输出为修正坐标D110、D111。4.3 伺服常见异常与保护逻辑伺服驱动器报警是现场最常见的问题之一。虽然MR-JE的质量很可靠但负载卡死、线缆接触不良、超程等异常还是会出现。我的做法是一是伺服报警信号接入PLC输入点报警后程序暂停所有自动流程并记录当前工位状态到D区方便排查。二是加了软件限位。即使机械上有硬限位开关程序里也必须在软元件里再设一层防的是某种情况下硬限位刚好失灵时软限位还能兜底。三是每次手动JOG操作之后强制退出自动模式防止操作人员手动移轴后直接进自动导致撞击。这里特别提醒一句很多人做完定位程序就不管软限位了觉得机械上有缓冲器就够了。实际生产中伺服过冲撞到机械限位的力道非常大轻则损坏丝杆螺母重则直接顶坏产品定位治具。多花10分钟写一段软限位判断能省掉后面几个月修机的时间。5. 视觉系统与PLC通讯实现5.1 视觉检测系统选型与触发方式背光检测的视觉部分是整套设备的大头一般用海康或基恩士的智能相机或工业相机配工控机。我这里用的是海康的工业相机加上位机视觉软件相机和PLC之间通过IO触发和以太网通讯两个通道交互。IO触发线接到PLC输出点PLC定位到位后输出一个10ms的脉冲触发相机拍照。这是最常用的方法简单可靠不受网络波动的干扰。视觉软件检测完成后通过以太网把结果传给PLC。很多工程师怕用网络通讯会丢数据实际上只要做好心跳包和超时重传机制这都不是问题。5.2 TCP通讯程序的ST编写要点5U的Socket通讯功能是通过内置指令来实现的包括打开OPEN、发送SEND、接收RCV、关闭CLOSE。ST语言写这一块比梯形图清晰很多我把整个通讯流程封装成一个FB_GUARD函数块。函数块的逻辑如下上电或初始化时执行OPEN指令建立连接连接建立成功后置位一个心跳标志每100ms发送一个心跳包确认连接仍存活。若心跳失败累计3次则判定通讯断开断开后每5秒自动重连一次10次重连失败后输出通讯报警。数据接收方面使用RCV指令接收定长字符串后存入缓冲区然后在程序里调用串解析函数块用FIND指令定位分隔符用MID指令截取子字符串再用CONV指令转换成数值。这些字符串操作在梯形图里写会非常崩溃ST语言就非常顺手。5.3 视觉判定与PLC联动的防呆设计视觉判定和PLC联动的防呆设计核心思路是保证视觉结果只能被消费一次绝不能出现重复使用上一次结果的情况。我在程序里加了一个结果序号vision_seq每触发一次拍照PLC会给视觉软件发送一个递增序号视觉软件返回结果时也会带上同一个序号。PLC只有在收到匹配序号的结果时才采用否则丢弃并报警。这个序号机制听起来有点复杂但实际应对的场景很真实比如人工干预、系统复位、通讯重连等因素都可能导致某个结果被重复读取或者漏读。有了序号校验这些问题在逻辑上直接被杜绝了不会产生“看起来没报错但产品分料分错了”的隐性质量风险。6. 人机界面与调试维护功能6.1 触摸屏画面结构与操作逻辑HMI用的是威纶通MT8071iP与FX5U通过以太网连接。画面结构设计成几页主操作页、参数设置页、IO监控页、报警记录页、数据统计页、手动调试页。主操作页放最核心的按钮和状态灯包括启动、停止、复位、急停、自动/手动切换、产品计数显示、当前工位状态、报警文本。参数设置页放伺服坐标参数每个工位可以单独设定、视觉触发延时、气缸动作延时等。IO监控页用于现场排查问题把所有输入输出的实时状态做成表格。报警记录页记录报警发生时间、报警代码、报警内容方便追溯。手动画面的设计我特别强调一版很多人不屑于做手动画面觉得自动能跑就行。但实际设备调试阶段90%的时间都是靠在手动画面里单个动作去验证机械和电气如果手动功能做不好调试效率会大打折扣。6.2 报警系统与故障追溯设计报警系统是设备运行稳定的最后一道防线。我的报警分类有四类安全报警急停触发、安全门打开、光栅遮挡、设备报警气缸不到位、伺服报警、气压低、通讯报警视觉断线、扫码失败、MES连接中断、工艺报警视觉NG、视觉超时、定位超时。每一类报警在程序里的处理方式不同。安全报警属于最高级别立即停止所有动作并且必须人工复位才能恢复设备报警停止当前周期排除故障后按复位键继续通讯报警可以建立一个自动恢复机制网络恢复后自动继续工艺报警只是本产品判NG设备不需要停机。报警记录除了在HMI上显示外PLC侧也存了一个环形缓冲区每条报警记录保存时间戳和报警代码可以给上位机读取。这一部分是我后期排查问题最重要的依据。很多时候生产反馈“机器又停了”到现场故障已经复位了看不到任何痕迹有了报警缓冲存储一下就能定位到是什么原因触发的停机。6.3 生产数据看板与产线对接预留现在工厂做数字化改造的越来越多设备如果一开始就没考虑数据接口后面要被产线系统强行要求加数据上报时会很痛苦。所以即使在早期的项目里我也会预留一个标准的数据接口。我在这套程序里预留了一个以太网接口和一套简单的JSON格式指令集通过TCP端口供其他系统查询查询状态、查询产量、查询报警、复位计数器、获取当前产品结果都是标准的指令格式。上位机或MES系统只要按这个格式发送TCP指令PLC就会返回对应数据。实际测试下来这一套接口已经对接过两三种MES系统包括自己搭建的简单数据采集看板基本改改IP就能通。7. 调试全程回顾与现场排错清单7.1 从零到量产分几步走这套设备的调试路径和经验复用的价值很高我按顺序列一下照着这个流程可以少走很多弯路。第一步IO点对点测试逐个测试所有输入输出确认接线无误、传感器信号正常、气缸动作方向正确。这一步看起来简单但绝对不能省如果直接跳过后面程序调试时会不断被低级问题干扰。第二步手动功能调试通过HMI手动画面测试每一个单轴动作、气缸动作确认极限位置参数、加减速参数设置合理。同时把伺服参数做最后的确认包括电子齿轮比、方向设定、刹车功能测试。第三步原点回归与定位测试先单轴原点回归验证原点位置稳定再做两轴联动测试。我用千分表实测定位精度确认重复定位精度在正负0.01mm以内才开始写自动主流程。第四步自动流程空跑不带产品跑自动流程主要验证状态切换条件、各个互锁逻辑、超时报警是否有效。这一步会发现很多逻辑上的问题比如气缸还没到位就发下一个动作、伺服目标位置没到就发视觉触发等。第五步带产品联机调试直接放产品跑验证视觉触发时序、结果交互、分料逻辑。这个阶段建议从低速开始跑逐步提速到目标节拍。第六步长时间可靠性测试连续运行48小时以上观察是否有偶发性报警、通讯断线、计数错误等问题。7.2 高频故障排查与永久性解决方案系统跑上线之后我还整理了一份高频故障排查表。我把常见的几个问题和对应解决策略放在下面方便大家参考。伺服定位偶尔偏差大出现在长时间运行后或温度变化较大的环境下。先检查机械连接是否松动再查伺服增益是否过低。我这里最后是通过提高位置增益和速度前馈增益解决了但如果是丝杆磨损导致间隙变大那就要做反向间隙补偿。视觉偶发超时最常见的是网络通信堵塞或者相机曝光时间异常。我的方案是提高视觉软件的优先级同时PLC侧设置超时自动重发触发信号。但要注意重发次数设2次即可多了反而可能造成视觉端任务堆积。气缸磁开关信号丢失很多时候是磁开关安装位置飘移了或者感应灵敏度不够磁开关的感应面要用万用表慢慢找位置找到后锁紧螺丝并打胶固定一劳永逸。扫码枪偶尔读不到码优先查产品位置是否偏了再查条形码是否反光影响读取。极少数情况是扫码枪协议设置被意外改动参数做好上传备份能避免这类问题。7.3 从这套案例里沉淀出的几个心得做完整套项目后有几个体会比较深。第一点程序结构的重要性要放在功能实现之前考虑。功能只是眼前跑通结构决定的是未来三年好不好维护。第二点通讯异常处理比正常通讯处理更重要正常通讯大家都会写异常恢复才是拉开差距的地方。第三点所有可能出错的环节都要有可追溯的记录这是工程师在产线上的自我保护也是持续优化设备的基础。再补充一句三菱5U这套平台整体给我感觉是介于微型PLC和中型PLC之间的一个非常务实的选择。它的脉冲定位能力、内置以太网、结构化编程、丰富的指令集应对背光检测这类设备绰绰有余。如果项目预算充足也可以考虑用CC-Link IE Field总线把伺服改成总线控制减少配线、提高抗干扰性但是成本也会上去这种方案看客户预算和实际需求。我个人在实际调试中的经验是不管换什么型号的PLC把设备工艺吃透永远是第一位的。程序语言只是工具真正值钱的是对设备动作时序的理解和对异常场景的预判能力。建议刚入行的朋友不要只盯着怎么写指令花时间把工艺流程图想清楚收效会大得多。
返回列表