NIDays 2009 : Guide de programmation avancee NI TestStand - conseils et recommandations

Par MESULOG · 2009

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

Télécharger le PDF Ouvrir dans le navigateur

Guide de programmation avancée NI TestStand – diapositive 1

Jean-Louis Schricke

NI TestStand

conseils et recommandations

Guide de programmation avancée

Diapositive 2

Guide de programmation avancée NI TestStand – diapositive 2

TestStand : quelques rappels

TestStand : critères de sélection

TestStand : choix structurants

TestStand : recommandations

Conclusion

Sommaire

Diapositive 3

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – 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

Guide de programmation avancée NI TestStand – diapositive 23

Questions