Qu'est-ce que la FAI avec TofuPilot
L'inspection du premier article (FAI) est une vérification détaillée de la première unité de production pour confirmer que le processus de fabrication peut produire des pièces conformes à toutes les spécifications de conception. Elle est exigée par les normes aérospatiales (AS9102), automobiles (PPAP) et des dispositifs médicaux. Ce guide couvre ce qu'implique la FAI, quand elle est requise et comment suivre les résultats FAI avec TofuPilot.
Ce que vérifie la FAI
La FAI contrôle chaque caractéristique du plan et de la spécification, pas seulement les caractéristiques critiques. C'est un relevé complet de :
| Ce qui est vérifié | Exemple |
|---|---|
| Caractéristiques dimensionnelles | Toutes les dimensions du plan |
| Certifications matériaux | CoC des matières premières, conformité RoHS |
| Enregistrements de procédé | Profil de soudure, enregistrements de couple, polymérisation d'adhésif |
| Résultats de tests fonctionnels | Toutes les mesures par rapport aux spécifications |
| Visuel et cosmétique | Finition de surface, marquage, placement des étiquettes |
| Traçabilité | Numéros de série, codes de lot, codes de date |
La FAI n'est pas un échantillonnage. C'est une inspection complète d'une unité (ou d'un ensemble d'unités) par rapport à chaque exigence.
Quand la FAI est requise
| Déclencheur | Exemple |
|---|---|
| Introduction d'un nouveau produit | Première série de production d'un nouveau design |
| Modification de conception | Ordre de modification technique (ECO) affectant la forme, l'ajustement ou la fonction |
| Changement de procédé | Nouveau fournisseur, nouvel outillage, nouveau site de fabrication |
| Interruption prolongée de production | Pas de production depuis 2+ ans (selon AS9102) |
| Action corrective | Après une non-conformité ayant affecté la qualité du produit |
Documentation FAI (AS9102)
AS9102 définit trois formulaires standard de rapport FAI :
| Formulaire | Contenu |
|---|---|
| Formulaire 1 : Identification de la pièce | Numéro de pièce, nom, révision, numéro de série, matériaux |
| Formulaire 2 : Responsabilité produit (matière première, procédé spécial, test fonctionnel) | Certificats matériaux, enregistrements de procédé, données de test |
| Formulaire 3 : Responsabilité des caractéristiques | Chaque dimension et caractéristique avec la valeur réelle mesurée |
Le formulaire 3 est le plus laborieux. Chaque dimension du plan reçoit un numéro de bulle, et la valeur mesurée correspondante est inscrite dans le rapport FAI.
Prérequis
- Python 3.10+
- OpenHTF installé (
pip install openhtf) - SDK Python TofuPilot installé (
pip install tofupilot)
Étape 1 : Définir les phases de test FAI
La partie test fonctionnel de la FAI exécute la même procédure de test qu'en production, mais vous enregistrez chaque mesure, pas seulement le pass/fail.
import openhtf as htf
from openhtf.util import units
@htf.measures(
htf.Measurement("output_voltage_V")
.in_range(minimum=4.9, maximum=5.1)
.with_units(units.VOLT),
htf.Measurement("ripple_voltage_mV")
.in_range(maximum=50)
.with_units(units.MILLIVOLT),
htf.Measurement("efficiency_percent")
.in_range(minimum=90)
.with_units(units.PERCENT),
htf.Measurement("leakage_current_uA")
.in_range(maximum=500)
.with_units(units.MICROAMPERE),
)
def phase_fai_electrical(test):
"""FAI Formulaire 2 : Toutes les caractéristiques électriques."""
test.measurements.output_voltage_V = 5.02
test.measurements.ripple_voltage_mV = 18.3
test.measurements.efficiency_percent = 93.7
test.measurements.leakage_current_uA = 65.0
@htf.measures(
htf.Measurement("firmware_version").equals("2.1.0"),
htf.Measurement("boot_time_ms")
.in_range(maximum=2000)
.with_units(units.MILLISECOND),
htf.Measurement("self_test").equals("PASS"),
)
def phase_fai_functional(test):
"""FAI Formulaire 2 : Caractéristiques fonctionnelles."""
test.measurements.firmware_version = "2.1.0"
test.measurements.boot_time_ms = 1120
test.measurements.self_test = "PASS"Étape 2 : Enregistrer les résultats FAI dans TofuPilot
Le test FAI s'exécute une seule fois sur le premier article. TofuPilot stocke chaque mesure avec sa limite, son unité et son résultat.
from tofupilot.openhtf import TofuPilot
test = htf.Test(
phase_fai_electrical,
phase_fai_functional,
)
with TofuPilot(test):
test.execute(test_start=lambda: input("Scanner le numéro de série du premier article : "))Étape 3 : Générer le rapport FAI
TofuPilot stocke l'enregistrement de test complet du premier article. Ouvrez l'historique de test de l'unité pour obtenir :
- Toutes les mesures avec les valeurs réelles par rapport aux limites de spécification
- Le statut pass/fail pour chaque caractéristique
- Les horodatages pour la piste d'audit
- Les rapports de test exportables pour la documentation du formulaire 2 AS9102
Ces données alimentent directement le rapport FAI. Au lieu de transcrire les mesures d'un multimètre de paillasse dans un tableur, les données de test sont déjà structurées et auditables.
FAI vs test de production
| Aspect | FAI | Test de production |
|---|---|---|
| Périmètre | Chaque caractéristique du plan | Caractéristiques fonctionnelles critiques |
| Échantillon | Première unité (ou première de chaque cavité/outil) | Chaque unité |
| Documentation | Rapport FAI formel (formulaires AS9102) | Enregistrements de test internes |
| Fréquence | Une fois par événement déclencheur | Chaque unité, chaque exécution |
| Objectif | Prouver que le procédé peut produire une pièce conforme | Vérifier que chaque unité est conforme |
La FAI prouve que le procédé est capable. Le test de production prouve que chaque unité est conforme. Les deux sont nécessaires. TofuPilot suit les deux avec la même infrastructure.