ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

首件鉴定控制程序落地:FAI判定、数据闭环与PDF受控

首件鉴定控制程序落地:FAI判定、数据闭环与PDF受控 简介这份《首件鉴定控制程序.pdf》是一份制造业质量管理企业标准面向技术质量、生产、业务及供应商管理人员用于规范新产品或重大升级产品的首件鉴定流程确保首件满足设计图纸与生产工艺要求。文件为青岛铁辉工贸有限公司THJY-02-SJJDCX-A10标准2016年2月发布、3月实施适用内部、客户及供方产品与零部件的首件鉴定。包内含1个PDF文件约67KB篇幅紧凑便于查阅目前已有92人学习。内容涵盖首件产品、首件检验FAI、内部/客户/供方首件鉴定等术语以及鉴定需求识别、策划、启动、实施、结果评审、问题整改、顾客首件鉴定和绩效统计等环节并列出相关记录表单与流程图。读者可据此理解首件鉴定全流程、部门职责与表单控制要求适合质量体系建设和供应商审核参考。1. 从一份首件鉴定控制程序.pdf 说起FAI 到底卡住了什么很多工厂都有类似场景质量部把《首件鉴定控制程序.pdf》放在受控目录生产部说换型时只收到一张首检单供应商说客户只让填 Excel最后交付评审时才发现图纸版本、工艺版本、工装编号和实测值对不上。真正卡住交付的往往不是表格本身而是触发条件、全项或 Delta 判定、样件数量、不合格闭环、PDF 版本生效没有连成一条线。首件鉴定FAIFirst Article Inspection要回答的是图纸、工艺、工装、量具、材料、人员、环境第一次组合后能不能一致做出符合要求的零件或组件。它比现场首件三检更重比汽车 PPAP 更聚焦在特性和实测证据上常见于机加、钣金、注塑、电子装联、航空结构件和汽车零件。适合质量工程师、工艺工程师、SQE、生产主管以及正在把纸质控制程序搬进 QMS 或 MES 的人。下面从边界、数据表、判定参数、PDF 受控几个角度把这份程序拆成能执行的步骤。2. 首件鉴定控制程序的边界与输入输出FAI、首件检验、PPAP 怎么分2.1 先分清 FAI、首件检验和 PPAP 的适用边界FAI 不是每班首检的放大版。现场首件检验通常发生在换型、换刀、换班、设备调整后目的是确认当班第一件能继续加工FAI 发生在新零件、新供应商、图纸或工艺版本变更、工装变更、材料变更、长期停线复产之后目的是留下完整特性证据并批准进入批量。汽车行业 PPAP 覆盖 PFMEA、控制计划、MSA、SPC、PSW 等更大量产准备证据FAI 可以作为 PPAP 里的尺寸结果子集但不能用一张 PSW 替代逐项 FAI。概念触发时机核心输出常见误用FAI新件、新供应商、图纸/工艺/工装/材料变更FAI 报告、特性清单、实测值、材料证书把首检单当 FAI 归档首件检验每班、换型、换刀、设备调整首检记录、操作者与检验员签署只签 OK不记录实测值PPAP汽车供应链量产批准PSW、PFMEA、控制计划、MSA、SPC用 PPAP 包替代 Delta FAIDelta FAI局部设计或工艺变更差异特性鉴定、关联特性复核变更了还做全项浪费检验资源边界清楚后控制程序里就能写清“什么变更触发什么级别”而不是所有变更都全检也不是所有变更都只签一张变更单。2.2 首件鉴定控制程序的输入清单与输出记录输入侧一般包括受控图纸和三维数模、客户规范、BOM、工艺路线、控制计划、检验计划、工装清单、量具校准证书、材料证明、供应商资质、变更单、上次 FAI 报告。输出侧包括FAI 计划、特性清单、实测记录、材料证书、不合格报告、偏差或让步接收单、FAI 报告、批准签署、归档 PDF。很多程序文件只写“按图纸检验”漏掉量具编号和校准有效期后面追溯时找不到数据来源。一个可执行的流程是工程发布图纸和变更单工艺编制 FAI 计划质量审核特性清单生产按受控工艺做首件检验按计划实测并记录量具质量汇总报告工程和质量批准最后把 PDF 和哈希写入受控目录。步骤不复杂难点在每一步都有唯一编号能回查到零件号、图纸版本、工艺版本和批次。提示输入清单里最容易漏的是量具校准证书和工装编号。没有量具编号的实测值在客户审核时基本等于没有记录。2.3 用一段 Python 判断触发全项、部分还是 Delta FAIdef decide_fai_type(change: dict) - str: 返回 full / delta / partial / none / review change 来自变更单或 PLM 触发事件 if change.get(new_part) or change.get(new_supplier): return full if change.get(drawing_rev_changed) or change.get(process_rev_changed): return delta if change.get(tooling_changed) or change.get(material_changed): return full if change.get(inspection_method_changed): return partial if change.get(doc_typo_only): return none return review这段逻辑把常见触发条件映射成鉴定级别。new_part是新零件new_supplier是新供应商两者通常按全项 FAIdrawing_rev_changed和process_rev_changed是图纸或工艺版本变更优先做 Delta FAI但差异特性必须覆盖关联尺寸、配合面和关键功能tooling_changed和material_changed是工装或材料变更常见做法按全项inspection_method_changed只影响检验方法时做部分鉴定doc_typo_only仅为文档笔误时不触发其余进入人工评审。参数不要写死在代码里应从变更单字段读取便于审计。2.4 控制程序文件里的职责和时机怎么写才不空职责不能只写“质量部负责质量”。可落地的写法是工程负责图纸、规范、变更单和关键特性标识工艺负责 FAI 计划、工装清单和作业指导书质量负责特性清单、检验计划、量具能力和报告审核生产负责按受控工艺完成首件SQE 负责供应商 FAI 资料复核质量经理或授权人负责批准和让步接收。时机写“首件完成后一个工作日内提交”比写“及时提交”更容易考核也更方便在 QMS 里设置超时提醒。3. 用 SQL 和 Python 把首件鉴定控制程序落成可查询的数据闭环3.1 首件鉴定主表与特性表的最小字段设计纸质 PDF 可以受控但查询和统计要靠结构化数据。最小闭环至少要有 FAI 主表、特性表、状态日志表。主表记录一次鉴定对应的零件、图纸版本、工艺版本、供应商和批次特性表记录每条可判定特性的名义值、上下限、实测值和结果状态日志记录谁在什么时候改了状态。-- 首件鉴定主表一次 FAI 对应一个零件/图纸/工艺组合 CREATE TABLE fai_master ( fai_no VARCHAR(32) PRIMARY KEY, part_no VARCHAR(64) NOT NULL, part_name VARCHAR(128), drawing_rev VARCHAR(16) NOT NULL, process_rev VARCHAR(16) NOT NULL, supplier_code VARCHAR(32), lot_no VARCHAR(32), fai_type VARCHAR(16) NOT NULL CHECK (fai_type IN (full,delta,partial)), sample_qty INT DEFAULT 1, status VARCHAR(16) NOT NULL DEFAULT draft, pdf_sha256 CHAR(64), effective_date DATE, created_by VARCHAR(32) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 特性表每一行是一条可判定的特性 CREATE TABLE fai_characteristic ( id BIGINT PRIMARY KEY, fai_no VARCHAR(32) NOT NULL, char_no VARCHAR(16) NOT NULL, char_type VARCHAR(16) NOT NULL CHECK (char_type IN (dimension,material,performance,visual,document)), nominal DECIMAL(12,4), usl DECIMAL(12,4), lsl DECIMAL(12,4), actual DECIMAL(12,4), unit VARCHAR(16), result VARCHAR(8) DEFAULT PENDING, FOREIGN KEY (fai_no) REFERENCES fai_master(fai_no) ); -- 状态日志审计追踪 CREATE TABLE fai_status_log ( id BIGINT PRIMARY KEY, fai_no VARCHAR(32) NOT NULL, from_status VARCHAR(16), to_status VARCHAR(16) NOT NULL, reason VARCHAR(255), changed_by VARCHAR(32) NOT NULL, changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );字段设计里fai_no是业务主键建议用“FAI-年份-零件号-流水号”生成drawing_rev和process_rev必须进入主表否则以后无法判断报告是否对应正确版本fai_type控制全项、Delta 或部分鉴定sample_qty记录样件数量pdf_sha256把受控 PDF 与数据库记录绑定char_type区分尺寸、材料、性能、外观和文档。生产环境里id可以用序列或 UUIDDECIMAL(12,4)要按图纸公差调整避免精度不足。3.2 首件特性判定 SQL从 nominal、USL、LSL 到 OK/NG有了特性表就可以在数据库侧先做一轮自动判定人工只处理 NG 和 REVIEW。下面 SQL 把上下限判定写成 CASE适合尺寸和性能特性。SELECT c.fai_no, c.char_no, c.nominal, c.lsl, c.usl, c.actual, CASE WHEN c.char_type IN (dimension,performance) AND c.actual IS NULL THEN REVIEW WHEN c.char_type IN (dimension,performance) AND (c.lsl IS NOT NULL AND c.actual c.lsl) THEN NG WHEN c.char_type IN (dimension,performance) AND (c.usl IS NOT NULL AND c.actual c.usl) THEN NG WHEN c.char_type IN (dimension,performance) THEN OK WHEN c.char_type IN (visual,document) AND c.actual 1 THEN OK WHEN c.char_type IN (visual,document) AND c.actual 0 THEN NG ELSE REVIEW END AS judge FROM fai_characteristic c WHERE c.fai_no FAI-2025-001;这段 SQL 的关键参数是lsl和usl。当lsl为空时视为无下限当usl为空时视为无上限所以不能简单写成actual BETWEEN lsl AND usl否则单向公差会全部判 NG。char_type为visual或document时actual用 1 表示符合、0 表示不符合便于统一查询。结果里的REVIEW不是失败而是提示缺少实测值或需要人工确认质量工程师应优先清空 REVIEW再统计 NG。3.3 Python 批量校验三坐标导出 CSV 并回写状态三坐标、影像仪或卡尺数据经常先导出 CSV再人工抄进报告。下面脚本用 Decimal 读取 CSV避免浮点误差并按上下限判定。import csv from decimal import Decimal from pathlib import Path def to_dec(v): return Decimal(v) if v not in (None, , NULL) else None def judge_dimension(actual, lsl, usl): if actual is None: return REVIEW if lsl is not None and actual lsl: return NG if usl is not None and actual usl: return NG return OK def parse_cmm_csv(path): rows [] with Path(path).open(r, encodingutf-8-sig, newline) as f: for r in csv.DictReader(f): actual to_dec(r.get(actual)) lsl to_dec(r.get(lsl)) usl to_dec(r.get(usl)) result judge_dimension(actual, lsl, usl) rows.append({ char_no: r[char_no], actual: actual, lsl: lsl, usl: usl, result: result }) return rows if __name__ __main__: for item in parse_cmm_csv(cmm_export.csv): print(item)encodingutf-8-sig用来处理 Excel 导出的 BOM 头Decimal比 float 更适合公差判定actual、lsl、usl为空时进入 REVIEW。实际回写数据库时要用参数化 SQL不要拼接字符串每条特性还要带上fai_no和char_no否则无法定位到具体报告行。若 CSV 里一个零件号有多件样件建议用sample_seq区分第 1 件、第 2 件、第 3 件。3.4 状态机与索引让 FAI 查询在 MES/QMS 里可追踪状态机建议控制为draft - submitted - engineering_review - quality_review - approved - closed异常分支为rejected和waived。每次状态变化都写fai_status_log不要只更新主表状态。查询优化上零件号和版本组合、FAI 编号、状态日志时间是最常用条件应建索引。CREATE INDEX idx_fai_master_part_rev ON fai_master(part_no, drawing_rev, process_rev); CREATE INDEX idx_fai_char_fai_no ON fai_characteristic(fai_no, char_no); CREATE INDEX idx_fai_log_fai_no_time ON fai_status_log(fai_no, changed_at);idx_fai_master_part_rev用于查同一零件历史版本idx_fai_char_fai_no用于打开报告时快速加载特性idx_fai_log_fai_no_time用于审计追踪。状态字段不要允许直接 UPDATE 跳过审核最好用存储过程或应用层服务封装先校验旧状态再写日志。当前状态允许动作目标状态必要条件draft提交submitted特性清单完整submitted工程审核engineering_review图纸版本正确engineering_review质量审核quality_review量具证书有效quality_review批准approved无未关闭 NGquality_review拒绝rejected填写拒绝原因approved归档closedPDF 哈希已记录quality_review让步waived客户或授权人批准4. 首件鉴定控制程序里的判定参数、抽样数量与异常闭环4.1 特性类型与判定参数表尺寸、材料、性能、外观、文档FAI 报告里最怕所有特性都写成“OK”。不同特性要有不同判定参数和证据形式。尺寸特性看 nominal、USL、LSL、actual 和 unit材料特性看标准号、炉批号、证书和复验值性能特性看试验条件、上下限和曲线外观特性看限度样本和照片文档特性看版本号和签署。把这些字段在特性表里分层记录后面客户审核时才能按类型抽出证据。特性类型典型来源判定参数记录要求常见坑dimension图纸尺寸、GDTnominal, USL, LSL, actual, unit实测值、量具编号只写 OK不写数值material材料证明、硬度、成分标准号、炉批号、实测值证书、复验报告证书与炉批不对应performance拉脱力、密封、电气下限、上限、试验条件曲线、时间、设备试验条件缺失visual外观、标识0/1 或等级照片、限度样本限度样本未受控document图纸、工艺、证书版本号、签署版本页、批准页版本错配参数设计时nominal不是必填有些特性只有上限或下限unit必须和图纸一致混用毫米和英寸会直接导致误判。外观特性的actual用 1 或 0 只是简化若客户要求等级判定可以在result里扩展 A/B/C 等级但不要破坏OK/NG的统计口径。4.2 抽样数量与量具能力首件 1 件、关键特性 3 件怎么定常见做法是首件鉴定做 1 件全项关键特性连续做 3 件观察趋势和分散。关键特性由工程在图纸或特性清单中标识风险等级来自客户要求、历史失效、安全功能和装配配合。量具能力方面GRR 小于 10% 优先使用10% 到 30% 可接受但需评审大于 30% 不应直接用于 FAI 判定除非有替代测量方案。def sample_plan(char_type, is_key, risk_level): if char_type in (material, document): return {qty: 1, scope: 证书与版本核对} if is_key and risk_level in (high, critical): return {qty: 3, scope: 连续三件全项加趋势} return {qty: 1, scope: 单件全项}char_type控制材料、文档和尺寸的差别is_key来自特性分类risk_level来自风险评审。高风险关键特性连续三件不是为了计算 Cpk而是为了看首件是否偶然合格。若三件中出现一件 NG应暂停批量先查工装、程序、刀具和材料不要用平均值掩盖单件超差。注意量具过期、校准状态不明、GRR 超限时实测值不能作为 FAI 批准依据。先换量具或补做 MSA再继续鉴定。4.3 不合格、让步接收与偏差的闭环写法不合格闭环不能只在 PDF 上画红圈。质量审核发现 NG 后主表状态应进入rejected同时写状态日志若客户或授权人同意让步再进入waived并关联偏差单号、批准人和有效期。下面 SQL 先校验旧状态再更新主表并写日志。UPDATE fai_master SET status rejected WHERE fai_no :fai_no AND status quality_review; INSERT INTO fai_status_log(fai_no, from_status, to_status, reason, changed_by) VALUES (:fai_no, quality_review, rejected, :reason, :operator);WHERE status quality_review用来防止重复提交或跳过审核:reason要写清超差项、超差量和处置意见:operator记录操作人。若走让步接收目标状态改为waived并额外关联偏差单号、客户批准文件和适用批次。只有approved或waived的 FAI 才能被后续批次放行查询引用。4.4 常见坑只测尺寸不查工艺、量具过期、版本错配第一类坑是把 FAI 做成纯尺寸报告。图纸尺寸全过但工艺参数、刀具寿命、焊接电流、注塑压力没记录换一批材料后仍然会漂。第二类坑是量具过期或校准证书未关联报告上有数值但无法证明数值有效。第三类坑是版本错配PDF 报告写的是图纸 A 版实际加工用 B 版工装编号也对不上。第四类坑是 Delta FAI 只测变更尺寸不查关联配合面导致局部变更引发装配干涉。把这些检查点写进控制程序比在报告末尾加一句“符合要求”有用得多。5. 首件鉴定控制程序.pdf 受控、版本与审计追踪的实操技巧5.1 PDF 受控文件的命名、哈希与生效日期受控 PDF 不要用“首件鉴定控制程序(最终版).pdf”这种命名。常见做法是文件名包含文件编号、版本和生效日期例如FAI-PROC-QA-001_RevC_2025-06-01.pdf。每次发布前计算 SHA-256写入主表pdf_sha256并把旧版移入历史库标记作废。下面命令可以生成哈希并做可检索性检查。# 生成受控副本并计算哈希 cp 首件鉴定控制程序.pdf FAI-PROC-QA-001_RevC_2025-06-01.pdf sha256sum FAI-PROC-QA-001_RevC_2025-06-01.pdf FAI-PROC-QA-001_RevC_2025-06-01.sha256 # 抽取文本检查关键章节是否存在 pdftotext -layout FAI-PROC-QA-001_RevC_2025-06-01.pdf - | grep -nE 首件|鉴定|不合格|版本|批准sha256sum用于绑定受控副本防止后续被替换pdftotext -layout只做文本可检索性检查不替代签署和审批。若扫描件没有文本层搜索“首件鉴定控制程序.pdf”时可能无法命中需要补 OCR 或发布可搜索版本。受控目录只放当前有效版本历史版本保留只读权限并在数据库里记录作废日期和替代版本。5.2 审计追踪查询谁在什么时候改了 FAI 判定审计追踪要能回答四个问题谁改的、什么时候改的、从什么状态改到什么状态、为什么改。下面查询按时间顺序拉出某个 FAI 的全部状态变更。SELECT l.fai_no, l.from_status, l.to_status, l.reason, l.changed_by, l.changed_at FROM fai_status_log l WHERE l.fai_no FAI-2025-001 ORDER BY l.changed_at;changed_by建议存工号而不是姓名姓名变更不影响追溯reason对 rejected 和 waived 必填changed_at用数据库时间避免客户端时间被修改。审计事件表可以按周导出重点核对未关闭的 rejected 和 waived 记录以及同一 FAI 是否在批准后又出现特性值修改。把审计查询做成 QMS 看板上的固定卡片每天核对未闭合的 rejected 和 waived 记录比在月底补签字更容易发现版本错配。本文还有配套的精品资源点击获取
返回列表