
日期2026-10-01面向线束工艺、外观/AOI 工位、质量与制造信息化人员写在前面上一篇2026-09-30把密封气密写成了可审计的配方、压降/泄漏量、夹具寿命与 MES 多闸门并留了一句边界拉拔、剖面、外观等若在控制计划中各自独立——seal_ok不自动等价。本稿不再复述 ΔP / 稳压窗 / 夹具寿命也不重写导通缺陷码或 IR/hipot 漏流而是把镜头对准另一道常见质量闸门——线束外观 / AOI自动光学检测工位——以及它如何在 MES 里变成可审计的程序绑定、结构化缺陷码、图像证据摘要与过站门禁。公开工程方法讨论里电气回答完整性密封回答腔体/界面泄漏外观回答的是第三类问题连接器颜色/型号、卡扣/卡簧、绝缘皮破损、导体外露、标签错印/歪斜、折弯压伤、污染异物等是否落在视觉判定窗内。三道题正交。软件上最常见的事故不是相机“拍不到”而是电气 密封都 PASS包装站就放行——控制计划要求的外观从未落库或只靠人眼抽检无 SN 绑定本地 AOI 程序可改、无aoi_program_id/recipe_rev——事后无法证明当时亮什么灯、用哪套 ROI/阈值、NG 阈值是哪一版只有 PASS/FAIL没有结构化缺陷码——客户抱怨“偶发接错色壳/缺卡扣”时无法按码聚合返修图像全量塞进 MES 报文或完全不存——要么拖垮接口要么复盘时无图可查正确路径是digest object keyNG 不锁站 / 口头复测——外观 NG 件被“再扫一次绿灯”送出。本文把外观/AOI 工位写成智能制造里的工艺软件门禁harness_snaoi_program_id/recipe_revcamera_fixture_id绑定结构化缺陷码与图像证据摘要落库NG 冻结复测需授权与原因码包装/终检同时读上道电气 密封 本道aoi_ok。文中阈值阈值、缺陷码枚举与字段名均为示例占位一律标为「示例」不是行业标准硬限值。全文谈数据与闸门不写危险电气操作或绕过安全联锁的步骤。图1左侧仅电气密封 PASS 仍缺外观凭证右侧包装闸门要求电气 OK ∧ seal_ok ∧ aoi_ok。一、为什么“电气密封都过了”还不够1.1 电气、密封、外观是正交问题公开方法文通常把线束验收拆成多层名称因设备而异本稿用通用说法测法主要回答的问题与本稿关系导通 / IR / 耐压电气完整性与绝缘应力上道闸门本稿只引用不重写气密 / 密封密封界面泄漏是否在窗内上道闸门见 09-30 稿本稿不重写外观 / AOI视觉缺陷是否在判定窗内本稿焦点电气 PASS ∧ seal_ok ≠ 外观合格。低电压导通、高压绝缘与气密压降都无法替代“色壳是否装错、卡扣是否缺失、标签是否错印”反之外观 PASS 也不证明针脚映射正确或腔体密封达标。控制计划若要求分站MES 必须维护独立闸门位禁止用前道 PASS 冒充外观完成。连接器壳体颜色/键位、二次锁止卡扣、线号标签、护套破损、导体外露、折弯压伤、油污粉尘等场景里外观往往写进客户检验大纲或出货终检——本稿只承认“这类测法存在且应可追溯”不堆团体标准条文也不写相机/光源选型软文。1.2 软件视角的五个共同缺口从制造信息化看外观/AOI 最容易出现五种“看起来检过、其实不可审计”的状态结果未绑定harness_sn工位本地有图库MES 工单侧只有“本班外观多少件”无aoi_program_id/recipe_revROI、模板、阈值、相机曝光可被现场改参而不升版无结构化缺陷码只有 PASS/FAIL没有defect_codes[]如 WRONG_COLOR / MISSING_CLIP图像证据策略错误要么把整帧 JPEG 塞进过站报文要么完全不存——应写image_digestimage_object_key对象存储路径全量图异步归档相机夹具 / 工装不计数或混用/ 复测无授权定位偏差导致假 NG 或假 PASS或 NG 后同一操作员连刷至绿灯。后面几节分别对应程序怎么绑、缺陷码与图像字段怎么写、MES 闸门与复测纪律怎么落。二、程序绑定没有recipe_revPASS 只是本地绿灯2.1 最小身份链 程序链 相机夹具链一次可追溯的外观过站至少要串起字段示例名含义工程纪律harness_sn线束唯一序列号扫码启动禁止无码外观放行work_order生产工单与变体 / 控制计划对齐aoi_program_idAOI/视觉程序 ID与图纸 / 客户外观大纲绑定recipe_rev配方批准版本已批准只读改 ROI/阈值必须升版station_id/equip_id工位 / 视觉主机过站校验设备族与校准状态operator_id操作者追溯与复测授权审计camera_fixture_id相机定位夹具 / 托盘工装混夹具是定位漂移与假判高发源fixture_cycle_count夹具累计循环次数寿命到限应禁测或强制维护示例策略作者建议非强制标准开测条件写成硬闸门——扫到harness_sn后由 MES或边缘网关下发/校验aoi_program_idrecipe_rev 允许的camera_fixture_id本地不得静默使用“上次残留程序”。若现场仍靠 U 盘拷程序至少也要把程序哈希回写 MES否则 ECN 改色壳或改标签模板后无法证明当时跑的是哪一版。夹具寿命计数应在每次开测后递增超限示例占位拒绝开测。2.2 程序窗本身也是数据示例占位公开 AOI / 机器视觉方法叙述里一次循环常见阶段为到位定位 → 触发采图 → ROI/模板比对 → 缺陷分类 → 结果回写。软件侧应把这些“窗”版本化而不是写死在调试员脑子里。下列枚举与阈仅为教学占位禁止直接当本厂标准# 示例 · 禁止直接当本厂标准 示例程序 AOI-CONN-VIS-A / recipe_revR03 views [CONN_A, LABEL_TOP] 示例·多视角 template_set_id TPL-CONN-COLOR-07 示例 match_score_min 0.85 示例·模板匹配下限 color_delta_e_max 8.0 示例·色差上限占位 expose_conductor_px 12 示例·导体外露像素阈 label_ocr_required true 示例 defect_taxonomy_rev DT-02 示例·缺陷码表版本正确说法是视角、模板集、匹配/色差/像素阈、缺陷码表由客户规范与工艺验证共同给出软件负责按aoi_program_id/recipe_rev加载并拒绝无版本运行。任何把“0.85 / ΔE8 / 12 px”写成“行业统一门槛”的做法都会在审阅与客户审核里翻车。2.3 联调负例三连信息化验收故意加载错误recipe_rev邻接变体色壳或已废止模板→ 应拒绝启动或强制双签注入已知缺陷样件错色壳 / 缺卡扣 / 错标签示例→ 应aoi_okfalse、写defect_codes[] 图像 digest、冻结工位包装扫码被拒NG 后无retest_auth直接重测请求 → 拒绝开测要求原因码与授权。这三连比只测 Happy Path 更能暴露接口字段是否真进了闸门。三、缺陷码与图像证据PASS 之外必须留下可复盘的码与图图3左为缺陷码/图像层示例字段右为身份 / 程序 / 闸门 / 复测分层。名称与阈值为示例占位。3.1 结构化缺陷码示例枚举非标准缺陷码示例含义为何结构化WRONG_COLOR连接器/壳体颜色不符与变体 BOM 色码对齐支撑批次召回WRONG_CONNECTOR连接器型号/键位不符与图纸零件号对齐MISSING_CLIP卡扣/二次锁止缺失装配防错闭环EXPOSED_CONDUCTOR导体外露 / 绝缘破损安全与客户外观大纲LABEL_MISPRINT标签内容错印 / OCR 不符与 SN/变体主数据对齐LABEL_SKEW标签歪斜超窗可与 MISPRINT 分码统计KINK/CRUSH折弯压伤 / 护套压痕过程与物流损伤区分CONTAMINATION油污 / 粉尘 / 异物清洗与工位 5S 改进POSITION_FAIL定位失败 / 未采到有效图与真缺陷分码避免假 NG 污染 SPC原则禁止只用一个布尔 PASS。一次过站可返回多个码defect_codes[]并带上主缺陷primary_defect供返修路由。码表本身应有defect_taxonomy_revECN 增删码时升版。3.2 图像证据digest object key不把大图塞进 MES字段示例名含义为何需要image_digest关键帧摘要哈希过站同步可校验“当时看过的图”未被替换image_object_key对象存储路径/键全量图异步归档复盘按 key 拉取thumb_object_key可选缩略图键工单页快速预览仍非塞进 MES 报文view_id视角 ID如 CONN_A多相机/多视角追溯match_score可选模板匹配分复盘“差多少过窗”支撑 SPCaoi_ok本工位综合闸门位供包装/终检读取ts完成时间戳审计与节拍分析原则与压接曲线、气密曲线工位同类业务闸门与缺陷码同步落库原始图像可异步归档但不能“过站成功却图档丢失”也不要把数 MB 的 JPEG 塞进同步过站 JSON。3.3 判定逻辑教学非标准# 示例判定 · 阈值为占位 if localization_failed: defect_codes [POSITION_FAIL] aoi_ok false # 或 ABORT 策略由配方声明 for view in recipe.views: if match_score(view) recipe.match_score_min: defect_codes classify(view) # 示例WRONG_COLOR / MISSING_CLIP … if recipe.label_ocr_required and not ocr_match(view, sn_master): defect_codes [LABEL_MISPRINT] if expose_conductor_px(view) recipe.expose_conductor_px: defect_codes [EXPOSED_CONDUCTOR] aoi_ok (len(defect_codes) 0) # 示例策略也可按码严重度分级放行 write image_digest image_object_key for each critical view人检复核、半自动与全自动 AOI 属工艺布置选择软件上只要保证缺陷码表与程序版本一致以及包装站读的是aoi_ok或显式读最近一次有效外观记录 无 open 隔离。3.4 轻量分析有码有图才能谈改进按变体聚合defect_codes[]Top-N → 看是装配错料还是标签模板漂移按equip_id/camera_fixture_id交叉 → 区分产品真缺陷与定位夹具磨损POSITION_FAIL占比抬升 → 优先维护夹具/光源再谈人效与上道电气/密封联合看——例如某批次电气与气密全绿但WRONG_COLOR突增优先查供料与换型点检而非盲目复测刷绿。这不是完整视觉 SPC 手册只是提醒没有缺陷码与图像 digest外观数据无法进入持续改进闭环。四、MES 过站闸门扫码 → 程序 → 采图/判码 → 锁站/放行图2扫码绑定程序与配方 → 采图/判码回写 → NG 锁站复测需授权包装读多闸门。4.1 业务状态机教学UNTESTED → RECIPE_LOADED → INSPECTING → AOI PASS → aoi_oktrue 仍需上道电气∧seal 才 pack → FAIL → ISOLATED → 需 retest_auth reason → RETEST → PASS/FAIL ABORT / RECIPE_MISMATCH / FIXTURE_LIFE_EXCEEDED / NO_AUTH_RETEST / POSITION_FAIL → 不进入 PASS不开放包装公开行业叙述中的纪律句——未过检验禁止打印合格标签——在本稿语境下应扩展为包装/打标/终检不读口头而读上道电气闸门 密封闸门 本道外观闸门字段名可本地化。标签打印本身也应是可追溯业务事件本稿只强调业务门禁不指定具体打印中间件。4.2 最小字段表可本地化命名分层字段示例名用途身份work_order,harness_sn,station_id,operator_id谁在何时检了哪根程序aoi_program_id,recipe_rev, 视角/模板/阈值窗快照,defect_taxonomy_rev用的哪版外观程序结果defect_codes[],primary_defect,match_score可选,aoi_ok当时判定与明细图像image_digest,image_object_key,view_id可多条证据摘要 归档键设备equip_id,camera_fixture_id,fixture_cycle_count视觉主机 / 定位夹具复测retest_auth,retest_reason,rework_wo,retest_count授权与原因闸门aoi_ok,pack_allowed,label_print_allowed,ts放行位上道引用electrical_ok,seal_ok包装多闸门字段名可按企业字典翻译不可省略的是序列号、程序版本、缺陷码、图像 digest/object key、综合判定、复测授权与包装放行位。只有 PASS 位的外观工位在客户抱怨“偶发错色壳/缺卡扣”时几乎无法复盘。关于通信视觉主机 ↔ 边缘网关 ↔ MES 常见用 OPC UA / MQTT / 厂商私有协议选型不是本文重点。重点是过站报文里上述业务字段必须到齐而不是“相机在线就算集成完成”。4.3 闸门伪代码教学虚构function gate_aoi_station(scan, equip, fixture): sn scan.harness_sn if not sn: return REFUSE(NO_SERIAL) # 上道按控制计划引用未完成则拒绝开外观示例策略 if require_electrical_before_aoi() and not electrical_ok(sn): return REFUSE(ELECTRICAL_NOT_OK) if require_seal_before_aoi() and not seal_ok(sn): return REFUSE(SEAL_NOT_OK) recipe resolve_aoi_recipe(scan.work_order, scan.variant_id) if recipe is None: return REFUSE(NO_RECIPE) if scan.aoi_program_id ! recipe.program_id \ or scan.recipe_rev ! recipe.rev: return REFUSE(RECIPE_MISMATCH) if fixture.id not in recipe.allowed_fixtures: return REFUSE(FIXTURE_MISMATCH) if fixture.cycle_count fixture.life_limit: # 示例寿命 return REFUSE(FIXTURE_LIFE_EXCEEDED) if open_isolation(sn) and not scan.retest_auth: return REFUSE(RETEST_NEED_AUTH) # 允许开测设备回传结果后 write_result(sn, aoi_program_idrecipe.program_id, recipe_revrecipe.rev, defect_taxonomy_revrecipe.taxonomy_rev, defect_codesmeas.defect_codes, # 示例字段 primary_defectmeas.primary_defect, # 示例字段 image_digestmeas.image_digest, # 示例字段 image_object_keymeas.image_object_key, # 示例·对象存储键 equip_idequip.id, camera_fixture_idfixture.id, fixture_cycle_countfixture.cycle_count 1, tsnow()) increment_fixture_life(fixture.id) # 全量图由视觉侧异步写入对象存储MES 只存 digest key if not meas.aoi_ok: write_flags(sn, aoi_okFalse, pack_allowedFalse, label_print_allowedFalse) freeze_station(untildisposition) wo open_wo(typeREWORK_AOI, snsn, reasonmeas.primary_defect or AOI_FAIL) bind(sn, rework_wowo.id, isolationTrue) return REFUSE(AOI_FAIL_ISOLATE) multi_ok electrical_ok(sn) and seal_ok(sn) write_flags(sn, aoi_okTrue, retest_authscan.retest_auth, pack_allowedmulti_ok, label_print_allowedmulti_ok, tsnow()) if open_rework(sn): close_wo_if_pass(sn) return ALLOW_DOWNSTREAM_IF_MULTI_OK function gate_pack_or_label(sn): if not electrical_ok(sn): return REFUSE(ELECTRICAL_BLOCKED) if not seal_ok(sn): return REFUSE(SEAL_BLOCKED) rec latest_aoi(sn) if rec is None: return REFUSE(AOI_UNTESTED) if not rec.aoi_ok: return REFUSE(AOI_BLOCKED) if open_rework(sn): return REFUSE(REWORK_OPEN) return ALLOW_PACK_OR_LABEL原则一句话包装/标签放行条件 已绑定harness_sn∧ 上道电气 OK ∧ 上道 seal_ok ∧ 本道程序版本匹配 ∧ 最近一次有效外观aoi_oktrue∧ 夹具合法且未超寿命 ∧ 无未关闭返修/隔离 ∧ 放行位为真。缺任一字段MES 应视为未完成而不是“人说外观过了就过”。4.4 NG 锁站与复测授权纪律FAIL → 实物隔离 系统ISOLATED工位冻结至处置完成自动或人工开rework_wo带上primary_defect/defect_codes[]复测必须retest_authretest_reason——禁止同一未授权账号连刷至绿灯复测仍使用同一aoi_program_id/recipe_rev除非工程正式升版复测 PASS → 关闭 WO置aoi_ok并在审计日志保留授权人与原因码新图仍写新的image_digest/image_object_key复测仍 FAIL → 累加retest_count超限示例如 2 次占位升级 MRB / 报废流程。若客户控制计划允许“更换卡扣后仅复测外观”应在程序与文件里写清范围并用retest_scope一类字段表达——不要用口头例外掏空闸门。作者建议默认全项复测局部复测作为受控例外。人检复核若存在也应留下operator_id与复核结论而不是口头放行。4.5 与相邻工位的衔接上道导通 / IR / hipot / 密封本稿只引用electrical_ok与seal_ok缺陷码见 09-28IR/hipot 见 09-29密封见 09-30此处不重复本道外观/AOI独立质量闸门程序、缺陷码与图像 digest 必须可追溯下道包装/合格标签/出货读多闸门而不是只读电气或密封 PASS其他拉拔、剖面等若在控制计划中各自独立——aoi_ok不自动等价。五、落地清单工艺 软件各半盘点现有外观/AOI 工位哪些只亮灯、哪些已回写 MES、是否绑定harness_sn主数据补齐aoi_program_id↔recipe_rev↔ 缺陷码表版本 ↔ 客户外观大纲/ECN禁止残留程序默跑结果层至少落defect_codes[]、primary_defect、image_digest、image_object_key、aoi_okcamera_fixture_idfixture_cycle_count进闸门寿命到限禁测NG 冻结工位复测强制retest_auth 原因码包装/打标改为读电气 OK ∧ seal_ok ∧ aoi_ok负例三连错程序、已知缺陷样件、无授权复测纳入联调验收周会看缺陷码 Top-N 与定位失败率而不是“外观不良若干件”。安全、标准与适用性说明外观/AOI 工位涉及光源、运动定位与产线联锁必须遵循本厂设备安规、联锁、防护与人员资质本文只讨论数据字段与 MES 闸门不提供任何绕过联锁、不安全电气接线或危险操作步骤。具体安规以本厂与客户要求为准。文中测法与闸门说明参考公开的机器视觉/AOI 方法讨论以及质量追溯 MES 讨论不是某团体标准条款摘抄也不构成对特定相机、光源、视觉软件或 MES 品牌的选型建议。正文统一使用通用名AOI / 视觉主机 / 相机夹具 / MES / 边缘网关 / 对象存储 / OPC UA / MQTT。match_score_min、色差/像素阈、缺陷码枚举、夹具寿命上限、复测次数上限等均为示例占位量产必须以客户规范与工艺验证批准值为准。伪代码与字段名为教学虚构集成时按本厂 MES / 视觉主机 / 边缘网关 / 对象存储接口映射。外观不替代导通、IR/hipot、气密、压接高度、拉拔、剖面等验证手段也不声称覆盖全部线束缺陷模式。电气相关见同系列 09-28 / 09-29 稿密封见 09-30 稿本稿不重复。配图均为本地原创 SVG→PNG 技术示意图无品牌标识。