Blog Test et Mesure

PDF
Imprimer
Envoyer

blog LabVIEW, TestStand, LabWindows/CVICe blog est dédié à l'expertise et au développement de systèmes de Supervision, Contrôle, Test et Mesure et plus spécialement sur les techniques autour LabVIEW, TestStand et LabWindows/CVI.

L'original est situé ici : http://ajolly-dev.blogspot.com, vous pouvez y déposer vos commentaires.

Pour vous abonnez au flux RSS de ce blog, cliquez ici : abonnement au blog

  • Activités année 2013


    Mes missions d'expertise en Test en Mesure m'ont conduit cette année 2013 en France, Mexique, Brésil, Tunisie, Canada et États-Unis. Elles m'ont permis d'augmenter mon expérience sur  l'intégration de banc de test sur lignes de production de masse et d'intervenir pour l'audit de solution de test. Et c'est toujours un plaisir de rencontrer les différents intervenants, ingénieurs et équipes de management de différents secteurs, de différents pays et de communiquer dans différentes langues (anglais, français, espagnol et portugais).
    Voici la liste de mes activités durant l'année 2013 :
    • Audit de la solution de test dans un centre de réparation de modem xDSL, définition des solutions à mettre en place et développement du nouveau procédé, layout et des bancs de test. Cette optimisation a généré une augmentation de 500% de la capacité de test
    • Expertise sur cible temps réel LabVIEW pour la régulation du système de refroidissement d'un laser 
    • Développement de bancs qualité de modem xDSL (GVT, Telefonica) : VDSL, WIFI 2.4GHz, WIFI 5GHz, FTTH, Ethernet, HPNA
    • Optimisation et débogage de bancs de tests fonctionnel de modem sur ligne de production : réduction de 40% des temps de test, réduction des faux défauts (technique : TestStand, LabWindows/CVI)
    • Développement de drivers d'instruments de mesure de la peau sous LabVIEW
    • Développement de drivers IVI (LabWindows/CVI), intégrés à TestStand
    • Développement d'un logiciel de mesure de vieillissement de composants électroniques
    • Formations LabVIEW, LabWindows/CVI, mesure et instrumentation sous Visual Basic (avec Measurement Studio)
    • Audits technique de bancs de test de modems xDSL et alimentations pour les centres de réparation (GVT, Bell et Cablevision) pour augmenter les capacités de test / réparation : analyse de la viabilité des tests, stabilité de mesures, étude statistique des mesures et données de productions des bancs de test, optimisation des actions des opérateurs, des logiciels, de la traçabilité et des flux des produits.
    © Adrien Jolly www.ajolly.fr
  • Augmentation de la capacité de test

    Pour ce projet mon client m’a demandé d’augmenter la capacité de test de son service après vente de 500 unités par jour à 2500 unités par jour. L’utilisation des bancs de tests dans ce cas est de diagnostiquer automatiquement les pannes des produits retournés par le client permettant ainsi de remplacer les composants en défaut puis de vérifier que la réparation a bien résolu le problème.
    Analyse
    Afin d’optimiser au mieux les bancs de tests, l’analyse est primordiale afin de décider des actions à entreprendre. J’ai constaté plusieurs éléments limitant la capacité de test :
    • trop d’actions manuelles : le test est saccadé; de plus, à chaque fois que l’opérateur doit intervenir, il n’est pas disponible pour lancer un test sur un autre banc.
    • ergonomie du banc de test : l’opérateur perd du temps à placer l’unité à tester, la brancher et la débrancher.
    • ergonomie du logiciel de test : les résultats de test ne sont pas clairement identifiables; l’opérateur perd du temps pour lire le diagnostique, ou pire, il se trompe.
    • fausses pannes : l’opérateur doute alors du testeur et relance le test ce qui fait perdre du temps bien sur. Elles peuvent être causées par le matériel (instabilité de la mesure à cause de l’instrumentation, du câblage, de la connectique ou autres éléments perturbateurs) comme par le logiciel (traitement de la mesure, analyse, tolérance).
    • utilisation des ressources matérielles : tous les tests sont exécutés l’un après l’autre alors que certains peuvent êtres lancés en parallèle sur la même unité ou sur plusieurs unités.
    • processus : un seul banc exécutant toutes les actions et les tests n’est pas toujours la bonne solution, cela dépend du produit, des tests à réaliser, de l’environnement et ce pourquoi on teste.
    • optimisation de la ligne : le placement des bancs de tests peut pénaliser la fluidité, obliger l’opérateur à perdre du temps dans ses déplacement et augmenter le risque d’erreur de manipulation pouvant endommager le produit.
    • traçabilité : avoir l’historique du produit est important pour optimiser la réparation, fluidifier (ne pas tester un produit qui a été testé mauvais sur un précédant testeur), diagnostiquer les problèmes du banc, prévoir les actions de maintenance mais aussi analyser la production.
    Solution
    Après avoir présenté l’analyse de l’identification des problèmes, j'ai travaillé avec mon client sur les différents points :
    • refonte de la ligne et des testeurs pour améliorer la fluidité, l’ergonomie et les déplacements des opérateurs et des produits.
    • utilisation du matériel déjà présent, remplacement et ajout de nouveaux, modification du câblage et du type de connecteur pour une meilleure fiabilité et rapidité.
    • migration du logiciel de test depuis des scripts de tests exécutés en ligne de commande sous Linux vers des séquences de tests sous TestStand avec mise en place d’un affichage simple (test en cours, test bon, test mauvais, test en attente) avec parallélisassions des tests afin de réduire les temps.
    • Génération de rapports de test, centralisation des données sur le réseau et développement d’un logiciel d’analyse des données.
    • Formation des opérateurs et optimisation des actions.
    © Adrien Jolly www.ajolly.fr
  • Activités année 2012

    Les projets ont défilé à une vitesse incroyable en 2012. En fin de compte j’ai effectué 160 000 km en avion pour allez voir mes clients et voyager une semaine dans ce pays, 3 semaines dans cet autre, 2 semaines dans cette ville mais au total c’est bien 6 mois de partage professionnel et humain (et oui, au delà de la technique, il y toujours l’homme !). Durant cette année j’ai beaucoup aimé apporté mon savoir faire pour des projet d’envergure, aller au delà de ma spécialité afin de donner le meilleur accompagnement  à mes clients dans les difficultés, optimiser des processus tant logiciels, matériels qu’industriels, analyser les procédés afin de proposer les changements répondant pour le mieux aux problématiques, parler jusqu’à 4 langues dans la même réunion (anglais, français, portugais et espagnol), partager mes expériences dans autant de langues lors de formation.
    Voici un récapitulatif de mes expériences sur 2012 :
    • développement de bancs de tests sous TestStand, LabWindows/CVI pour l’industrie au Brésil ; installation de ligne de production avec 36 stations ; analyse de défauts de production ; amélioration des procédés de test pour réduire les temps de cycle et augmenter la capacité
    • support des équipes de production : par déplacement et à distance, aide à la spécification des problèmes, identification des causes, correction et optimisation ou pré analyse pour aiguillage vers les collègues spécialisés (base de données ou production par exemple)
    • formation pour LabVIEW, TestStand et LabWindows/CVI
    • développement de système de mesure pour l’industrie cosmétique sous LabVIEW
    • développement de tests de protocoles de communication pour la production d’automates programmables sous LabWindows/CVI et TestStand
    © Adrien Jolly www.ajolly.fr
  • Activités année 2011

    Pour commencer l'année 2012 rien de tel que de faire un récapitulatif de l'année passée 2011 de mes activités en tant que freelance :
    • Formateur pour LabVIEW, TestStand et LabWindows/CVI, en France et en Tunisie, pour divers secteurs d'activités industrielles, scientifiques et militaires
    • Développement d'un système de mesure par courant de Foucault pour la détection de défauts de surface de matériaux avec représentation cartographique pour les centrales nucléaires (LabWindows/CVI, multithreading, TCP/IP)
    • Amélioration d'une solution de tests cliniques pour la cosmétologie et la pharmacologie, voir article descriptif du projet (LabVIEW)
    • Amélioration d'un banc d'étude des principes de thermodynamique appliqués à la réfrigération, voir l’article descriptif du projet (LabVIEW temps réel, serveur WEB, modbus-RTU)
    • Implémentation d'instruments de mesure modbus-TCP sur réseau Ethernet et radio pour l'analyse énergétique d'installations industriels et de bâtiments (LabVIEW, Visual Basic et bases de données)
    • Développement d'un serveur de transcodage automatique de mesures issues d'automates programmables (LabVIEW)
    • Implémentation de tests fonctionnels pour la validation de régulateurs de vitesses industriels (TestStand et LabWindows/CVI, protocoles Metasys, BacNet, CC-Link, Apogee)
    • Conférence de titre "Accélérateur de particules : lumière sur le futur médical” présentant les avancées technologiques grâce aux observations nanométriques procurées par les synchrotrons, voir l’article
    © Adrien Jolly www.ajolly.fr
  • Publication dans la presse

    Ce mois de septembre aura été on ne peut plus sympathique avec deux publications d’articles parus dans la presse spécialisée au sujet du banc frigorifique contrôlable à distance pour lequel j’ai participé sur la partie acquisition, régulation et supervision pour le lycée Raspail.

    Les articles sont parus dans la Revue pour le froid avec le titre “Chambre froide pour apprendre à distance”, et dans la Revue générale du froid et du conditionnement d’air avec le titre “Lycée Raspail, le lycée des métiers de l’énergie et de l’environnement de Paris”.

    La description du banc est quant à elle consultable ici.

    © Adrien Jolly www.ajolly.fr
  • Conférence “Accélérateur de particules : lumière sur le futur médical”

    Cette fois la conférence n’était pas directement liée au test et mesure, à LabVIEW, LabWindows/CVI ou TestStand mais à-propos des accélérateurs de particules, leurs applications médicales comme le traitement du cancer et plus particulièrement l’utilisation du rayonnement synchrotron pour l’observation microscopique comme l’étude des mécanismes de fonctionnement des protéines et les applications futures pour les médicaments actifs à base de nanotechnologie. Cette idée m’est venue d'une assistance technique que j’ai donnée au synchrotron “Soleil”, au sud de Paris pour identifier les pertes de mesures sur une ligne de lumière et optimiser les drivers d’instruments.

    Conférence “Accélérateur de particules : lumière sur le futur médical” durant la XXXII réunion des chirurgiens pédiatres de l’institut Mexicain de Pédiatrie et leurs collègues d’Espagne. 
    Conférence “Accélérateur de particules : lumière sur le futur médical” durant la XXXII réunion des chirurgiens pédiatres de l’institut Mexicain de Pédiatrie et leurs collègues d’Espagne.

    Conférence “Accélérateur de particules : l’auditoire composé de chirurgiens pédiatres d’Espagne et du Mexique. 
    L’auditoire composé de chirurgiens pédiatres d’Espagne et du Mexique.

    Le synchrotron “Soleil” 
    Le synchrotron “Soleil”

    Quelques instruments utilisés au synchrotron "Soleil"
    C’est pour ce type d’instruments que je suis intervenu au synchrotron “soleil”.

    © Adrien Jolly www.ajolly.fr
  • Nouveautés LabVIEW 2010 : du côté des palettes

    LabVIEW200
    Voici un petit tour d’horizon des nouveautés et changements apporté par LabVIEW 2010 en comparaison avec LabVIEW 2009 mais du point de vue des palettes de programmation et de contrôles. On notera qu’une bonne part des modifications visent l’aspect pratique.

    Programmation : structures

    programation-structures
    On note la migration du la structure élément en place qui était déjà présente dans la version 2009 mais qu’on trouvait dans la palette gestion de la mémoire. Cette structure est bien utile pour optimiser la consommation de la mémoire, ce qu’on mais surtout en pratique pour les applications embarquées (compact RIO ou compact FieldPoint) et pour les logiciels sollicitant fortement la manipulation de données en mémoire (ceci réduisant le nombre de réallocations et facilitant la lecture du diagramme).
    Les icones des variables partagées, globales et locales ont changé de look, c’est un peu plus parlant.

    Programmation : numérique

    programation-numérique
    Ajout de la constante de type double. Avant il fallait positionner une constante de type entier puis changer sa représentation en double. Maintenant on pose directement la constante double sur le diagramme.

    Programmation : booléen

    programation-booléen
    Modification de l’icone de la constante booléenne : il est plus compact. Au lieu d’afficher T/F, il n’affiche que T ou que F, ceci permet d’alléger le diagramme et de gagner de l’espace.

    Programmation : E/S sur fichiers

    programation-ES-sur-fichiers
    Ici c’est E/S sur fichiers de waveform qui fait sont apparition. C’est la copie des mêmes fonctions qu’on trouve également dans la palette waveform. Elle est donc à deux endroit : palette E/S sur fichiers et palette waveform. L’intérêt c’est qu’on ne risque pas de se dire “bon dieu, mais elle est où cette fonction déjà ?”. Et oui, ce n’est pas incohérent de la mettre aussi là puisqu’on traite un fichier après tout.
    programation-ES-sur-fichiers-TDMS-en-continu
    La palette des fichiers TDMS a évolué avec l’ajout de fonctions avancées comme ci-dessous.
    programation-ES-sur-fichiers-TDMS-en-continu-TDMS-avancéprogramation-ES-sur-fichiers-bibliotheque-empaquetee
    Dans les fonctions de fichiers avancées, la gestion des bibliothèques empaquetées a été ajoutée. Mais c’est quoi donc ? Et bien pour ceux qui sont familiers avec le langage C, cela se rapproche des librairies statiques : ce sont des VIs compilés dans un même fichier .lvlibp. Les avantages sont : comme c’est déjà compilé ça fait gagner du temps lors de la génération d’un exécutable (pratique pour les gros exe), on peut distribuer ses fonctions à ses collègues plus facilement. Bref on les utilisera surtout pour des projets de grosse envergure et/ou chaque développeur travail sur sa partie.

    Programmation : Dialogue et interface utilisateur

    LabVIEW2010-dialogue-et-interface-utilisateur
    La fusion des erreurs est désormais une fonction et non un sous-vi. Outre le côté pratique de cette fonction qui accepte N entrées en l’étirant (à la manière de la fonction construire un tableau), gageons que qu’elle sera plus rapide que la version antérieur en sous-vi. J’en profite pour insister sur l’importance du suivi des erreurs : je ne compte pas le nombre de fois où j’ai gagné du temps tant durant la phase de développement que de la maintenance pour identifier la source d’un bug.

    Communication de données

    LabVIEW2010-communication-de-donnees
    Les fonctions de flux réseau font leur apparition. Elles permettent le transfert sans perte de données et en continue de type waveform. Pour données qui ne sont pas à “flux tendu” ont préfèrera les variables partagées qu’on publiera sur le réseau. C’est simple et c’est efficace.
    On note ici aussi le changement de look des icones des variables.
    LabVIEW2010-communication-de-donnees-client-HTTP
    Au niveau des protocoles, c’est l’HTTP client qui a été ajouté. Ceci facilite la programmation car dans les versions antérieures, il fallait tout codé en utilisant les couches basses de la palette TCP. Désormais le dialogue avec un serveur Web est bien plus simple. Exemple d’utilisation : dialogue avec un serveur pour envoyer ou recevoir des informations, comme un mini serveur d’une carte ethernet low cost ou d’un serveur web embarqué dans un automate distant.
    © Adrien Jolly www.ajolly.fr
  • Conférence “Systèmes embarqués avec LabVIEW orientés à la supervision”

    Adrien Jolly - photos (c) François Orsero J’ai eu le plaisir de donner une  conférence, encore  une fois invité par une université mexicaine, pour parler les systèmes industriels et scientifiques utilisant les technologies de National Instruments, durant le congrès international d’ingénierie télématique de l’Université Polytechnique au Mexique. Cette conférence d’une heure est introduite par une description de ce qu’est le contrôle, la supervision, la simulation, le test et la mesure, en passant par une démonstration de programmation avec LabVIEW, une vidéo en directe avec l’institut technique Raspail à Paris pour présenter un banc frigorifique à deux chambres commandé par un module temps réel Compact Fieldpoint y son logiciel embarqué que j’ai développé sous LabVIEW et une démonstration de prise de contrôle à distance du banc installé en France depuis le Mexique.

    La conférence est donnée en espagnol mais j’ai doublé en français les vidéos ci-dessous.

    Partie 1/8: Introduction

    Introduction de la conférence pour montrer l’évolution de la complexité des produits et son impact sur les technologies utilisées pour les fabriquer.


    Partie 2/8: Contrôle, Supervision, Mesure, Validation, Simulation

    Description du contrôle, la mesure, la validation et la simulation aux fins de la qualité dans l’industrie et la recherche scientifique.

    Partie 3/8: Exemples de systèmes

    Exemples de systèmes de contrôle, supervision, validation et mesure utilisant les technologies de National Instruments : LabVIEW, LabWindows/CVI, TestStand et le matériel.

    Partie 4/8: Vidéo en directe depuis Paris

    Vidéo en directe depuis Paris (Institut Technologique Raspail) pour décrire le banc frigorifique à double chambre utilisant un système de contrôle et supervision temps réel Compact Fieldpoint de National Instruments et son logiciel embarqué que j’ai développé sous LabVIEW, avec l’aimable participation de Daniel Garault, chef des travaux, de Guy Marcaillou, professeur de thermodynamique et de Clarisse Mbobda Fonking, professeur de sciences physiques.

    Partie 5/8: Description technique du banc frigorifique

    Description du matériel du système temps réel du banc frigorifique de l’institut technologique Raspail : les composants Compact Fieldpoint et le logiciel embarqué développé sous LabVIEW et son module temps réel.

    Partie 6/8: Introduction à LabVIEW

    Démonstration de programmation en langage Graphique avec LabVIEW : ici un générateur de signaux.

    Partie 7/8: Shared Variables démonstration

    Présentation les variables partagées réseau de LabVIEW et démonstration de la prise de contrôle à distance du banc frigorifique à Paris depuis le Mexique.

    Partie 8/8: Shared Variables détails et Web Server avec LabVIEW

    Description de l’architecture des variables partagées réseau puis description et démonstration du serveur web de LabVIEW embarqué dans le contrôleur Compact Fieldpoint de National Instruments pour superviser et prendre le contrôle à distance du banc frigorifique directement depuis le navigateur internet (ici les droits d’accès sont gérés par Moodle).

    © Adrien Jolly www.ajolly.fr
  • Comment choisir entre LabVIEW, LabWindows/CVI, Measurement Studio .NET et TestStand

    National Instruments, qui est actuellement le leader des solutions d’instrumentation, test et mesure, propose des solutions pour le développement de logiciels dans trois langages différents : LabVIEW, LabWindows/CVI et Measurement Studio; et un autre logiciel de développement spécialisé : TestStand. Mais, j’en convient et surtout vu de l’œil du non initié, on peut être un peut perdu face à toutes ces solution. Aussi, je vais faire une courte présentation de ces produits avec leurs différences et leurs points forts.

    LabVIEW logo LabVIEW

    LabVIEW est le produit phare de National Instruments depuis 1984.

    • Utilisation : développement de logiciels orientés industrie et science, le plus souvent fortement liés aux instruments de mesure, capteurs et appareils électroniques, sous Windows, Unix, Linux ou Macintosh, PDA (Windows Mobile et Palm OS), cible temps réel (de NI), FGPA (de NI).
    • Langage : langage G pour Graphique. On programme en posant des icones (représentant des fonctions) sur un diagramme et on les relie par des fils (représentants les flux de données, les variables).
    • Avantage : le langage G, entièrement graphique, permet de développer très rapidement des applications sans connaissance étendu de la programmation.

    LabWindows/CVI logo LabWindows/CVI

    LabWindows/CVI est une déclinaison de LabVIEW pour la programmation en langage C.

    • Utilisation : développement de logiciels orientés industrie et science le plus souvent fortement liés aux instruments de mesure, capteurs et appareils électroniques, sous Windows, Unix, Linux et cible temps réel (de NI) - depuis la version 9.0 pour ce dernier point.
    • Langage : langage C. LabWindows/CVI contient bon nombre d’assistant pour faciliter le développement d’interfaces graphiques, la déclaration des variables, l’insertion de fonctions et structure du code et la communication avec les instruments et autres appareils électroniques.
    • Avantage : le langage C est un langage de base souvent connu des ingénieurs et techniciens. C’est un langage majeur qui permet l’utilisation de code source déjà existants. La programmation est facilité grâce aux assistants.

    Measurement Studio logo Measurement Studio

    Measurement Studio est un pack de classes et librairies similaires à LabVIEW pour Visual Studio.

    • Utilisation : développement de logiciels orientés industrie et science le plus souvent fortement liés aux instruments de mesure, capteurs et appareils électroniques, sous Windows.
    • Langage : langages C++, C# et Visual Basic.
    • Avantage : facilite le développement d’applications d’instrumentation et de mesure sous Visual Studio grâce à ses librairies de fonctions dédiées et ses objets graphiques spécialisés.

    TestStand-Logo TestStand

    TestStand est un outil, ou plus exactement une suite de fonctionnalités, ou Framework, permettant de faciliter le développement de logiciels de type séquenceur.

    • Utilisation : développement de séquenceurs dans les domaines de l’industrie et des sciences, le plus souvent pour le séquencement de mesures et de tests sous Windows.
    • Langage : compatibilité avec LabVIEW, LabWindows/CVI, Java, HTbasic et tous langages produisant des DLL, EXE, des composants ActiveX et .NET. TestStand possède également son propre langage simple de script.
    • Avantage : il possède toutes les fonctions nécessaires à un séquenceur de tests; c’est autant de temps de gagné sur le développement. Il dispose, entre autres, des fonctions suivantes : génération de rapports, éditeur de séquence, génération automatique de code source, connexion aux bases de données, parallélisme, composants graphiques pour l’interface opérateur, gestions des droits des utilisateurs.
    © Adrien Jolly www.ajolly.fr
  • Conférence sur le test et mesure au Mexique

    J’ai été invité pour donner une conférence dans le cadre du SIECC 2009 de titre “Fusing Worlds”, symposium international étudiant de science informatique sur trois jours, organisé par Institut Technologique de Durango au Mexique.

    12652_169092777849_107759907849_2596261_4426841_n

    Le titre de ma conférence était “La mécatronique dans la qualité industrielle et la recherche scientifique” où j’ai exposé les enjeux du contrôle, de la mesure, du test et de la simulation dans des problématiques de plus en plus complexes au sein de la recherche et de l’industrie, agrémentée de d’exemples tirés de mon expérience professionnelle.

    16649_179577636768_533411768_2849826_1199836_n16649_179577671768_533411768_2849831_2633575_n

    Entre autres conférenciers, on pouvait compter Leo Prieto (leo.prie.to), un chilien qui est à la tête de Fayerwayer.com premier site d’Amérique latine avec 4 millions de visiteurs par jour, pour parler de l’hyper connectivité; Álvaro López Ortega (Octality), espagnol, créateur du serveur libre “Cherokee”,  pour présenter les modèles économiques applicables pour une entreprise développant en Open Source; Ricardo Meza, mexicain, membre de Mozilla, pour nous parler de FireFox et de l’Open Source; Mauricio Pastrana, colombien, pour nous parler des enjeux économiques des communautés du web; Alejandro Martinez, mexicain, membre de Microsoft pour nous présenter les nouvelles innovations technologiques de Microsoft; et Carlos Montelongo pour parler des applications JAVA. Ci-dessous une photo des conférenciers :

    11440_167937514139_558214139_2568405_2940484_n

    voir le site de l’évènement : siecc09.com

    © Adrien Jolly www.ajolly.fr
  • Nouvelles fonctions de LabVIEW 2009

    labview2 LabVIEW 2009 vient de sortir (on notera que le numéro de la version est en faite la 9.0). En plus des nouveautés annoncées par National Instruments sur son site, j’ai voulu faire un tour d’horizon des nouveautés dans les palettes de commandes en face avant et de fonctions pour les diagrammes. En voici la synthèse (les nouveautés sont encadrées en rouge :

    Nouveautés dans les commandes (face avant)

    • Numérique
    labview2009-moderne-numerique ajout de la commande de type réservoir
    • Graphe
    labview2009-moderne-graphe ajout du tracé de compas, tracé à barres d’erreur, tracé de plume et matrice de tracés XY et ajout de la palette dédiée au graphe 3D
    • Graphe 3D
    labview2009-moderne-graphe-graphe-3d ajout des graphes 3D de type nuage, barres, camembert, bâtons, rubans, contour, champ vectoriel, comète, surface, maillage et chute d’eau.

     

    Nouveautés dans les fonctions (diagramme)

    • Programmation, numérique, virgule fixe
    labview2009-programmation-numerique-virgule-fixe ajout de : adapter de virgule fixe à entier, adapter d’entier à virgule fixe
    • Programmation, tableau, matrice
    labview2009-programmation-tableau-matrice nouvelle palette avec : taille de matrice, construire une matrice, redimensionner une matrice, transposée d’une matrice, obtenir la diagonale d’une matrice, obtenir les éléments d’une matrice, obtenir une sous-matrice, définir une diagonale de matrice, définir des éléments de matrice, définir une sous-matrice
    • Programmation, cluster, classe et variant
    labview2009-programmation-cluster-classe-et-variant ajout de préserver la classe à l’exécution
    • Programmation, E/S sur fichiers, constantes de fichiers
    labview2009-programmation-es-sur-fichiers-constantes-de-fichiers ajout de : obtenir le répertoire système et répertoire de l’application
    • Programmation, E/S sur les fichiers, XML, parseur XML
    labview2009-programmation-es-sur-fichiers-xml-parseur-xml
    • ajout de : obtenir le premier nœud correspondant et obtenir tous les nœuds correspondants.
    • à noter le changement des icones nouveau et fermer.
    • Programmation, E/S sur les fichiers, TDM en continu
    labview2009-programmation-es-sur-fichiers-tdm-en-continu ajout de : TDMS – convertir le format, créer des informations de mise à l’échelle
    • Programmation, contrôle d’applications, contrôle de mémoire
    labview2009-programmation-controle-applications-controle-de-memoire ajout de : nouvelle référence de valeur de données, supprimer une référence de valeur de données
    • Programmation, contrôle d’applications, informations sur le processeur
    labview2009-programmation-controle-applications-informations-sur-le-processeur nouvelle palette avec : information sur le processeur, nombre de niveaux de cache, taille du cache de données
    • Programmation, waveform, waveforme numérique
    labview2009-waveform-waveform-numerique ajout de grouper les signaux numériques
    • Traitement du signal, opérations sur les signaux
    labview2009-traitement-du-signal-operations-sur-les-signaux ajout de nœud de délai de transformée en Z
    • Mathématiques, équations différentielles, équations différentielles partielles
    labview2009-mathematiques-equations-differentielles-partielles nouvelle palette avec : définir une EDP, définir un domaine d’EDP, définir la condition aux limites d’une EDP, définir la condition initiale d’une EDP, résolution d’EDP, rendu d’EDP
    • Communication de données, variable partagée
    labview2009-communication-de-donnees-variable-partagee
    • ajout de fonctions pour simplifier l’utilisation des variables partagées : établir une connexion à la variable, lire une variable, écrire une variable, fermer une connexion à une variable, nœud de propriété de variable.
    • pour les variable PSP : ouvrir et vérifier la connexion d’une variable, établir une connexion à une variable en arrière plan.
      pour les variables
    • E/S : lecture par balayage de la variable, écriture par balayage de la variable, lecture directe de la variable, écriture directe de la variable
    • Entrées/Sorties de mesures, moteur de balayage NI
    labview2009-es-de-mesures-moteur-de-balayage-ni nouvelle palette avec : synchronisation avec le moteur de balayage, obtenir la période du moteur de balayage, définir la période du moteur de balayage, obtenir le mode du moteur de balayage, définir le mode du moteur de balayage, rafraichir les modules locaux
    • Entrées/Sorties de mesures, moteur de balayage NI, contrainte
    labview2009-es-de-mesures-moteur-de-balayage-ni-contrainte nouvelle palette avec : activer les contraintes de variables, désactiver les contraintes de variables, effacer les contraintes de variables, contraindre une variable, annuler une contrainte de variable

    • Entrées/Sorties de mesures, moteur de balayage NI, défaillances
    labview2009-es-de-mesures-moteur-de-balayage-ni-defaillances nouvelle palette avec : obtenir une liste de défaillances, définir une défaillance, effacer une défaillance, effacer toutes les défaillances
    • Entrées/Sorties de mesures, moteur de balayage NI, configuration de défaillances
    labview2009-es-de-mesures-moteur-de-balayage-ni-configuration-de-defaillances nouvelle palette avec : définir une configuration de défaillance, effacer une configuration de défaillance, obtenir toutes les configurations de défaillances
    © Adrien Jolly www.ajolly.fr
  • Utilisation de JAVA avec TestStand

    logoteststand On peut maintenant faire appel à des classes JAVA directement depuis les séquences TestStand.

    On sait que TestStand permet d’appeler des composants de type LabVIEW (VI), LabWindows/CVI (.C, .obj, .lib, .dll), DLL (donc tous langages capable de produire des DLL : C++, Pascal Object avec Delphi, Visual Basic et autres….), ActiveX (et donc tous langages compatibles), .NET assemblies (et langages compatibles…), HTbasic. On pourrait se dire que ces adaptateurs (adapters in english) sont principalement des technologies Microsoft. Choix commercial peut être, mais c’est sans compter sur la possibilité de les programmer soit même, surtout que l’ont peut prendre exemple des sources des adaptateurs, précédemment listés, qui nous sont fournis avec TestStand.

    Dans cette veine, un nouvel adaptateur nous est livré : l’adaptateur JAVA. Il comprend trois groupes :

    • StartStop : pour le démarrage et l’arrêt de la machine virtuelle JAVA (JVM).
    • Methods : appel à une méthode d’une classe
    • Static methods : appel à une méthode statique d’une classe

    L’appel aux méthodes permet les types de pas suivants : Numeric Limit Test, String Value Test, Pass/Fail Test et Action.

    Regardez ci-dessous un exemple d’une séquence (ici pour une carte mère d’un PC) écrit avec des pas JAVA (voir Java dans le dossier des exemples TestStand).

    TestStand-java
    Séquence de test en JAVA sous TestStand

    Il est à noter que les sources des adaptateurs JAVA sont codés en C sous LabWindows/CVI. L’interface de configuration des propriétés ci-dessous est donc modifiable.

    Java_EditJavaCall_db
    Propriétés d’un pas JAVA sous TestStand

    L’adaptateur JAVA est compatible avec TestStand 3.0 et supérieur, LabWindows 6.0 et supérieur et Java 2 version 1.4.

    © Adrien Jolly www.ajolly.fr
  • Options de compilation sous LabWindows/CVI

    imageLes options de compilation sont souvent un peu oubliées alors que l’on développe un programme; hors, elles sont aussi importantes que le code lui même et cela pour plusieurs raisons : elles permettent de configurer la profondeur d’analyse de détection d’erreur du code source et de gestion mémoire lors de l’exécution, elle fixent les adressages pour la compatibilité avec d’autres composants, DLL par exemple. Ainsi, on l’aura compris, la modification d’une option peut changer le niveau de détection des erreurs par le debugger de LabWindows/CVI. On aurait alors un comportement instable de notre programme sans en avoir été averti lors de la compilation ou de l’exécution en mode “debug”. Aussi, pour vous aider dans vos débuts sous LabWindows/CVI, je vous propose d’adopter la configuration ci-après pour les “Build Options” du menu “Options” de LabWindows/CVI 9.0 (les options sont légèrement différentes pour les versions précédentes mais l’essentiel est resté).

    Build Options LabWindows/CVI 9.0

    © Adrien Jolly www.ajolly.fr
  • Structuration du code LabVIEW

    labview_thumb On peut définir un bon code source par plusieurs caractéristiques : déjà il faut qu’il fonctionne, qu’il soit facile à lire et facile à modifier donc aisément maintenable. Dans ces fins, on recherchera à structurer et non à jeter son code pèle-mêle sur le diagramme. On utilisera la palette de structures avec les Palette "structures" de LabVIEW boucles FOR ou WHILE, les CONDITIONS, la structure d’événements (pour gérer les actions sur des éléments de l’interface graphique comme un clic sur un bouton) ou encore les séquences, sans oublier les décorations comme les encadrés et les texte pour ajouter des commentaires. Mais aussi des sous-VI qui regrouperons des instructions, se qui allégera les diagrammes, capitalisera les fonctionnalités et ainsi rendra aisé la distribution des sources et qui permettra, en outre, une meilleur gestion des ressources mémoire par le moteur de LabVIEW lors de l’exécution.

    © Adrien Jolly www.ajolly.fr
  • Historique de LabWindows/CVI

    cviComme je le fais pour LabVIEW, j’écris l’historique des versions de LabWindows/CVI sur Wikipédia ici.

     

    • 1989 : LabWindows 1.0, sous DOS, première version publique
    • 1991 : LabWindows 2.0, sous DOS, aides au développement d'IHM
    • 1994 : LabWindows/CVI 3.0, sous Windows 3.1 et Solaris
    • 1995 : LabWindows/CVI 3.1, génération automatique de code
    • 1996 : LabWindows/CVI 4.0, compatibilité accrue avec les compilateurs externes
    • 1998 : LabWindows/CVI 5.0, compatibilité VXI et IVI
    • 2000 : LabWindows/CVI 5.5, librairies multitâches
    • 2001 : LabWindows/CVI 6.0, support ActiveX et amélioration de l'IHM
    • 2003 : LabWindows/CVI 7.0, intégration des workspaces
    • 2004 : LabWindows/CVI 7.1, complétion automatique
    • 2005 : LabWindows/CVI 8.0, nouveau système de déploiement, support des .NET assemblies
    • 2006 : LabWindows/CVI 8.1, variables réseau, contrôles graphiques du style Windows
    • 2007 : LabWindows/CVI 8.5, amélioration de la gestion du microprocesseur multi cœur, édition du code pendant le débogage, première version du toolkit temps réel
    • 2008 : LabWindows/CVI 9.0, gestionnaire de mémoire et compilation optimisée, support du C ANSI version 99 (notamment les tableaux dynamiques)
    © Adrien Jolly www.ajolly.fr
  • Historique de LabVIEW

    labview Je suis en cours de rédaction sur Wikipédia de l’historique des versions de LabVIEW (pour voir l’article sur wikipédia):

     

    • 1986 : LabVIEW 1.0, première version sous Mac OS
    • 1990 : LabVIEW 2.0, optimisation des performances
    • 1992 : LabVIEW 2.5, sous Windows 3.1 et Sun OS (Solaris)
    • 1993 : LabVIEW 3.0
    • 1994 : LabVIEW 3.0.1, sous Windows NT
    • 1994 : LabVIEW 3.1
    • 1995 : LabVIEW 3.1.1, intégration de l'Application Builder
      1996 : LabVIEW 4.0
    • 1997 : LabVIEW 4.1
    • 1998 : LabVIEW 5.0, multitâche, conteneurs ActiveX, assistant pour les cartes d'acquisition (DAQ) et assistant pour le contrôle d'instrument
    • 1999 : LabVIEW 5.1, portage sous linux; première version de LabVIEW RT
    • 2000 : LabVIEW 6.0, contrôles au look 3D, référence d'un contrôle
    • 2001 : LabVIEW 6.1, optimisations et corrections
    • 2003 : LabVIEW 7.0, VI Express
    • 2004 : LabVIEW 7.1, traduit en français, allemand et japonais
    • 2005 : LabVIEW 8.0, Project Explorer, XControls, shared variables
    • 2005 : LabVIEW 8.1, optimisations et corrections
    • 2006 : LabVIEW 8.20, programmation orientée objets
      2007 : LabVIEW 8.5, première version du toolkit FPGA et du toolkit Statechart
    • 2008 : LabVIEW 8.6, nettoyage automatique des diagrammes

    Il me manque encore quelques infos sur certaines versions mais j’y travaille et toutes infos à ce sujet sont les bienvenues.

    © Adrien Jolly www.ajolly.fr
  • La programmation orientée objet sous LabVIEW

    labviewSaviez-vous que depuis la version 8.20 de LabVIEW, sortie en 2006, il est possible de programmer avec une architecture objet ? On peut ainsi créer des classes avec leurs propriétés et leurs méthodes, comme en C++, Java, C#, pascal object (Delphi) et autres langages évolués.
    J'entends certains d'entre vous dire "mais qu'est-ce que ça nous apporte en plus pour le développement de logiciel de test et mesure ?". Serte, il est vrai que pour un petit logiciel qui fait une mesure ou plusieurs mesures et un traitement simple, le langage objets n'est pas forcément le plus adapté... quoi que : on pense toujours développer en "one shot" et on se rend très souvent compte, après coup, qu'il faut faire évoluer le logiciel et/ou récupérer une fonctionnalité pour l'intégrer dans un autre développement. C'est là que la programmation objet (LVOOP sous LabVIEW pour LabView Oriented-Object Programming) a tout son intérêt : elle permet un concept et une architecture plus proche du monde physique et donc du raisonnement humain (exemple d'objet : une voiture avec ses méthodes, tourner, freiner, et ses propriétés, vitesse maximum, couleur). De plus, on peut alors profiter des outils de modélisation qui permettent de concevoir sous forme de schémas semi-formels la structure d'un programme, basé par exemple sur UML (d'ailleurs il y a un toolkit dédié sous LabVIEW).
    © Adrien Jolly www.ajolly.fr
  • Wikipédia et le test et mesure

    Depuis 2006 je contribue à quelques articles sur ce merveilleux outil du savoir qu'est l'encyclopédie libre Wikipédia. Je m'étais pour le moment attelé à la rédaction d'articles sur l'histoire et la culture du nord du Mexique.
    Depuis quelque temps, je participe, quand j'ai le temps, à l'ajout d'articles concernant le test et la mesure et ses différents outils (mon profile sous Wikipédia : http://fr.wikipedia.org/wiki/Utilisateur:Adrienj). Si vous souhaitez participer à cet effort, qui n'a de noblesse que le partage des connaissances, alors rien de plus simple : créez un compte sous Wikipédia.
    Pas mal de chose reste à compléter, comme les articles sur : LabVIEW, LabWindows/CVI, TestStand, Measurement Studio, PXI, VXI... et beaucoup d'autres définitions ne font pas encore partie de l'encyclopédie : à vos claviers !
    © Adrien Jolly www.ajolly.fr
  • LabWindows/CVI 9.0 : les tables dynamique

    Avec l'implémentation du standard C99, une avancé est fait quant à la gestion de la mémoire : la déclaration de tables dynamiques (variable-length arrays in english).

    Vous me direz, les tables je connais, je la déclare un tableau de dix entiers en dimensionnant avec une constante comme suit : int iTable[10]. Les tables dynamiques, ok je connais, je déclare un pointeur puis je fais un malloc ou calloc pour la dimmensionner avec une variable, en n'oubliant pas de libérer la mémoire allouée avec un free à la fin du traitement.

    Alors que sont les variable-length arrays ?
    C'est la possibilité de declarer des tables en les dimensionnant avec des variables et non plus qu'avec les seules constantes.
    Voici deux exemples pour illustrer l'utilisation d'un tableau dynamique : On demande à l'utilisateur de dimmensionner une table que l'on alloue puis on affiche le contenu de cette table.

    AVANT
    int rows, cols;
    int i, j;
    int *piTable = NULL;

    printf("Entrez le nombre de ligne de la table: ");
    scanf("%d", &iNbLigne);
    printf("Entrez le nombre de colonne de la table: ");
    scanf("%d", &iNbColonne);

    *piTable = (int*)malloc(iNbLigne*iNbColonne*sizeof(int));
    if (piTable != NULL)
    {
      for (int i = 0; i < iNbLigne;i++)
      {
        for (int j = 0; j <
    iNbColonne;j++)
        {
          piTable[i][j] = i*iNbColonne + j;
          printf("%d ", piTable[i][j]);
        }
        printf("\n");
      }
    }
    free(piTable);
    piTable = NULL;


    MAINTENANT
    Dans le code suivant, on utilise également une autre nouveauté de la C99 : la déclaration des variables n'est plus cantonnée au début des blocs { }.

    int iNbLigne, iNbColonne;
    int i, j;

    printf("Entrez le nombre de ligne de la table: ");
    scanf("%d", &iNbLigne);
    printf("Entrez le nombre de colonne de la table: ");
    scanf("%d", &iNbColonne);

    int tiTable[iNbLigne][iNbColonne];
    for (int i = 0; i < iNbLigne; ++i)
    {
      for (int j = 0; j < iNbColonne; ++j)
      {
        tiTable[i][j] = i*iNbColonne + j;
        printf("%d ",
    tiTable[i][j]);
      }
      printf("\n");
    }

    Ici, la libération de la mémoire alouée à tiTable est effectuée à la fin de "vie" de cette variable. Comme tiTable est une variable locale, elle sera désalouée à la fin du traitement la fonction dans laquelle elle est déclarée.
    © Adrien Jolly www.ajolly.fr
  • Les nouveautés de LabWindows/CVI 9.0 : le standard C99

    Pas mal de nouveautés sont disponibles dans LabWindows/CVI 9.0 surtout avec l'implémentation du dernier standard du langage C : la C99. On aura donc attendu dix ans, le temps de maturation, pour bénéficier des avantages de ce nouveau standard.
    Qu'apporte la C99 ?
    Voici la liste de ces améliorations :
    • La déclaration des variables n'est plus cantonnée au début des blocs { }.
    • On peut déclarer des tables en les dimensionnant avec des variables et non plus qu'avec les seules constantes.
    • Chaque éléments des tables, structures et unions est maintenant initialisable distinctement et nommément.
    • Les éléments des tables, structures et unions peuvent être initialisés avec des variables.
    • nouveau type : les entiers de 64 bits (long long).
    • nouvelles fonctions snprintf et vsnprintf qui sont des versions "sécurisées" de sprintf et vsprintf puisqu'elles évitent les dépassements en contrôlant la taille de la chaîne d'entrée.
    • les macros à n arguments (...).
    • ajout de la variable du pré-compilateur __func__ contenant le nom de la fonction courante.
    Je remarque que cette dernière nouveauté (__func__) de la C99 était déjà présente depuis quelques versions de CVI.

    Je détaillerai dans des articles dédiés chaque aspect de la C99 pour LabWindows/CVI.
    © Adrien Jolly www.ajolly.fr

Mes actualités sur Twitter

Suiviez-moi sur Facebook

Adrien Jolly