去年秋天,苏州一家做一次性医用穿刺器械的工厂被CFDA飞检发现问题——纸质追溯记录里,有几十件产品的装配批次号跟实际不符,还有一批的消毒记录压根没填。

不是工人不认真。一条线一天几千件产品,每个产品经过6个工位,每个工位要手工记录物料批次、操作人员、检验结果。一天下来就是上万条手写记录。漏几个、写错几个,太正常了。

老板说了一句话我印象很深:「我花钱搞了MES,但数据都靠人填,填到系统里已经是第三手信息了。源头就是错的,系统再贵也没用。」

这就是问题的本质——不是缺系统,是缺一个「源头可信的数据采集方式」。

一、现场情况摸底

这个厂的主要产品是一次性无菌穿刺包(包含穿刺针、导管、注射器等组件),每天产量约4000套。生产工艺是典型的流水线装配——3条组装线并行,每条线6个工位,从组件准备到最终封装。

这个「不能增加负担」的要求很关键——之前试过让工人在工位终端上扫码录入,结果效率下降,工人抵触。原因是手上戴着医用丁腈手套,触摸屏响应很差,扫码枪经常扫不上。最后一拍桌子,又改回了纸质。

二、方案设计

核心思路:用视觉自动识别替代手工录入,让工人该干什么干什么,数据采集在后台自动完成

工位一:组件来料验证

每个组件来料包上印有DM码(Data Matrix Code,医疗器械行业标准编码,包含物料号和批号)。在工位上方装一台500万像素工业相机,工人只需把料包放到固定位置——相机自动读取DM码,跟MES下发的BOM清单比对。

镜头选了12mm定焦,配合红色环形光源。红色光对塑料托盘的穿透性好,DM码印刷在透明包装袋上也能稳定识别。

工位二/三/四:装配过程验证

这些工位是关键——每个装配步骤完成后,需要验证组件是否正确安装。比如穿刺针的护套是否到位、导管连接器的卡扣是否锁紧。

每个工位装一台800万像素工业相机,倾斜安装,视野覆盖装配区域。模型用的是YOLOv8n,在边缘AI网关上本地推理。检测目标:

每件产品在每个工位的检测结果(通过/NG/图片快照)都记录到本地数据库,关联产品序列号。

工位五:激光打标+UDI验证

装配完成后,在适配器上激光打标UDI码(符合GS1标准的Data Matrix)。打标后立即用相机回读,验证可读性。如果打标模糊、位置偏移或不可读,立即报警,产品返工。

工位六:终检+封包

封包前做最后一道视觉检查——确认所有组件到位、UDI码清晰、包装无破损。合格的产品自动流转到封包工位,同时MES系统生成完整的追溯记录。

数据流设计

边缘AI网关是核心。它负责:

选型思考:为什么选边缘网关而不是直接连MES?第一,6台相机的图像数据量太大,直接推MES扛不住;第二,推理需要在现场实时完成(每件产品在每个工位停留约8秒,推理必须在3秒内出结果);第三,网络出问题时不能停线。

三、实施过程

第一周:样机测试

先拿一条线的一个工位做验证。在工位四(卡扣锁紧验证)装了一套样机,拍了500张样本照片做模型训练。第一版模型精度95%——看起来不错,但现场一跑发现不行。

什么问题?车间光照每两小时变化一次(上午北窗日光,下午西晒,阴天更明显),模型在这种光照变化下误报率飙升。加了数据增强(随机亮度变化、对比度调整)后重新训练,才稳定下来。

第二周-第三周:全线部署

一条线6个工位全部装完,花了大概一周。每台相机需要:安装支架、布网线(工业相机用GigE接口)、调整角度和焦距、配置光源亮度。

调试阶段暴露了一个之前没想到的问题:相机安装高度不一致导致产品在视野中位置有偏移。后来加做了统一的定位工装——每个工位焊接固定的相机支架,保证相机相对工作台的位置偏差不超过3mm。

模型训练花了更多时间。每条线有轻微差异(不同批次的组件公差不同),模型需要针对每条线微调。做法是先采集1000张正常品图片做基线,然后用300张各工位实际拍到的图片做微调。

第四周:UDI码赋码联调

激光打标机原来就有,但没和MES联动——工人打标内容自己手动输入。这次改成了系统自动下发UDI内容到打标机,打完后相机回读验证。

联调出了个Bug:打标机接到MES下发的UDI内容后,有一个约500ms的延迟才打标。相机触发早了,拍到的是空白区域,连续报了十几条「打标失败」。加了一个软触发延时后解决。

第五周:试运行

全线跑通后试运行了一周。第一天就发现一个问题:DM码解码成功率只有92%。排查下来是光源角度问题——原来的红色环形光源在透明包装袋上形成大面积反光,DM码区域一片白。

换成了红色同轴光源后,反光大幅减少,解码率提升到了98.5%。剩下的1.5%主要是包装袋褶皱导致DM码变形,这个后面通过增加码容错等级来改善。

四、实际效果

系统上线运行2个月后,我们跟工厂一起整理了数据:

追溯记录完整率:从约85%提升到约99.8%
纸质流转卡阶段漏填10%+错填5%,现在每个产品的6个工位检测结果自动生成、自动关联UDI码。漏记录几乎消失——除非相机本身故障。
MES数据滞后:从1-2天降到实时
以前是手工录入,晚1-2天。现在是每件产品在每个工位通过后的几秒内,追溯数据已经写入MES。飞检时可以当场调出任意批次的全部装配记录。
装配缺陷检出率明显提升
手工自检阶段,工人靠目视检查,疲劳状态下容易漏检。AI视觉稳定检出之前容易被忽略的缺陷——比如护套轻微错位、卡扣半锁状态。具体检出量不便说,但至少有一个价值是确定的:让飞检不再心慌。
误报率初期偏高,一个月后趋于稳定
第一周误报率约8%(主要是光照变化和产品摆放位置偏差),通过增加训练样本和定位工装后降到约2%。这个误报率在可接受范围内——操作工确认后放行,不影响效率。

五、遇到的问题和解决办法

坑1:丁腈手套的交互问题

前面提到过,这个厂以前试过扫码枪方案失败——就是手套问题。我们没让工人操作任何设备,所有数据采集自动化。工人唯一的交互是:NG时蜂鸣器响,工人按一下确认键(一个物理按键,不需要触摸屏)。

坑2:DM码在弧面包装上的解码困难

穿刺针的包装袋是圆柱形的,DM码印在弧面上,相机拍出来存在几何畸变。试了几种方案:多角度相机(成本太高)、深度学习解码(需要大量标注数据)。的解决方案是调整码的印刷位置——从弧面中央移到靠近封边处的平面区域。印刷位置调整后,解码率从78%直接跳到了96%。

坑3:相机散热和洁净室冲突

这个厂的组装车间是十万级洁净室,夏天温度28度左右。工业相机长时间运行发热,外壳温度到了55度。虽然不影响功能,但药监局审计时可能被质疑「热源对产品的影响」。加装了小型散热片和风扇,把温度降到了38度。

坑4:MES写入偶尔失败导致数据丢失

MES系统偶尔会返回500错误(高峰期并发写入导致)。前期没做重试机制,导致少量追溯记录丢失。后来在边缘网关上加了本地队列+3次重试+死信告警,写入失败时本地数据不删除,运维人员确认MES恢复后触发补传。

六、个人的思考

这个项目做完后,我对医疗器械行业的数字化有这么几个感受:

合规是刚需,比「降本增效」更敏感。大部分工厂对数字化的态度是「有用但非必须」,但医疗器械行业不一样——上一个批次UDI追溯记录不全,被飞检查到就是停产。这种场景下,只要能解决合规问题,客户愿意买单。

「源头可信」比「系统功能多」重要得多。这家工厂之前已经在MES上花了钱,但没用起来,原因就是数据入口不可信。再强大的MES、再贵的ERP,如果数据靠人填,就是垃圾进垃圾出。自动采集——哪怕是只解决一个关键参数——也比填100个字段有价值。

医疗器械行业的门槛是「理解GMP,不只是懂技术」。方案设计时,不只是考虑相机型号、模型精度——还要考虑洁净室要求、合规审计、灭菌验证、UDI编码规范。如果不懂这些,方案再漂亮,客户也不敢用。

边缘计算在这里不是选项,是必须。实时性要求(3秒内出结果)、数据量(6台相机同时跑推理)、可靠性要求(断网不能停线)——任何一个条件都决定了必须本地处理。这是我做过的对边缘网关要求比较高的项目之一。

七、给你的建议

如果你也在医疗器械工厂做类似的追溯项目,几点实在的建议:

  1. 先解决「数据从哪来」,再考虑「数据去哪」。MES的功能可以先放一放,把产线数据自动采集这一关过了,后面都好办
  2. 从一条线一个工位试点。别上来推6个工位3条线的全方案。先搞定一个工位的视觉验证,跑通数据链路再扩展
  3. 一定要做冗余设计。医疗行业的审计要求很高——数据不能丢、不能改。边缘网关的本地存储+重试机制+不可篡改日志是标配
  4. 不要低估光照问题。洁净车间的灯光布局和你想象的不一样——一般是顶部灯管均匀照明,亮度偏低。工业相机需要自备光源,并且要考虑光源是否发热影响洁净室温度
  5. 跟质量部的人多聊,不要只跟IT聊。懂GMP的人才知道真正要追溯什么——物料批号、灭菌批号、有效期、操作人员、设备编号。IT部门定义的需求通常不够完整
  6. UDI编码规则要提前确认。不同产品等级的UDI要求不一样(I类/II类/III类),打标内容、码制、位置都有具体要求。这个必须在设备进场前跟注册法规部门确认清楚