检验与抽样

Carbon 如何按 AQL 抽样计划检验来料,以及检验模板和标注气泡首件检验图纸如何定义检查内容。

Carbon 的按抽样计划评估已收货物。当需要检验的物料过账收货时,Carbon 会暂扣已收单位、计算样本量,并要求在放行库存前提供检验结果。

本页说明检验生命周期、抽样计算、模板步骤类型以及标注气泡图纸的首件检验(FAI)工作流。模块概览参见质量。

来料检验生命周期

检验是按批次进行的:每条收货行一次检验(receiptLineId 唯一,因此一行不能生成两个批次)。批次携带解析后计划的快照——样本量、接收数、拒收数、标准、代码字母——在收货时冻结,之后修改计划不会改写历史。

偏轨状态
已通过
批次在处置时被接收。未抽样的实体释放为可用;抽样合格保持可用,抽样不合格保持已拒收。

状态枚举为 Pending、In Progress、Passed、Failed 或 Partial(quality.models.ts:698,对应 20260419163058_inbound-inspection-sampling.sql:73 中的 inboundInspectionStatus)。Passed、Failed 和 Partial 是处置结果。记录完所有样本不会关闭批次;检验员必须选择 Accept Lot(接收批次)、Reject Lot(拒收批次) 或 Partial(部分)。

HEADS UP

需检验的库存在处置前不计入现有量

当需要检验(requiresInspection)的物料过账收货时,其跟踪实体被设为暂扣,而非可用。它们已收到,但尚不能销售或消耗。只有接收(或逐样本合格)才会释放它们。

什么会触发批次

requiresInspection 标志位于物料上(item.requiresInspection,在 20260419094132_inbound-inspections.sql:6 中加入)。post-receipt 过账读取它,对每条物料需要检验且 receivedQuantity > 0 的已收行,解析抽样计划并插入一行 inboundInspection,带新的 II 前缀可读 ID。设置该标志的复选框只出现在采购物料(Buy 补货)上,因此来料检验是收货侧的关卡,而不是所有物料都要过。

记录样本

每个记录结果是一行 inboundInspectionSample。对于序列号物料,检验员每个样本扫描或选择一个具体跟踪实体;对于批次 / 库存 / 非库存物料,没有可扫描的离散单位,样本只记录合格/不合格,trackedEntityId 留空(inboundInspectionSampleValidator,quality.models.ts:754)。两种情况使用同一弹窗——序列号路径只是多一步扫描/选择。

处置

接收 / 拒收 / 部分按钮按已记录结果把关(InboundInspectionLotView.tsx:143):

  • 当已检验数量达到样本量且不合格数不高于接收数时,可以使用接收批次。
  • 不合格数超过接收数的那一刻即可使用拒收批次——不必完成抽样就能拒收明显不合格的批次。
  • 只要检验了任一单位,就可以使用部分。

处置会写入终态、记录 dispositionedBy / dispositionedAt,并向 inboundInspectionHistory 追加一行(该日志保留用于将来的计划自动切换)。拒收非跟踪库存批次还会以 Inbound Inspection 单据类型过账一笔补偿性的 itemLedger 负向调整,因为该已收数量没有按实体的状态可以把它排除在现有量之外(quality.server.ts:305)。拒收还可以自动打开一个——拒收对话框有「Open an NCR(打开 NCR)」复选框,默认开启,并通过 nonConformanceInboundInspection 链接新问题。这些问题如何推进到关闭参见质量。

抽样计划与 AQL

每个批次都需要样本量和接收/拒收规则。这来自物料的抽样计划(itemSamplingPlan,与物料 1:1,惰性创建),在收货时按批量解析。共有四种计划类型(samplingPlanTypes,samplingStandards.ts:17):

字段类型
样本量等于整批。0 个缺陷接收,1 个即拒收。
从批次开头取固定数量(sampleSize)。0 接收 / 1 拒收。
批次的一个比例(percentage),向上取整,封顶为批量。0 接收 / 1 拒收。
依据 ANSI/ASQ Z1.4 或 ISO 2859-1 的统计验收抽样——样本量和接收/拒收数来自标准表。

前三种计划使用零缺陷规则。AQL 使用标准验收表。

AQL 计划如何解析

——可接受质量限——是你愿意视为「足够好」的缺陷率。解析器(samplingStandards.ts 中的 resolveSamplingPlan,sampling-engine.ts 中为 post-receipt 提供镜像)接收计划、批量和公司标准,分两步查标准表:

  1. 批量 → 代码字母。 一张批量范围表把批次映射到所选检验水平下的代码字母(A–R)。水平 II 是一般默认值;I 和 III 在样本量与置信度之间权衡,S1–S4 是特殊的小样本水平(inspectionLevels,samplingStandards.ts:20)。
  2. 代码字母 + AQL + 严格程度 → 抽样方案。 代码字母和 AQL 选定一个单元格,给出样本量 n、接收数(Ac,仍可接收的最大缺陷数)和拒收数(Re)。严格程度决定使用哪张表:正常、加严(更严格,用于供应商质量下滑时)或放宽(inspectionSeverities,samplingStandards.ts:31)。

Carbon 暴露的标准 AQL 值是十二个规范档位 0.065, 0.1, 0.15, 0.25, 0.4, 0.65, 1.0, 1.5, 2.5, 4.0, 6.5, 10.0(standardAqlValues,samplingStandards.ts:34)。完整的 Z1.4 / ISO 2859-1 常量表位于 samplingStandards.ts(以及 sampling-engine.ts 中的过账副本)——对于 Carbon 暴露的方案,ISO 2859-1 的单元格与 Z1.4 一致,因此目前两个标准共用同一套表。

NOTE

计划是快照,不是引用

收货过账时,解析出的数字被复制到 inboundInspection 行(sampleSize、acceptanceNumber、rejectionNumber、aql、inspectionLevel、severity、codeLetter)。之后修改物料的抽样计划只影响未来批次,绝不影响已经在收货区的批次。如果未配置计划,post-receipt 默认使用 Inspect All、水平 II、正常。

标准本身(ANSI_Z1_4 或 ISO_2859_1)是公司级设置,而非按物料——它位于 companySettings.samplingStandard,默认 ANSI Z1.4。公司还可以通过 companySettings.enforceInspectionFourEyes 要求检验四眼签核,即记录样本的人不能同时处置该批次。

检验模板与步骤类型

抽样决定检验多少。检验模板决定每件检查什么。模板由有序步骤组成,每个步骤有一个类型决定检验员被要求做什么(procedureStepType,shared.models.ts:207):

字段类型
执行指令,不采集值——清单项。
尺寸读数。需要计量单位,并可设置最小/最大范围来限定可接受值。
自由数值或文本值,无单位要求。
合格/确认勾选。
记录执行步骤的时刻。
记录执行步骤的人。
从定义的选项集(listValues)中选择。
附件——照片、扫描件、证书。
嵌套的检验引用。

步骤校验器(qualityDocumentStepValidator,quality.models.ts:591)执行类型特定规则:测量步骤必须有计量单位,列表步骤必须至少有一个非空选项,同时设置 minValue 和 maxValue 时最大值必须大于或等于最小值。

首件检验、检验文档与标注气泡

对于首件检验(FAI)和尺寸签核,Carbon 直接基于图纸工作。检验文档是部件的 PDF 图纸,叠加编号的标注气泡,每个气泡标记一个待检验特征(inspectionDocumentValidator / balloonFeatureValidator,quality.models.ts:106)。

每个气泡特征包含:

字段类型
印在图纸上特征旁的编号——检验员读取的参考。
特征是什么(孔径、孔位、表面处理)。
目标值。
名义值上下允许的偏差。
名义值和公差使用的单位。

气泡锚定到特定 PDF 页面的某个区域(归一化 0–1 坐标,因此任意缩放都不会漂移),每个气泡可以携带来自同一 procedureStepType 集合的步骤类型,因此标注特征可以是测量、复选框等。Carbon 还可以从图纸自动识别气泡,并把识别到的区域转为特征。由于气泡、其几何形状和检验特征必须一起创建或都不创建,保存通过单个原子 RPC(saveInspectionDocumentAtomic)而不是分开写入。

检验计划位于质量 → 检验 → 检验计划。编辑器没有保存按钮:每次更改在停止编辑片刻后自动保存,工具栏显示 Saving…(保存中)、Saved(已保存) 或 Could not save(无法保存)。

来自模型 PMI 的计划

STEP AP242 模型可以携带自己的尺寸和几何公差(PMI,基于模型的定义)。当你把这样的模型上传到部件时,Carbon 会读取 PMI 并自动为该部件创建检验计划。计划承载 3D 模型而不是 PDF:

  • 每个尺寸和每个几何公差成为一个特征,按模型中的顺序编号。基准和注释被排除,因为它们没有可测量的内容。
  • ± 尺寸保留名义值和公差。极限尺寸,或两个公差都在名义值上方或下方的尺寸,以其区间中心为名义值,因此读数恰好落在图纸极限之间即通过。
  • 几何公差按偏差测量:名义值为 0,公差带为上限。
  • 没有数值公差的尺寸(只有配合等级、最小或最大)记录为合格或不合格。
  • 长度使用模型自己的单位(mm 或 in);角度使用度。

每个部件和模型只生成一次计划。再次上传同一模型不会改变它,因此你的编辑得以保留;部件上传新模型会生成新计划。可以像其他计划一样把它分配给收货或检验工序。记录测量时,模型取代图纸:选择特征会高亮其在模型上的注释并转向该视图,选择模型上的注释也会选中其特征。

量具

特征可以在计划编辑器的 Gauge Type(量具类型) 列中指定必须使用的量具类型。留空则允许任意量具。

检验运行时,每个特征有一个 Gauge 单元格。列表只提供启用状态的量具,设置了类型时只提供该类型,最近在同一工作中心使用过的量具排在最前;所有收货共享一个列表。量具按批次和特征记录一次,并记录记录时间。超出校准的量具会被标记但仍可记录,之后停用的量具仍会显示在其测量过的批次上。

检验阶段

每个检验批次都带阶段:由收货创建的批次为来料(Receiving),由工序创建的批次为首件(First Article)、过程(In Process)或成品(Final)。阶段在批次创建时确定——MES 检验路由接受 ?stage=first-article、in-process 或 final,已有批次保留原阶段——并在批次上显示为徽标,在检验列表中作为一列(可筛选)。

阶段目前是标签,不是门禁:首件批次不会阻止生产;出货检验要等有发货来源的批次后才可用。

首件确认

设置 → 生产页的首件开关可以要求首件:打开后,工单的生产工序在该工单的首件检验合格(stage = First Article 且状态 Passed)之前不能开工。检验工序本身不受限制——首件批次正是由它开启。开关默认关闭;读取失败时按拒绝处理,而不是放行:会因为数据库抖动而打开的质量门禁等于没有门禁。

批次默认以过程(In Process)开启。在尚无任何记录时,MES 检验页提供阶段选择器,检验员在第一件样本前把它设为首件;第一条样本或测量记录落地后阶段即固定,来料批次始终为 Receiving。

过程能力(SPC)

质量 → 检验 → 过程能力读取某特性上已记录的测量值,画出客户审核要看的那张图:

  • 一次检验就是一个子组——同一特性的一组读数是一起取的,其极差能代表短期波动。
  • X̄-R 控制图取最近 25 次检验,标出中心线与按子组大小算出的控制限,超出控制限的点会被标出。
  • 过程能力——用子组内西格玛(R̄ / d2)算 Cp、Cpk,用整体西格玛算 Pp、Ppk,对照特性的规格(名义值 ± 公差)。单侧规格只给 Cpk;没有规格时不给能力指数,而不是编一个。

控制图与能力指数只用最近 25 次检验:过程会漂移,控制图反映的是当下的过程,不是全部历史。

相关内容