Instrument Control

Test hipot et rigidité diélectrique

Apprenez à automatiser les tests de sécurité hipot et de rigidité diélectrique, enregistrer les résultats dans TofuPilot et maintenir les dossiers de.

JJulien Buteau
intermediate9 min de lecture14 mars 2026

Test hipot et de rigidité diélectrique avec TofuPilot

Le test hipot (haute tension) vérifie que l'isolation électrique d'un produit peut résister à une contrainte de tension sans claquage. Il est exigé par les normes UL, IEC et la plupart des normes de sécurité pour tout produit connecté au secteur. TofuPilot enregistre chaque résultat hipot pour la traçabilité en production et la conformité.

Ce que vérifie le test hipot

Le test hipot applique une haute tension entre des circuits isolés (typiquement ligne-terre ou primaire-secondaire) et mesure le courant de fuite. Si le courant reste en dessous du seuil et qu'aucun claquage ne survient, l'isolation est adéquate.

ParamètreValeur typiqueNorme
Tension de test (AC)1000-3000 VrmsIEC 60950, IEC 62368
Tension de test (DC)1414-4243 VdcIEC 60601 (médical)
Durée1-60 secondesVariable selon la norme
Limite de courant de fuite0,5-10 mAVariable selon la classe de produit
Temps de rampe0,5-3 secondesÉvite les pics de tension

Automatisation des tests hipot

Connexion à un testeur hipot

La plupart des testeurs hipot programmables (Chroma, Associated Research, GW Instek) supportent les commandes SCPI via GPIB, RS-232 ou LAN.

hipot_test.py
import pyvisa
from tofupilot import TofuPilotClient

rm = pyvisa.ResourceManager()
hipot = rm.open_resource("GPIB::5::INSTR")
client = TofuPilotClient()

def run_hipot_test(serial, test_voltage_v=1500, duration_s=60, leakage_limit_ma=5.0):
    # Configurer le testeur hipot
    hipot.write(f"VOLT {test_voltage_v}")
    hipot.write(f"TIME {duration_s}")
    hipot.write(f"CURR:LIM {leakage_limit_ma}")
    hipot.write("RAMP 2")  # Rampe de 2 secondes

    # Exécuter le test
    hipot.write("TEST")
    hipot.query("*OPC?")  # Attendre la fin

    # Lire les résultats
    result = hipot.query("MEAS:RES?")  # "PASS" ou "FAIL"
    leakage = float(hipot.query("MEAS:CURR?")) * 1000  # Convertir en mA

    passed = result.strip() == "PASS"

    client.create_run(
        procedure_id="HIPOT-SAFETY-TEST",
        unit_under_test={"serial_number": serial},
        run_passed=passed,
        steps=[{
            "name": "Dielectric Withstand",
            "step_type": "measurement",
            "status": passed,
            "measurements": [
                {"name": "test_voltage_v", "value": test_voltage_v, "unit": "V"},
                {"name": "duration_s", "value": duration_s, "unit": "s"},
                {"name": "leakage_current_ma", "value": leakage, "unit": "mA", "limit_high": leakage_limit_ma},
                {"name": "breakdown", "value": 0 if passed else 1, "unit": "bool", "limit_high": 0},
            ],
        }],
    )

    hipot.write("VOLT 0")  # Décharger
    return passed

Test hipot multi-points

Certains produits nécessitent des tests hipot entre plusieurs frontières d'isolation.

multi_point_hipot.py
# Tester plusieurs frontières d'isolation
isolation_tests = [
    {"name": "Line-to-Ground", "voltage": 1500, "limit_ma": 5.0},
    {"name": "Line-to-Secondary", "voltage": 3000, "limit_ma": 5.0},
    {"name": "Secondary-to-Ground", "voltage": 500, "limit_ma": 1.0},
]

steps = []
for test in isolation_tests:
    # Configurer et exécuter chaque test
    leakage = run_hipot_measurement(test["voltage"])
    passed = leakage < test["limit_ma"]

    steps.append({
        "name": test["name"],
        "step_type": "measurement",
        "status": passed,
        "measurements": [
            {"name": f"voltage_{test['name'].lower().replace('-', '_')}", "value": test["voltage"], "unit": "V"},
            {"name": f"leakage_{test['name'].lower().replace('-', '_')}", "value": leakage, "unit": "mA", "limit_high": test["limit_ma"]},
        ],
    })

all_pass = all(s["status"] for s in steps)
client.create_run(
    procedure_id="HIPOT-MULTI-POINT",
    unit_under_test={"serial_number": serial},
    run_passed=all_pass,
    steps=steps,
)

Tendance du courant de fuite

Même pour les unités conformes, suivez le courant de fuite sur l'ensemble de la production. Un processus sain montre des valeurs de fuite cohérentes. Les changements indiquent :

TendanceCause possible
Augmentation progressiveAccumulation de contamination sur le PCB, résidus de flux
Augmentation brusqueNouvelle révision de carte, revêtement conforme différent
Variance élevéeFabrication incohérente (projections de soudure, débris)
Distribution bimodaleDeux fournisseurs de PCB ou lignes de fabrication différents

L'histogramme de mesure du courant de fuite de TofuPilot révèle ces tendances sur l'ensemble de votre production.

Dossiers de conformité

Les organismes de sécurité exigent des enregistrements de test hipot par unité. TofuPilot stocke :

  • Le numéro de série de l'unité testée
  • La tension de test appliquée
  • La durée du test
  • Le courant de fuite mesuré
  • Le résultat réussite/échec
  • L'horodatage
  • L'identification du poste/testeur

Quand un auditeur demande les enregistrements hipot pour un numéro de série ou une plage de dates spécifique, récupérez-les depuis TofuPilot en quelques secondes.

Considérations de sécurité

Le test hipot implique des tensions mortelles. Toujours :

  • Utiliser des interverrouillages de sécurité appropriés sur le banc de test
  • S'assurer que le DUT est complètement déchargé après le test
  • Ne jamais contourner les mécanismes de sécurité du testeur hipot
  • Enregistrer les dates de calibration des équipements de test
  • Former les opérateurs aux procédures de sécurité hipot

TofuPilot est la couche de gestion des données. La sécurité de la configuration de test est de votre responsabilité.

Test de continuité de terre

Le test de continuité de terre est souvent réalisé conjointement au test hipot. Il vérifie que la connexion de terre de sécurité a une résistance suffisamment faible pour supporter un courant de défaut.

ground_continuity.py
# Test de continuité de terre (typiquement 25 A pendant 2 secondes)
ground_resistance = measure_ground_resistance(current_a=25, duration_s=2)

client.create_run(
    procedure_id="GROUND-CONTINUITY",
    unit_under_test={"serial_number": serial},
    run_passed=ground_resistance < 0.1,
    steps=[{
        "name": "Ground Bond",
        "step_type": "measurement",
        "status": ground_resistance < 0.1,
        "measurements": [
            {"name": "ground_resistance_ohm", "value": ground_resistance, "unit": "ohm", "limit_high": 0.1},
            {"name": "test_current_a", "value": 25, "unit": "A"},
        ],
    }],
)

La plupart des flux de test de sécurité exécutent d'abord la continuité de terre, puis le hipot. Si la liaison de terre est défectueuse, il est inutile d'exécuter le test hipot. TofuPilot relie les deux résultats au même numéro de série pour un enregistrement complet des tests de sécurité.

Plus de guides

Mettez ce guide en pratique