architecture plug-in en labview : de la conception à la réalisation
TRANSCRIPT
![Page 1: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/1.jpg)
D U C O N C E P T À L A R É A L I S A T I O N
ARCHITECTURE PLUG-IN AVEC LABVIEW :
NIDays/ Paris / 03 Février 2015
![Page 2: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/2.jpg)
SAPHIR
Architecture plug-in avec LabVIEW
Création en 1989• 25 ans• Partenaire Gold
21 personnes• 15 développeurs certifiés• + de 80% de l’équipe a plus de 3 ans d’ancienneté
En France• Entre Chambéry et Grenoble
![Page 3: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/3.jpg)
JANVIER 2015 : CRÉATION DE QMT GROUP
Architecture plug-in avec LabVIEW
L’expert en acquisition et traitement de signaux pour la mesure, le test et le contrôle qualité
![Page 4: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/4.jpg)
QUELS DOMAINES
Architecture plug-in avec LabVIEW
Système distribué, Client-Serveur, Plug-
ins…
Applications sur mesure
Expertise / Accompagnement
Formations
Toolkits LabVIEW et application
88 % du CA
2%du CA
10%du CA
![Page 5: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/5.jpg)
DES COMPÉTENCES
Architecture plug-in avec LabVIEW
Système distribué, Client-Serveur, Plug-
ins…
Acquisition et traitement de
signaux
Pilotage de banc de test,
supervision
Contrôle qualité en chaine de production
Systèmes embarqués, Client-
Serveur…
![Page 6: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/6.jpg)
INTRODUCTION
> Dans quels cas mettre en place une architecture plug-in ?
> Prérequis : quelques rappels sur la programmation objet
> Comment créer un plug-in ?
> Exemple concret : Métrolab
Architecture plug-in avec LabVIEW
![Page 7: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/7.jpg)
QU’EST-CE QU’UNE ARCHITECTURE PLUG-IN ?
>Module d'extension qui complète un logiciel hôte pour lui apporter de nouvelles fonctionnalités.
>Exemples : Google Chrome, Mozilla Firefox, Notepad++, LabVIEW…
Architecture plug-in avec LabVIEW
![Page 8: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/8.jpg)
LE CHOIX D’UNE ARCHITECTURE PLUG-IN
> Modification/Ajout de fonctionnalités, sans recompiler l’ensemble du code
> Ouverture du développement de modules à d’autres développeurs
> Installation personnalisée
Permet d’améliorer l’évolutivité, la maintenabilité et la qualité d’une application
Architecture plug-in avec LabVIEW
![Page 9: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/9.jpg)
PRÉ-REQUIS : OOP
> Une classe est un ensemble de propriétés (données) et de méthodes (fonctions) qui interagissent sur ces données
> Un objet est une instance spécifique d’une classe
Architecture plug-ins avec LabVIEW
Classe Instrument
PropriétésIdentifiantNuméro de sérieDernière valeur lue
MéthodesInitialiserEcrireLireLibérer
Objet 1• AG34401• B254255• 1.4 V
Objet 2• DPG 10• DH1389B• 1.1 bar
Objet 3• CPC 6000• PN001MENS• 1088 Pa
![Page 10: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/10.jpg)
PRÉ-REQUIS : HÉRITAGE
> Utilisation de la programmation objet pour bénéficier de l’héritage
> Les enfants héritent des méthodes et des propriétés du parent
> Les enfants peuvent ajouter des méthodes et des propriétés
Architecture plug-ins avec LabVIEW
Enfants
Parent Multimètre
AG 34401 AG 34970
![Page 11: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/11.jpg)
PRÉ-REQUIS : REDÉFINITION
> Redéfinition : Capacité de modifier le comportement d’une méthode parente
Architecture plug-ins avec LabVIEW
Enfants
Parent Multimètre
AG 34401 AG 34970
![Page 12: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/12.jpg)
EXEMPLE D’HÉRITAGE
Architecture plug-ins avec LabVIEW
Ancêtres
Descendants
Instrument
Multimètre
AG 34401 AG 34970
Multiplexeur
Keithley7002 AG 3499B
![Page 13: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/13.jpg)
PRÉ-REQUIS : DISPATCH DYNAMIQUE
> Dispatch dynamique :
> LabVIEW décide lors de l’exécution quelle fonction appeler
> Le choix est dicté par le type de l’objet
> Possibilité de contraindre une classe fille à redéfinir une fonction
Architecture plug-ins avec LabVIEW
1.5V
2.34V
-0.8V
![Page 14: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/14.jpg)
PLUG-INS : LE PRINCIPE
> Classe mère = INTERFACE = lien entre l’application et les plug-ins
> Classes filles = PLUG-INS
> Les classes filles redéfinissent les méthodes « interface » de leur mère
> Les classes filles sont chargées dynamiquement
> Le « dispatch dynamique » définit la méthode qui doit être appelée au moment de l’exécution
Architecture plug-ins avec LabVIEW
![Page 15: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/15.jpg)
CHARGEMENT DYNAMIQUE DES PLUG-INS
Architecture plug-in avec LabVIEW
Plug-in générique
Répertoire de stockage desPlug-ins sur le disque
Objets chargés en mémoire
Parent (Interface)
Enfants ( Plug-ins)
![Page 16: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/16.jpg)
PLUG-INS : DÉMO 1
> Exemple :
> Utilisation de l’interface (classe mère)
> Chargement dynamique des plug-ins (classes filles)
> Génération d’un exécutable
Architecture plug-in avec LabVIEW
![Page 17: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/17.jpg)
PLUG-INS : PROBLÉMATIQUE DES DÉPENDANCES
> Problématique : Une fois construite, l’application ne connait pas à l’avance les plug-ins à charger. Les plug-ins doivent donc contenir l’ensemble des ressources nécessaires à leur exécution.
> Solution : distribuer les plug-ins sous forme de packed library (*.lvlibp)
> Packed library = code compilé (*.lvlibp) construit à partir d’une librairie (*.lvlib), et contenant toutes ses dépendances
Architecture plug-in avec LabVIEW
![Page 18: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/18.jpg)
DEMO : HARDWARE ABSTRACTION LAYER (HAL)
> Démo :
> création d’une interface « Instrument » et de plug-ins à partir d’une « packed library »
Architecture plug-in avec LabVIEW
![Page 19: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/19.jpg)
EXEMPLE : METROLAB
> Contexte : Pilotage d’un banc d’étalonnage pour capteurs de température et pression
> Client : EDF-DTG, laboratoire MPSH (accrédité COFRAC)
> Application : Etalonnage des capteurs de pression et température des centrales nucléaires
Architecture plug-in avec LabVIEW
![Page 20: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/20.jpg)
METROLAB : PRINCIPE DE L’ÉTALONNAGE
Architecture plug-in avec LabVIEW
Etalonnage en température :
![Page 21: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/21.jpg)
METROLAB : PLUG-IN INSTRUMENTS
> Contrainte numéro 1 :
> Evolutivité au niveau du matériel (ajout d’instruments « facile »)
> Installation personnalisée des instruments
« <L’application> devra se présenter sous forme modulaire, permettant une installation partielle ou complète des fonctionnalités demandées et surtout permettant une grande évolutivité, pour l’intégration simplifiée de futurs équipements »
Architecture plug-in avec LabVIEW
![Page 22: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/22.jpg)
METROLAB : PLUG-IN INSTRUMENTS
> Exemple : configuration d’un multimètre sur le banc de température
Architecture plug-in avec LabVIEW
![Page 23: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/23.jpg)
METROLAB : PLUG-IN INSTRUMENTS
> Avantages :
Pour le client :
> Facilité pour ajouter/modifier/supprimer des instruments
> Installation personnalisée des instruments selon les bancs
Pour le développeur :
> Plug-in de simulation pour tests d’intégration sans matériel, pour chaque instrument
Architecture plug-in avec LabVIEW
![Page 24: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/24.jpg)
METROLAB : PLUG-IN INSTRUMENTS
> Architecture :
Architecture plug-in avec LabVIEW
![Page 25: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/25.jpg)
METROLAB : PLUG-IN BANCS
> Contrainte numéro 2:
> Une application commune pour s’interfacer avec tous les types de bancs (banc de température, banc de pression manuel, banc de pression automatique)
> Possibilité d’installer seulement l’un ou plusieurs des bancs
Architecture plug-in avec LabVIEW
![Page 26: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/26.jpg)
METROLAB : PLUG-IN BANCS
> Avantages :
Pour le client :
> Possibilité de personnaliser l’installation de l’application selon les besoins (installation de un ou plusieurs bancs sur le même PC)
Pour le développeur :
> Code commun pour toutes les fonctionnalités communes entre les bancs gain en temps de développement et test
Architecture plug-in avec LabVIEW
![Page 27: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/27.jpg)
METROLAB : INSTALLEUR
> L’installation des plug-ins doit être indépendante de l’installation du noyau
> Soit créer plusieurs installeurs avec LabVIEW
> Soit utiliser InnoSetup pour proposer un installeur plus évolué
Architecture plug-in avec LabVIEW
![Page 28: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/28.jpg)
INSTALLEUR : INNO SETUP
> Possibilité de sélectionner les plug-ins à installer
> Possibilité de créer des configurations types d’installation
> Possibilité d’installer d’autres composants
> Multiples possibilités de personnalisation
Architecture plug-in avec LabVIEW
![Page 29: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/29.jpg)
RETOUR D’EXPÉRIENCE
> Temps de développement :
> Gain pour toutes les fonctionnalités communes entre les plug-ins
> Attention au surcout engendré par la mise en place d’une Architecture plug-in
> Attention aux dépendances (LV2012 en particulier, mais beaucoup d’évolutions en LV2013 et LV2014 pour mieux gérer les dépendances)
> Pour faciliter le debug : mise en place d’un VI LabVIEW permettant d’appeler la classe LV plug-in lors d’un appel en sources et la packed library lors d’un appel en exécutable
> Architecture très structurée : facilité pour le travail en équipe, pour la maintenabilité, l’évolutivité
Architecture plug-in avec LabVIEW
![Page 30: Architecture Plug-in en LabVIEW : de la conception à la réalisation](https://reader036.vdocuments.net/reader036/viewer/2022062313/55be248abb61ebc71f8b463b/html5/thumbnails/30.jpg)
Par Mathilde VINCENT et Sylvain JOURDAN
Stand NIDays numéro 28