Document original : NIDays 2009 : Guide de programmation avancee NI TestStand - conseils et recommandations (PDF, 763 Ko, 23 pages)

Jean-Louis Schricke
NI TestStand
conseils et recommandations
Guide de programmation avancée
Diapositive 2

TestStand : quelques rappels
TestStand : critères de sélection
TestStand : choix structurants
TestStand : recommandations
Conclusion
Sommaire
Diapositive 3

pour accélérer le développement de vos systèmes de test et de validation.
NI TestStand est utilisé pour développer, gérer et exécuter des séquences
de test. Ces séquences intègrent des modules de test écrits grâce à
n'importe quel langage de programmation. »
TestStand s’impose en tant que plate-forme de développement de
banc de test depuis la version 3.0
14 of the top 15 electronics manufacturers use NI TestStand
(Electronic Business, 2004)
« NI TestStand est un environnement gestion de tests prêt à l'emploi, conçu
Définition
Un standard de fait
TestStand : quelques rappels
Diapositive 4

PLCs
Facultatif
I/O
Distributed
Operator
Interface
Vision
Motion
PXI
TestStand API
TestStand Engine (Server)
Modular Instrument.
Editor
Sequence
Data
Acquisition
and VXI GPIB/Serial
Architecture générale
TestStand : quelques rappels
Diapositive 5

Gestion des utilisateurs (avec profils)
Identification de l’Objet Sous Test (UUT)
Génération automatique d’un rapport (trace d’exécution)
Sauvegarde des résultats en base de données
Outils de branchement et de synchronisation
Outils de chargement de conditions de tests (Property Loader)
Pilotage d’instruments IVI
Traitement des erreurs
Fichiers ressources multi-langues
Deux interfaces opérateur (avec code source)
En standard dans TestStand
TestStand : quelques rappels
Diapositive 6

si la séquence de test dépend du produit à tester
si la séquence de test doit évoluer
Modularité qui facilite le « re-use »
Formalisme structurant
Evolutivité et pérennité
« Noyau » robuste et personnalisable
Parallélisme, multi-thread, multi-execution
Le choix d’un séquenceur de test s’impose :
Les avantages de TestStand
TestStand : critères de sélection
Diapositive 7

Nécessite Microsoft Windows
Licence run-time pour chaque poste
Palette Step Types native « insuffisante »
Apparente complexité
Formation indispensable
Assistance éventuelle partenaire NI
Les inconvénients de TestStand
Mise en œuvre de TestStand
TestStand : critères de sélection
Diapositive 8

à exploiter
FAIL
PASS
nombreux résultats
Banc de caractérisation
Banc de validation
Banc de contrôle d’entrée
Banc d’assemblage
Banc de test fonctionnel
En laboratoire
En production
TestStand : critères de sélection
Diapositive 9

Identification des fonctions principales
Distinction entre « générique » et « spécifique »
Identification des fonctions critiques
Besoins en parallélisme, en déterminisme
Pour le développement de pas spécifiques
Pour le développement de l’interface opérateur
Utilisé dans du code existant
Segmentation
Performances attendues
Langage(s) de programmation
Choix structurants
Diapositive 10

un envoi d’information par les séquences de test
l’utilisation éventuelle du NI Shared Variable Engine
l’impossibilité éventuelle d’utiliser des steps DAQmx
Indispensable sur un banc de production
Sa mise à jour pendant le test conditionne :
Station globales TestStand
NI Shared Variable Engine
Autres
Interface opérateur
Localisation des données globales
Choix structurants
Diapositive 11

Power Supply, DMM, Function Generator, Oscilloscope, Switch
Schéma NI standard
Schéma custom, générique
Schéma custom, spécifique par produit
Utilisation éventuelle des steps IVI-C
Utilisation éventuelle de Switch Executive
Drivers existants (Visa, IVI-C, IVI-Com)
Fichiers
Database
Instrumentation
Stockage des résultats
Choix structurants
Diapositive 12

Cohabitation possible de plusieurs versions de Run Time Engine
Fonctions élémentaires
Module de configuration
Module exécution (PostStep)
Utilisation de briques indépendantes validées
Création de pas configurables
Diapositive 13

Result.ReportText
Result.XXX (Nouveau champ Spécifique)
Additional Result (TestStand 4.1)
Description reprenant les paramètres principaux du step
Mise à jour description du pas après édition :
Ajout trace dans le rapport
Utilisation de la gestion de version intégrée à TestStand
Création de pas configurables
Diapositive 14

Input (by value, si variables simples, pour empêcher écrasement)
Output (by reference)
Mettre dans le Cleanup se qui s’exécutera en cas de fin normale
ou anormale (ex : Power Off)
Créer le Setup en « symétrique » (ex : Power On)
Ajouter labels et commentaires
Privilégier la simplicité et la lisibilité (If / Pre-condition)
Regrouper les données cohérentes dans des containers
Ne pas accéder aux StationGlobals dans les sous-séquences
élémentaires (préférer passage par paramètre)
Paramètres
Setup / Cleanup
Lisibilité
Création séquences et sous-séquences
Diapositive 15

Utiliser la configuration par défaut
Prudence sur ajout de nouvelles branches
Générique
Spécifique à une baie
Spécifique à un produit
Sequences (process model, callbacks, test sequences)
Code modules
Executables
Data
Search directories
Classement
Types
Arborescence projet
Diapositive 16

Nécessite des
précautions sur la
réservation des
ressources
C’est le plus simple.
L’utiliser comme modèle de base si possible.
Il est toujours possible de lancer des sous-séquences dans des
« new threads », donc en parallèle
Lot de N pièces testées simultanément
Départ et arrêt en même temps
N pièces testés indépendamment
Sequential
Batch
Parallel
Process Model
Diapositive 17

A utiliser de préférence,
si pas de modification profonde du process model
A ajouter dans votre fichier séquence principal
Donnez lui un autre nom
Placez le dans votre chemin de recherche
Ajoutez éventuellement des « configuration entry point »
au niveau station
limité à un ficher séquence
Callbacks
Modification en profondeur
Champ d’application
Process Model
Diapositive 18

« Simple »
« Full featured »
Partez de l’un des deux modèles
Masquez les indicateurs non nécessaires
Ajoutez vos commandes et associez leur des « Events callbacks »
ou bien un cas dans la structure « Event »
UIMessage
Changement valeur d’une Shared Variable
Deux modèles proposés
Méthode de personnalisation pour débuter :
Utiliser des sub-panels LabVIEW
Préférer une mise à jour évènementielle
Interface opérateur
Diapositive 19

Shared
Variable
Engine
Sequence
Sequence
UIMessage
rateur é
Op
rateur é
Op
TestStand
ActiveX et API)
TestStand
ActiveX et API)
Interface
(Serveur
Moteur
Interface
(Serveur
Moteur
TS : UIMessage
Serveur additionnel
Interface opérateur
Diapositive 20

Fichier ASCII
Database locale
Database partagée
Générique (nécessite des outils complémentaires d’extraction)
Spécifique (nécessite un schéma par type différent)
Type
Nature
Résultats
Diapositive 21

Effectuer le codage et la mise au point dans le mode
« développement »
Ensuite passer en mode run-time (au niveau « step » ou au niveau
« adapter »)
Elle ralentit énormément l’exécution
Désactivez-la dans les sous-séquences
Consomment de la mémoire
Désactivez-les sur les pas ou les séquences qui ne génèrent pas de
résultats.
LabVIEW
Trace
Results
Performance
Diapositive 22

)
www.ni.com
www.ni.com/teststand/partner.htm
TestStand est un outil puissant mais complexe
Pas UNE méthode de programmation, mais…
... de LA méthode !
Avec une architecture adaptée et une bonne
méthodologie, TestStand est toujours un bon choix.
Il existe une communauté de développeurs TestStand
et de nombreuses ressources sur
(en particulier « NI TestStand Advanced Architecture Series »
et compléments sur
Conclusion
Diapositive 23

Questions


