Une baisse de rendement passée inaperçue pendant un poste complet peut signifier des centaines d'unités mises au rebut. TofuPilot surveille le rendement au premier passage sur chaque procédure et vous notifie quand il sort de la plage normale de cette ligne, afin que vous puissiez intervenir avant que les dégâts ne s'étendent.
Pourquoi les alertes en temps réel sont importantes
Les problèmes de production s'annoncent rarement d'eux-mêmes. Une machine de pâte à braser tourne à vide et commence à produire des joints fragiles. Un contact de montage s'use et ajoute de la résistance à chaque mesure. Un nouveau lot de composants présente des caractéristiques légèrement différentes.
Dans tous ces cas, la baisse de rendement commence faiblement et s'amplifie. Plus vous la détectez tôt, moins d'unités sont affectées. Attendre les rapports de fin de poste ou les revues qualité hebdomadaires est trop lent.
Ce que TofuPilot peut surveiller
TofuPilot surveille vos données de production et couvre six conditions.
| Type d'alerte | Ce qu'elle détecte | Automatique |
|---|---|---|
| Baisse de rendement | Le rendement au premier passage sort de la plage normale de la procédure | Oui |
| Dérive de mesure | La moyenne d'une mesure s'écarte de sa propre ligne de base | Oui |
| Seuil de retest unité | Une unité est retestée bien plus que la norme de la procédure | Oui |
| Échantillon golden en échec | Une unité de référence réputée bonne se met à échouer | Oui |
| Échantillon failing qui passe | Une unité de référence réputée mauvaise se met à passer | Oui |
| Run en échec | Une série de runs consécutifs en échec | Règle personnalisée uniquement |
Les deux types de tendance détectent la dégradation générale. Les types liés aux échantillons de référence détectent un test qui ne discrimine plus du tout, le mode de défaillance qui invalide silencieusement tout le reste. Les seuils de retest détectent l'unité que personne n'avoue avoir retestée neuf fois.
La détection automatique ne fixe aucun seuil
C'est la partie que la plupart des gens s'attendent à configurer et n'ont pas à régler.
Il n'y a aucun plancher de rendement à saisir. Un plancher correct pour une ligne à 99 % est faux pour un test de rodage qui tourne normalement à 55 %, et les deux sont saines. TofuPilot mesure donc ce que chaque procédure fait habituellement — y compris de combien cette procédure oscille habituellement — et alerte quand le rendement lissé actuel s'écarte de cette ligne de base de plus que la variation propre à la ligne.
| Sévérité | Se déclenche à |
|---|---|
| Info | ≥ 2σ |
| Warning | ≥ 3σ |
| Critical | ≥ 5σ |
σ (sigma) signifie ici « multiples de l'oscillation normale de cette ligne ». Une ligne qui évolue habituellement entre 50 % et 60 % a une oscillation normale large : se promener à l'intérieur ne déclenche donc pas d'alerte. Une ligne parfaitement stable à 55 % en a une étroite, et la même variation déclenche une alerte.
Deux conséquences méritent d'être connues. Une procédure a besoin d'environ 275 premiers passages sur les 90 derniers jours avant que l'évaluation automatique du rendement ne s'applique : une ligne toute neuve reste donc silencieuse tant qu'elle n'a pas d'historique. Et sur les lignes quasi parfaites, la sévérité reste en info tant que moins de trois échecs réels figurent dans la mémoire récente, car au-dessus d'environ 99,6 % de rendement un échec isolé est statistiquement spectaculaire et pratiquement insignifiant. La méthode complète est documentée dans la détection automatique.
Quand ajouter une règle personnalisée
La détection automatique répond à « est-ce inhabituel pour cette ligne ? ». Une règle personnalisée répond à une autre question : « est-ce en dessous du chiffre que j'ai promis à quelqu'un ? ». Utilisez-en une quand le chiffre vient de l'extérieur des données : un engagement client, un objectif de montée en cadence, un jalon de qualification de ligne.
Les règles de rendement personnalisées s'expriment elles aussi comme une chute en points de pourcentage par rapport à la ligne de base récente, et non comme un plancher absolu, et vous choisissez le rendement qu'elles évaluent :
| Métrique | Ce qu'elle compte |
|---|---|
| First Pass Yield | Les unités dont le tout premier run sur la procédure a réussi. Les retests ne peuvent pas l'améliorer. |
| Last Pass Yield | Les unités dont le dernier run a réussi. L'état après reprise. |
| Taux de réussite des runs | Les runs réussis sur l'ensemble des runs. Les rafales de retests le font chuter vite. |
Vous définissez la chute qui compte à chaque sévérité, ainsi que le périmètre : une procédure entière, une station, une référence. Voir les règles d'alerte pour la configuration complète.
Produire des données de test propres et structurées
Les alertes ne valent que par les données qui les alimentent. Écrivez vos tests OpenHTF avec des sorties claires et mesurables pour que TofuPilot puisse suivre les tendances et déclencher des alertes sur les bons signaux.
import openhtf as htffrom openhtf.util import unitsfrom tofupilot.openhtf import TofuPilot@htf.measures( htf.Measurement("charge_voltage") .in_range(minimum=4.15, maximum=4.25) .with_units(units.VOLT), htf.Measurement("charge_current") .in_range(minimum=0.450, maximum=0.550) .with_units(units.AMPERE), htf.Measurement("thermal_shutdown_temp") .in_range(minimum=80, maximum=90) .with_units(units.DEGREE_CELSIUS),)def test_charging_circuit(test): test.measurements.charge_voltage = 4.19 test.measurements.charge_current = 0.498 test.measurements.thermal_shutdown_temp = 85.2def main(): test = htf.Test( test_charging_circuit, station_id="LINE-A-FCT-02", ) with TofuPilot(test): test.execute(test_start=lambda: "CHG-2026-03318")if __name__ == "__main__": main()Chaque mesure avec des limites définies alimente les analyses de TofuPilot. Plus votre nommage est strict et cohérent, plus vos alertes seront utiles : une mesure renommée en cours de trimestre démarre une nouvelle série sans historique, et une série sans historique ne peut pas être évaluée.
Concevoir des tests pour de meilleures alertes
Vous pouvez rendre les alertes plus utiles par la façon dont vous structurez vos tests.
import openhtf as htffrom openhtf.util import unitsfrom tofupilot.openhtf import TofuPilot@htf.measures( # Des mesures séparées par canal rendent les alertes spécifiques htf.Measurement("led_current_ch1") .in_range(minimum=0.018, maximum=0.022) .with_units(units.AMPERE), htf.Measurement("led_current_ch2") .in_range(minimum=0.018, maximum=0.022) .with_units(units.AMPERE), htf.Measurement("led_current_ch3") .in_range(minimum=0.018, maximum=0.022) .with_units(units.AMPERE), htf.Measurement("led_current_ch4") .in_range(minimum=0.018, maximum=0.022) .with_units(units.AMPERE),)def test_led_channels(test): test.measurements.led_current_ch1 = 0.0201 test.measurements.led_current_ch2 = 0.0198 test.measurements.led_current_ch3 = 0.0203 test.measurements.led_current_ch4 = 0.0200def main(): test = htf.Test( test_led_channels, station_id="LINE-B-FCT-01", ) with TofuPilot(test): test.execute(test_start=lambda: "LED-2026-05519")if __name__ == "__main__": main()Séparer les mesures par canal (au lieu d'un simple pass/fail pour tous les canaux) permet à TofuPilot de vous alerter que le canal 3 dérive spécifiquement. C'est exploitable. Un générique « le test LED échoue plus souvent » ne l'est pas.
Réagir aux alertes
Quand une alerte se déclenche, agissez :
- Consultez les données dans TofuPilot. L'alerte porte les chiffres qui l'ont déclenchée et un graphique de la métrique ; examinez la tendance et la distribution pour comprendre ce qui a changé.
- Ciblez le périmètre. Est-ce une station ou toutes les stations ? Un poste ou tous les postes ? Une référence ou toute la procédure ? Cela oriente vers la cause racine plus vite que n'importe quelle mesure isolée.
- Corrigez la cause racine. Recalibrez l'équipement, remplacez le montage, reformez l'opérateur, mettez en quarantaine le lot de composants.
- Laissez-la se refermer seule. Une alerte de rendement se résout automatiquement dès que la métrique est revenue franchement dans la bande. La résoudre à la main met au contraire cette alerte en veille pendant une heure : c'est ce que vous voulez quand vous êtes déjà au courant et en train de traiter le problème, et ce n'est pas ce que vous voulez en faire une habitude.
Les alertes sont un point de départ, pas la réponse. Elles vous disent que quelque chose a changé. Les données dans TofuPilot vous disent quoi.