那天下班前,老板扔给我一句话:明天生产线要同时跑八种产品
去年接了浙江一个做小家电配件厂的活。他们厂主要生产各种规格的塑料外壳,大的小的都有。以前是”一种产品一条线”的模式,每个产品固定用一台注塑机加上一套后处理设备。但这两年订单越来越碎片化,大订单变成了小批量多品种,很多设备的利用率降到了40%以下。
老板找我过去,说想把三个产品合到一条产线上做,减少设备和人工的浪费。我一看工艺,三种塑料外壳的尺寸、材质、加工温度、冷却时间、后处理参数全都不一样。每次换产品,工人得手动调整十几个参数:注塑温度从220℃改到190℃、保压时间从8秒改到5秒、冷却时间从15秒改到12秒、机械手的取件位置、传送带的速度……光换个模具就要折腾四五十分钟,换完还要试模调整,搞不好头两件就是废品。
老板说:”你能不能做个东西,让工人按一下按钮就自动切换所有参数?”我说:”这活儿,PLC的配方功能就是干这个的。”
什么叫PLC配方功能?用大白话讲清楚
配方功能,说起来很简单。你做过饭吧?番茄炒蛋有个配方:两个鸡蛋、两个番茄、一勺盐、两勺糖。鱼香肉丝有另一个配方:瘦肉三两、木耳、胡萝卜、郫县豆瓣。做菜的时候,你不需要重新学习怎么炒菜,只需要换一套配料的配比就行。
PLC配方功能也是这个道理。每次换产品的时候,PLC自动把跟这个产品相关的一整套参数全部加载进去,代替工人手动一个一个去设置。这些参数包括但不限于:温度设定值、时间设定值、速度设定值、位置坐标、压力设定值、模拟量输出值、PID参数……总之,所有需要变的东西都可以装进”配方”里。
具体的实现方式各家PLC不太一样,但思路大同小异。我用的是三菱FX5U,它自带的配方功能是通过”数据寄存器批量写入”来实现的。简单说就是在PLC里开辟一块专用的数据存储区,每个产品对应一个”配方号”,切换配方的时候,PLC自动把该配方号下的所有参数一次性写到对应的寄存器里。
三菱FX5U的配方最多可以存512组,每组最多256个参数,对于中小型生产线来说绰绰有余了。
选型阶段踩的坑
说到选型,我先帮大家排除一个坑。最早我考虑用触摸屏的配方功能来实现——现在市面上主流的触摸屏,像威纶通、昆仑通态、西门子的精智面板,基本都自带配方表功能。直接在触摸屏上建一个配方数据库,切换配方的时候通过宏指令把参数下发到PLC。
这个方案看起来最简单,但我试了之后发现一个大问题:触摸屏的配方数据是”离线存储”的,也就是说配方数据保存在触摸屏的ROM里,如果触摸屏坏了或者更换,配方数据就全丢了。而且触摸屏的配方管理功能普遍比较弱,批量导入导出不方便,对于经常需要新增产品的小厂来说不够灵活。
所以我最终选了”触摸屏做界面+PLC存配方+上位机做配方管理”的方案。PLC本体用专用的配方寄存器区域存储数据,触摸屏负责切换和显示,上位机(一个简单的C#程序)负责配方的新增、修改和批量导入导出。这样即使触摸屏坏了,换个新的重新连上就能用,配方数据在PLC和上位机里都有备份。
调试阶段差点翻车
调试的时候遇到了一个让我印象深刻的坑。第一次做切换测试的时候,选A产品运行得好好的,一切换到B产品,机械手直接撞到模具上去了——咔的一声响,我当时心都凉了。
排查了半天才发现问题出在哪里。机械手抓取位置的参数变化太大,A产品和B产品的尺寸差了一倍。切换的时候,所有参数是同时更新的,但机械手的位置是”绝对坐标”模式,位置参数一更新,伺服驱动就立刻执行了新的位置指令——从A产品的取件位置直接飞到B产品的取件位置。如果这时候机械手还在A产品的取件区域没有退出来,那就是直接撞上去。
解决方案其实也简单:切换配方的时候,先让机械手回到原点(安全位置),再加载新的位置参数,最后才执行新的动作。这个顺序听起来很基础,但实际写程序的时候很容易漏掉。后来我在配方切换程序里加了一个”切换安全流程”的子程序,顺序是:停机→回原点→加载新配方→参数校验→启动生产。从那以后再也没出过碰撞问题。
用户体验细节决定成败
系统做好了,我让厂里的工人试用了几天,反馈回来了几个很尖锐的问题。
第一个问题:工人说”我哪知道这个产品用哪个配方号?根本记不住”。对,工人不关心配方号的编号,他们只关心”今天要做的这批货叫什么名字”。所以我在触摸屏界面上加了一个产品名称的文本显示,不是显示”配方号001″,而是显示”端盖-白色-DN25″。产品名称跟配方号在系统里是一一对应的,工人看图识字,一看就懂。
第二个问题:换模具的时候,工人忘记改配方就开机了。注塑机按旧配方的温度220℃运行,模具换的是需要190℃的,开机后第一模就是废品。解决办法是:在每个模具上贴了一个RFID标签,注塑机的模具夹紧位置装了一个RFID读头。每次换完模具,读头自动读取模具ID,PLC根据模具ID自动选择匹配的配方。如果找不到匹配的配方,触摸屏弹窗报警提醒。工人换完模具,关上门,系统自动切换,全程不用按键。
第三个问题:质检的时候发现某一批次的参数被人动过,但不知道是谁动的。我加了操作日志功能,每次配方切换、参数修改都记录在PLC的掉电保持区里,包括操作时间、操作人员工号、修改前后的参数值。这样出了问题能追溯到人。
最终效果
这套系统运行了几个月之后,我跟他们厂长要了数据对比:
换型时间:从平均40分钟(其中参数调整占25分钟)降到了3分钟以内(主要花在换模具上,参数切换只需要几秒钟)。
首件合格率:从换型后的75%提升到了96%。因为以前手动设置参数经常出错或者漏设,现在PLC自动加载,不会遗漏。
设备综合效率OEE:从62%提升到81%。因为换型快了,可以更频繁地切换产品去做小批量订单,设备闲置时间大幅减少。
总结几个实用经验
第一,配方数据一定要有备份。PLC的电池总有没电的一天,配方数据丢了那真是欲哭无泪。我推荐的做法是:PLC存配方、触摸屏存配方、上位机存配方,三地冗余,任意一个坏了都能恢复。
第二,切换安全机制一定要做。不管你用的是什么品牌的PLC,配方切换时参数更新的”时序”一定要想清楚——哪些参数先改,哪些后改,哪些需要设备先回到安全位置再改。
第三,别忘了参数校验。配方加载完了之后,PLC应该自动检查一遍:温度设定值是否在合理范围内?速度设定值是否超限?有些兄弟觉得多此一举,但正是这样的检查能帮你避免大问题。
第四,给工人一个好用的界面。工人在车间里又热又累,界面不好用他们就直接不用你的系统了。参数名称用中文全称、显示当前值跟设定值的对比、出错时用醒目的颜色报警——这些细节决定了你的方案做出来是被夸还是被骂。
你们有没有做过类似的配方切换系统?遇到过什么奇葩问题?欢迎评论区分享交流。
(图片来自Unsplash)