Compliance & Traceability

Dossier de test PPAP

Apprenez à assembler la documentation de test PPAP à partir des données de test de production en utilisant TofuPilot, incluant les plans de contrôle, les.

JJulien Buteau
advanced10 min de lecture14 mars 2026

Comment construire un dossier de test PPAP avec TofuPilot

Votre client a envoyé une demande PPAP. Vous avez besoin de plans de contrôle, de rapports Cpk, d'études MSA et de données dimensionnelles, le tout lié à des références de pièces et des lots de production spécifiques. La plupart des équipes passent des jours à rassembler cela à partir de tableurs et de systèmes déconnectés.

TofuPilot capture les données de test nécessaires aux soumissions PPAP dans le cadre de votre flux de production normal. Aucune saisie de données supplémentaire n'est requise.

Qu'est-ce que le PPAP

Le processus d'approbation des pièces de production (PPAP) est un cadre standardisé, défini dans le manuel PPAP de l'AIAG, qui prouve que votre processus de fabrication produit de manière constante des pièces conformes aux spécifications du client. Il est requis dans l'automobile (IATF 16949), et de plus en plus adopté dans l'aérospatiale, les dispositifs médicaux et l'électronique industrielle.

Une soumission PPAP comprend généralement 18 éléments. Plusieurs dépendent directement des données de test :

Élément PPAPCe qu'il nécessiteSource TofuPilot
Plan de contrôleÉtapes de test, limites, fréquencesDéfinitions des procédures de test
Étude de capabilité de processusCpk/Ppk pour les dimensions critiquesHistorique des mesures
MSA / Gage R&RAnalyse du système de mesureDonnées de mesures répétées
Résultats dimensionnelsMesuré vs spécification pour chaque caractéristiqueMesures d'exécution avec limites
Résultats de tests matériaux/performancesRéussite/échec du test fonctionnel avec donnéesRésultats d'exécution de test

Prérequis

  • Un compte TofuPilot avec des données de test de production
  • Python 3.8+ avec le client tofupilot installé
  • Au moins 30 exécutions de production pour les calculs de capabilité de processus

Étape 1 : Structurer vos tests autour des caractéristiques critiques

Les auditeurs PPAP s'intéressent aux caractéristiques critiques pour la qualité (CTQ). Associez chaque CTQ à une mesure dans votre procédure de test.

ppap_test.py
import openhtf as htf
from openhtf.util import units

# Associer chaque caractéristique CTQ à une mesure avec des limites de spécification
@htf.measures(
    htf.Measurement("output_voltage_5v")
        .with_units(units.VOLT)
        .in_range(4.95, 5.05)
        .doc("CTQ-001 : Précision du rail 5V"),
    htf.Measurement("current_draw_idle")
        .with_units(units.AMPERE)
        .in_range(0.0, 0.150)
        .doc("CTQ-002 : Consommation de courant au repos"),
    htf.Measurement("rise_time_ms")
        .with_units(units.MILLISECOND)
        .at_most(5.0)
        .doc("CTQ-003 : Temps de montée à la mise sous tension"),
)
def power_rail_test(test):
    # Votre code de contrôle d'instrument ici
    test.measurements.output_voltage_5v = 5.01
    test.measurements.current_draw_idle = 0.098
    test.measurements.rise_time_ms = 3.2

Utilisez le champ .doc() pour stocker l'identifiant CTQ. Cela facilite la traçabilité depuis la documentation PPAP jusqu'aux résultats de test réels.

Étape 2 : Collecter les données de capabilité de processus

Les soumissions PPAP de niveau 3 nécessitent des études de capabilité de processus. Vous avez besoin d'au moins 30 pièces consécutives (l'AIAG recommande 300 pour le Ppk).

TofuPilot calcule automatiquement le Cp et le Cpk à partir de vos données de mesure. Pour extraire les données de capabilité pour votre dossier PPAP :

ppap_capability.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# Obtenir les exécutions pour une référence de pièce et une procédure spécifiques
runs = client.get_runs(
    procedure_id="power-board-fct",
    unit_part_number="PWR-200-R3",
    limit=300,
)

# Extraire les valeurs de mesure pour chaque CTQ
voltage_values = [
    r.measurements["output_voltage_5v"].value
    for r in runs
    if r.measurements.get("output_voltage_5v")
]

print(f"Taille de l'échantillon : {len(voltage_values)}")
print(f"Moyenne : {sum(voltage_values) / len(voltage_values):.4f}")

Le tableau de bord de TofuPilot affiche directement le Cpk sur les graphiques de mesures. Faites des captures d'écran pour votre soumission, ou exportez les données brutes.

Étape 3 : Réaliser les études Gage R&R

L'analyse du système de mesure (MSA) prouve que votre équipement de test est capable. Une étude Gage R&R typique utilise 10 pièces, 3 opérateurs, 3 essais chacun.

gage_rr_study.py
import openhtf as htf
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# Taguer chaque exécution avec les infos opérateur et essai pour le MSA
for operator in ["OP-A", "OP-B", "OP-C"]:
    for trial in range(1, 4):
        for part_sn in part_serial_numbers:
            # Exécuter le test
            result = run_test(part_sn)

            # Téléverser avec les métadonnées pour le regroupement MSA
            client.create_run(
                procedure_id="gage-rr-voltage",
                unit_under_test={
                    "serial_number": part_sn,
                    "part_number": "PWR-200-R3",
                },
                run_passed=result.passed,
                measurements=result.measurements,
                properties={
                    "operator": operator,
                    "trial": trial,
                    "study": "MSA-2026-Q1",
                },
            )

Filtrez par la propriété study dans TofuPilot pour extraire toutes les données Gage R&R à analyser.

Étape 4 : Générer le plan de contrôle

Votre plan de contrôle documente ce que vous testez, comment vous le testez et quelles limites vous utilisez. Extrayez-le directement de vos définitions de test :

control_plan_export.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# Obtenir la définition de la procédure avec toutes les mesures
procedure = client.get_procedure("power-board-fct")

print("| CTQ | Mesure | Limite basse | Limite haute | Unité | Méthode |")
print("|-----|-------------|-------------|-------------|------|--------|")

for m in procedure.measurements:
    print(
        f"| {m.doc or '-'} | {m.name} | "
        f"{m.lower_limit or '-'} | {m.upper_limit or '-'} | "
        f"{m.unit or '-'} | FCT automatisé |"
    )

Ce tableau va directement dans votre plan de contrôle PPAP. Quand les limites changent, regénérez-le depuis la même source de vérité.

Étape 5 : Constituer les résultats dimensionnels et de performance

Le PPAP exige des valeurs mesurées réelles pour un échantillon de pièces (typiquement 5 provenant d'un lot de production significatif).

ppap_sample_results.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# Obtenir les 5 premières exécutions réussies du lot de production initial
sample_runs = client.get_runs(
    procedure_id="power-board-fct",
    unit_part_number="PWR-200-R3",
    passed=True,
    limit=5,
)

for run in sample_runs:
    print(f"N/S : {run.unit.serial_number}")
    for name, m in run.measurements.items():
        status = "RÉUSSI" if m.passed else "ÉCHOUÉ"
        print(f"  {name}: {m.value} {m.unit or ''} [{status}]")

Maintenir votre dossier PPAP

Le PPAP n'est pas un exercice ponctuel. Quand vous modifiez votre processus, vous pourriez devoir soumettre à nouveau.

Suivez ce qui déclenche une mise à jour PPAP :

  • Modification technique : Nouvelle révision de pièce, limites de test mises à jour
  • Modification de processus : Nouvel équipement de test, configuration de station différente
  • Changement de fournisseur : Nouvelle source de composant affectant les caractéristiques de test

Comme TofuPilot versionne vos procédures de test et suit les configurations des stations, vous pouvez toujours tracer quelle soumission PPAP correspond à quelle configuration de test. Quand un client demande « qu'est-ce qui a changé depuis votre dernière soumission », la réponse est dans votre historique d'exécutions.

Plus de guides

Mettez ce guide en pratique