Scaling & Monitoring

Surveiller les stations multi-usines

Suivez les performances des stations de test dans plusieurs usines depuis un tableau de bord unique. Comparez le rendement, le débit et la dérive de.

JJulien Buteau
intermediate6 min de lecture14 mars 2026

Quand la même procédure de test s'exécute sur des dizaines de stations dans plusieurs usines, vous avez besoin d'un endroit unique pour voir ce qui se passe partout. TofuPilot vous offre une visibilité inter-usines sans construire de tableaux de bord personnalisés ni agréger des CSV.

Pourquoi la surveillance multi-sites est importante

Un test qui passe à 98 % dans votre usine de Shenzhen et à 94 % dans votre usine de Guadalajara vous indique que quelque chose ne va pas. Le problème peut être la calibration des équipements, la formation des opérateurs, les conditions environnementales ou la variation des lots de composants. Vous ne pouvez pas corriger ce que vous ne voyez pas.

Les données au niveau des stations vous aident aussi à repérer les machines individuelles qui dérivent avant qu'elles ne commencent à produire des faux succès ou des échecs inutiles.

Taguer chaque station avec des métadonnées

OpenHTF vous permet d'attacher des métadonnées à chaque exécution de test. Utilisez station_id pour identifier la station physique et ajoutez les informations d'usine ou de site pour que TofuPilot puisse regrouper les résultats.

test_board.py
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("supply_voltage")
    .in_range(minimum=4.9, maximum=5.1)
    .with_units(units.VOLT)
)
def test_supply_voltage(test):
    voltage = 5.03  # Lecture depuis l'instrument
    test.measurements.supply_voltage = voltage

def main():
    test = htf.Test(
        test_supply_voltage,
        station_id="SMT-LINE3-ICT-02",
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "PCB-2026-00451")

if __name__ == "__main__":
    main()

La valeur station_id doit être unique et descriptive. Une bonne convention est {SITE}-{LIGNE}-{FONCTION}-{NUMERO}, comme SZ-L3-ICT-02 pour Shenzhen, Ligne 3, Test In-Circuit, Station 2.

Standardiser le nommage des stations entre les sites

La cohérence du nommage est essentielle. Si une usine utilise ICT_01 et une autre ict-station-1, vous ne pouvez pas filtrer ou comparer de manière fiable.

Définissez une convention de nommage avant le déploiement :

ChampFormatExemple
Code siteAbréviation de 2-3 lettresSZ, GDL, AUS
Numéro de ligneL + numéroL1, L3
Type de testAbréviation standardICT, FCT, EOL
Numéro de stationNuméro avec zéro initial01, 02, 12

Cela donne des identifiants de station comme SZ-L3-ICT-02 ou GDL-L1-FCT-05, lisibles et triables.

Exécuter la même procédure partout

La surveillance multi-sites ne fonctionne que si chaque usine exécute la même procédure de test. Versionnez vos scripts de test dans Git et déployez-les sur tous les sites depuis un dépôt unique.

test_final.py
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("output_current")
    .in_range(minimum=0.95, maximum=1.05)
    .with_units(units.AMPERE),
    htf.Measurement("firmware_checksum")
    .equals("a3f8c2d1")
)
def test_output_and_firmware(test):
    test.measurements.output_current = 1.01  # Lecture depuis la charge
    test.measurements.firmware_checksum = "a3f8c2d1"  # Lecture depuis le DUT

def main():
    test = htf.Test(
        test_output_and_firmware,
        station_id="AUS-L2-FCT-01",
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "UNIT-88210")

if __name__ == "__main__":
    main()

Quand chaque station téléverse les résultats de la même procédure, TofuPilot les regroupe automatiquement. Vous pouvez ensuite filtrer par station, site ou plage temporelle pour comparer les performances.

Visualiser les données inter-usines dans TofuPilot

Une fois les exécutions téléversées depuis plusieurs sites, le tableau de bord stations de TofuPilot affiche :

  • Rendement par station pour repérer instantanément les machines sous-performantes
  • Distributions de mesure par station pour détecter la dérive de calibration avant qu'elle ne cause des échecs
  • Débit par station pour identifier les goulots d'étranglement et les temps d'arrêt
  • Pareto des défaillances par site pour voir si les modes de défaillance diffèrent entre les usines

Filtrez par préfixe d'identifiant de station (comme SZ- ou GDL-) pour comparer des usines entières côte à côte. Approfondissez sur des stations individuelles pour investiguer les anomalies.

Gérer la détection de station hors ligne

Une station qui cesse de transmettre est un problème. Elle peut être arrêtée pour maintenance, ou elle peut exécuter des tests qui ne sont pas téléversés. TofuPilot suit la dernière transmission de chaque station, les lacunes dans les données sont donc visibles immédiatement.

Prenez l'habitude de vérifier la vue d'ensemble des stations au début de chaque poste. Si une station n'a pas transmis dans la fenêtre attendue, investiguez avant que la production ne continue.

Plus de guides

Mettez ce guide en pratique