检验与抽样
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(部分)。
需检验的库存在处置前不计入现有量
当需要检验(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):
sampleSize)。0 接收 / 1 拒收。percentage),向上取整,封顶为批量。0 接收 / 1 拒收。前三种计划使用零缺陷规则。AQL 使用标准验收表。
AQL 计划如何解析
——可接受质量限——是你愿意视为「足够好」的缺陷率。解析器(samplingStandards.ts 中的 resolveSamplingPlan,sampling-engine.ts 中为 post-receipt 提供镜像)接收计划、批量和公司标准,分两步查标准表:
- 批量 → 代码字母。 一张批量范围表把批次映射到所选检验水平下的代码字母(A–R)。水平 II 是一般默认值;I 和 III 在样本量与置信度之间权衡,S1–S4 是特殊的小样本水平(
inspectionLevels,samplingStandards.ts:20)。 - 代码字母 + 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 一致,因此目前两个标准共用同一套表。
计划是快照,不是引用
收货过账时,解析出的数字被复制到 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 次检验:过程会漂移,控制图反映的是当下的过程,不是全部历史。