# DSL basé sur tableaux pour tester les capteurs HART en production
Développer un système de calibration et de test pour capteurs intelligents avec protocole HART nécessite de supporter du matériel varié : générateurs de signaux, enceintes climatiques, multimètres, modems HART et commutateurs. Le protocole HART fonctionne en mode point à point sur une boucle de courant 4-20 mA, permettant calibration, configuration et échange de données. Les tests couvrent la linéarisation caractéristique, les cycles de pression et température, les variations d'alimentation et les sessions HART. Une architecture client-serveur utilisant du SQL pur avec un langage de script tabulaire a permis à une équipe de deux personnes de mettre en œuvre des tests modifiables sur plusieurs stations.
Décomposition du système en sous-systèmes
Le système est divisé en composants clés :
- Contrôle matériel via LabVIEW.
- Programmation des tests en DSL tabulaire.
- Traitement des données et calculs en base de données.
- Supervision en temps réel des stations style SCADA.
LabVIEW a été choisi pour ses pilotes prêts à l'emploi pour les interfaces USB, GPIB, TCP/IP et RS232. Le client sur la station de test agit comme interpréteur des commandes de la base, en évitant les abstractions orientées objet. La logique des tests est déportée vers des scripts serveur, gardant les schémas LabVIEW simples.
Langage de script tabulaire : structure et commandes
Le DSL est implémenté sous forme de tables de base de données avec exécution linéaire et en boucles. Chaque ligne est une opération avec deux paramètres, rendant l'édition simple. L'adressage indirect est supporté dans les boucles.
Fonctionnalités clés du DSL :
- Flux d'opérations linéaire.
- Boucles sur stimuli (pression, température, canaux).
- Boucles basées sur temporisateur.
- Initialisation de modèles de stimuli statiques.
- Plus de 100 opérations pour communication HART, mesures et journalisation de données.
Les boucles sont gérées par des procédures stockées SQL : des tables séparées stockent les paramètres (début, fin, pas, valeur courante, pool de capteurs actifs). Des commandes comme INIT_LOOP et CHECK_END_LOOP contrôlent l'exécution. Pour les boucles de stimuli, une table de modificateurs gère la logique pré/post-incrément.
Exemple de logique de boucle :
- Charger le modèle de stimulus de la base.
- Initialiser la boucle avec les paramètres.
- Exécuter les opérations jusqu'à la condition de sortie.
- Passer à la commande suivante après la boucle.
Implémentation et optimisation des boucles
Des expériences avec les procédures SQL ont prouvé que les boucles fonctionnent de manière fiable en base de données. Les paramètres de boucle (valeur de début/fin, pas) sont stockés en tables, permettant une génération dynamique de tests.
Types de boucles :
- Boucle générale : sur une variable pour un pool de capteurs sur une station.
- Boucle de pression : avec pas et limites de stimulus.
- Boucle de température : initialisation de l'enceinte.
- Boucle temporisée : répéter les opérations jusqu'à expiration du temps.
Ajouter des boucles a divisé par deux la taille des tests. Les opérations sont adaptées : dépendantes ou indépendantes des itérations (pour les temporisateurs).
L'éditeur de tests tabularise automatiquement la numérotation des lignes, les références de commandes, les commentaires et les ajustements de boucles. Une procédure de « compilation » remplace les anciens tests par les nouveaux. Le support copier-coller et les aides interactives accélèrent le développement. Plus de 100 programmes ont été créés pour la production et les tests périodiques de capteurs 4-20 mA/HART.
Intégration matériel et base de données
Le client LabVIEW récupère les scripts de la base et interprète les commandes séquentiellement. Les opérations longues (boucles de stimuli) ne requièrent pas une grande vitesse. Les données brutes sont sauvegardées en base pour les calculs et la génération de rapports.
Avantages de l'approche :
- Éditer les tests sans recompiler le client.
- Stockage centralisé des scripts et données.
- Évolutif pour des dizaines de stations.
- Équipe de développement minimale.
Enseignements clés
- DSL SQL tabulaire avec boucles réduit le code de test de moitié tout en restant totalement flexible.
- LabVIEW comme interpréteur de commandes de base évite la complexité OOP.
- Deux paramètres par opération pour plus de 100 commandes de test HART.
- Corrections automatiques de références et numérotation en procédures stockées.
- Supervision en temps réel des stations via interface style SCADA.
— Editorial Team
Aucun commentaire pour le moment.