SlideShare una empresa de Scribd logo
1 de 30
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
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
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é
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
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…
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
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
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
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és
Identifiant
Numéro de série
Dernière valeur lue
Méthodes
Initialiser
Ecrire
Lire
Libérer
Objet 1
• AG34401
• B254255
• 1.4 V
Objet 2
• DPG 10
• DH1389B
• 1.1 bar
Objet 3
• CPC 6000
• PN001MENS
• 1088 Pa
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
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
EXEMPLE D’HÉRITAGE
Architecture plug-ins avec LabVIEW
Ancêtres
Descendants
Instrument
Multimètre
AG 34401 AG 34970
Multiplexeur
Keithley7002 AG 3499B
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
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
CHARGEMENT DYNAMIQUE DES PLUG-INS
Architecture plug-in avec LabVIEW
Plug-in générique
Répertoire de stockage des
Plug-ins sur le disque
Objets chargés en mémoire
 Parent (Interface)
 Enfants ( Plug-ins)
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
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
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
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
METROLAB : PRINCIPE DE L’ÉTALONNAGE
Architecture plug-in avec LabVIEW
Etalonnage en température :
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
METROLAB : PLUG-IN INSTRUMENTS
> Exemple : configuration d’un multimètre sur le banc de température
Architecture plug-in avec LabVIEW
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
METROLAB : PLUG-IN INSTRUMENTS
> Architecture :
Architecture plug-in avec LabVIEW
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
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
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
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
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
Par Mathilde VINCENT et Sylvain JOURDAN
mathilde.vincent@saphir.fr
sylvain.jourdan@saphir.fr
Stand NIDays numéro 28

Más contenido relacionado

La actualidad más candente

pleurésies purulentes non tuberculeuses
pleurésies purulentes non tuberculeusespleurésies purulentes non tuberculeuses
pleurésies purulentes non tuberculeusesDr. Kerfah Soumia
 
Pleuresie purulente
Pleuresie purulentePleuresie purulente
Pleuresie purulentebelaibzino
 
Effets biologiques des rayonnements ionisants
Effets biologiques des rayonnements ionisantsEffets biologiques des rayonnements ionisants
Effets biologiques des rayonnements ionisantsAmineChahid4
 
RECHERCHE MINIÈRE EN CÔTE D'IVOIRE
RECHERCHE MINIÈRE EN CÔTE D'IVOIRERECHERCHE MINIÈRE EN CÔTE D'IVOIRE
RECHERCHE MINIÈRE EN CÔTE D'IVOIRELS-Elearning
 
Retinopathie diabetique 5ème
Retinopathie diabetique 5èmeRetinopathie diabetique 5ème
Retinopathie diabetique 5èmeهدى رويس
 
MasterClass Intelligence Artificielle et Sécurité FIC 2019
MasterClass Intelligence Artificielle et Sécurité FIC 2019MasterClass Intelligence Artificielle et Sécurité FIC 2019
MasterClass Intelligence Artificielle et Sécurité FIC 2019OPcyberland
 
Zombie apocalypse powerpoint
Zombie apocalypse powerpointZombie apocalypse powerpoint
Zombie apocalypse powerpointAlys Kowalik
 
Breve storia della comunicazione
Breve storia della comunicazioneBreve storia della comunicazione
Breve storia della comunicazionevioletta31
 
Classification des vertébrés
Classification des vertébrésClassification des vertébrés
Classification des vertébrésJaefar El Kassmi
 
Le microscope.pptx
Le microscope.pptxLe microscope.pptx
Le microscope.pptxWajihBouadi
 
29-L'atélectasie(Dr.Chaibi)..pdf
29-L'atélectasie(Dr.Chaibi)..pdf29-L'atélectasie(Dr.Chaibi)..pdf
29-L'atélectasie(Dr.Chaibi)..pdfOnLine68
 
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdfOnLine68
 
Rapport de sortie des étudiants de l'université de zinder département de géog...
Rapport de sortie des étudiants de l'université de zinder département de géog...Rapport de sortie des étudiants de l'université de zinder département de géog...
Rapport de sortie des étudiants de l'université de zinder département de géog...mahamane manirou abdou
 
Contrats de propriété intellectuelle - HEC Entrepreneurs - Céline Bondard - ...
Contrats de propriété intellectuelle - HEC Entrepreneurs -  Céline Bondard - ...Contrats de propriété intellectuelle - HEC Entrepreneurs -  Céline Bondard - ...
Contrats de propriété intellectuelle - HEC Entrepreneurs - Céline Bondard - ...Céline Bondard
 
La Cigale et La Fourmi
La Cigale et La FourmiLa Cigale et La Fourmi
La Cigale et La Fourmiarturopedroza
 

La actualidad más candente (20)

pleurésies purulentes non tuberculeuses
pleurésies purulentes non tuberculeusespleurésies purulentes non tuberculeuses
pleurésies purulentes non tuberculeuses
 
Fibroscopie bronchique
Fibroscopie bronchique Fibroscopie bronchique
Fibroscopie bronchique
 
Pleuresie purulente
Pleuresie purulentePleuresie purulente
Pleuresie purulente
 
Effets biologiques des rayonnements ionisants
Effets biologiques des rayonnements ionisantsEffets biologiques des rayonnements ionisants
Effets biologiques des rayonnements ionisants
 
RECHERCHE MINIÈRE EN CÔTE D'IVOIRE
RECHERCHE MINIÈRE EN CÔTE D'IVOIRERECHERCHE MINIÈRE EN CÔTE D'IVOIRE
RECHERCHE MINIÈRE EN CÔTE D'IVOIRE
 
Retinopathie diabetique 5ème
Retinopathie diabetique 5èmeRetinopathie diabetique 5ème
Retinopathie diabetique 5ème
 
MasterClass Intelligence Artificielle et Sécurité FIC 2019
MasterClass Intelligence Artificielle et Sécurité FIC 2019MasterClass Intelligence Artificielle et Sécurité FIC 2019
MasterClass Intelligence Artificielle et Sécurité FIC 2019
 
Zombie apocalypse powerpoint
Zombie apocalypse powerpointZombie apocalypse powerpoint
Zombie apocalypse powerpoint
 
Cours Hypersensibilité de Type III harmacie 2017
Cours Hypersensibilité de Type III harmacie 2017Cours Hypersensibilité de Type III harmacie 2017
Cours Hypersensibilité de Type III harmacie 2017
 
Breve storia della comunicazione
Breve storia della comunicazioneBreve storia della comunicazione
Breve storia della comunicazione
 
Classification des vertébrés
Classification des vertébrésClassification des vertébrés
Classification des vertébrés
 
Le microscope.pptx
Le microscope.pptxLe microscope.pptx
Le microscope.pptx
 
29-L'atélectasie(Dr.Chaibi)..pdf
29-L'atélectasie(Dr.Chaibi)..pdf29-L'atélectasie(Dr.Chaibi)..pdf
29-L'atélectasie(Dr.Chaibi)..pdf
 
La miliaire tuberculeuse
La miliaire tuberculeuseLa miliaire tuberculeuse
La miliaire tuberculeuse
 
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf
28-Opacités rondes pulmonaires(Dr.Bougharnout)..pdf
 
Rapport de sortie des étudiants de l'université de zinder département de géog...
Rapport de sortie des étudiants de l'université de zinder département de géog...Rapport de sortie des étudiants de l'université de zinder département de géog...
Rapport de sortie des étudiants de l'université de zinder département de géog...
 
accident vasculaire cérébral (avec mp3)
accident vasculaire cérébral (avec mp3)accident vasculaire cérébral (avec mp3)
accident vasculaire cérébral (avec mp3)
 
Otites 147
Otites 147Otites 147
Otites 147
 
Contrats de propriété intellectuelle - HEC Entrepreneurs - Céline Bondard - ...
Contrats de propriété intellectuelle - HEC Entrepreneurs -  Céline Bondard - ...Contrats de propriété intellectuelle - HEC Entrepreneurs -  Céline Bondard - ...
Contrats de propriété intellectuelle - HEC Entrepreneurs - Céline Bondard - ...
 
La Cigale et La Fourmi
La Cigale et La FourmiLa Cigale et La Fourmi
La Cigale et La Fourmi
 

Destacado

Pictures of the Future Siemens Printemps 2012
Pictures of the Future Siemens Printemps 2012Pictures of the Future Siemens Printemps 2012
Pictures of the Future Siemens Printemps 2012SiemensFrance
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLuc Desruelle
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLuc Desruelle
 
Getting started with LabVIEW
Getting started with LabVIEWGetting started with LabVIEW
Getting started with LabVIEWYomna Eid
 
Wincc plant-intelligence
Wincc plant-intelligenceWincc plant-intelligence
Wincc plant-intelligenceAbdoul Karim
 
Certificate of completion
Certificate of completion Certificate of completion
Certificate of completion Bilal Jamjama
 
SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13Mohsen Sadok
 
Colaimo 140330083749-phpapp01
Colaimo 140330083749-phpapp01Colaimo 140330083749-phpapp01
Colaimo 140330083749-phpapp01Mss Med
 
Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Soufiane KALLIDA
 
Exemple de CV professionnel
Exemple de CV professionnelExemple de CV professionnel
Exemple de CV professionnelRAMZI EL IDRISSI
 
Presentation Android
Presentation AndroidPresentation Android
Presentation AndroidJean Collas
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebHarrathi Mohamed
 
Le télétravail chez Siemens au Luxembourg
Le télétravail chez Siemens au LuxembourgLe télétravail chez Siemens au Luxembourg
Le télétravail chez Siemens au LuxembourgNicole Turbé-Suetens
 
GPS Tracking mit EXCON Satellite Guard
GPS Tracking mit EXCON Satellite GuardGPS Tracking mit EXCON Satellite Guard
GPS Tracking mit EXCON Satellite GuardBastian Bischof
 
Cronograma joga à bola
Cronograma joga à bolaCronograma joga à bola
Cronograma joga à bolaBruno Ferreira
 
Herbier Pierre, Nicolas, Robin
Herbier Pierre, Nicolas, RobinHerbier Pierre, Nicolas, Robin
Herbier Pierre, Nicolas, Robinsediapos
 
Randonnée Et Gps
Randonnée Et GpsRandonnée Et Gps
Randonnée Et GpsMONA
 
GPS - Manual do usuário
GPS - Manual do usuárioGPS - Manual do usuário
GPS - Manual do usuáriosilvamtt2003
 

Destacado (20)

Pictures of the Future Siemens Printemps 2012
Pictures of the Future Siemens Printemps 2012Pictures of the Future Siemens Printemps 2012
Pictures of the Future Siemens Printemps 2012
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et Applications
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applications
 
Getting started with LabVIEW
Getting started with LabVIEWGetting started with LabVIEW
Getting started with LabVIEW
 
Wincc plant-intelligence
Wincc plant-intelligenceWincc plant-intelligence
Wincc plant-intelligence
 
Certificate of completion
Certificate of completion Certificate of completion
Certificate of completion
 
SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13SCADA Labview PLC TIA portal v13
SCADA Labview PLC TIA portal v13
 
Rapport cimat
Rapport cimatRapport cimat
Rapport cimat
 
Colaimo 140330083749-phpapp01
Colaimo 140330083749-phpapp01Colaimo 140330083749-phpapp01
Colaimo 140330083749-phpapp01
 
Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016Rapport de projet de fin d'études - SIEMENS 2016
Rapport de projet de fin d'études - SIEMENS 2016
 
Exemple de CV professionnel
Exemple de CV professionnelExemple de CV professionnel
Exemple de CV professionnel
 
Presentation Android
Presentation AndroidPresentation Android
Presentation Android
 
Decodage d'adresse
Decodage d'adresseDecodage d'adresse
Decodage d'adresse
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
Le télétravail chez Siemens au Luxembourg
Le télétravail chez Siemens au LuxembourgLe télétravail chez Siemens au Luxembourg
Le télétravail chez Siemens au Luxembourg
 
GPS Tracking mit EXCON Satellite Guard
GPS Tracking mit EXCON Satellite GuardGPS Tracking mit EXCON Satellite Guard
GPS Tracking mit EXCON Satellite Guard
 
Cronograma joga à bola
Cronograma joga à bolaCronograma joga à bola
Cronograma joga à bola
 
Herbier Pierre, Nicolas, Robin
Herbier Pierre, Nicolas, RobinHerbier Pierre, Nicolas, Robin
Herbier Pierre, Nicolas, Robin
 
Randonnée Et Gps
Randonnée Et GpsRandonnée Et Gps
Randonnée Et Gps
 
GPS - Manual do usuário
GPS - Manual do usuárioGPS - Manual do usuário
GPS - Manual do usuário
 

Similar a Architecture Plug-in en LabVIEW : de la conception à la réalisation

Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
20180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.320180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.3Benoit Fillon
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continueLeClubQualiteLogicielle
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performancepkernevez
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsNicolas Mussat
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...Adrien Clerbois
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelAgile Montréal
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Introduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIIntroduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIslemoslideshare
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 

Similar a Architecture Plug-in en LabVIEW : de la conception à la réalisation (20)

Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Perf university
Perf universityPerf university
Perf university
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
20180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.320180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.3
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performance
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Introduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIIntroduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NI
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
RFID
RFIDRFID
RFID
 

Más de SAPHIR - Signal Physique & Instrumentation (6)

Mesures vibratoires et acoustiques appliquées au contrôle qualité en production
Mesures vibratoires et acoustiques appliquées au contrôle qualité en productionMesures vibratoires et acoustiques appliquées au contrôle qualité en production
Mesures vibratoires et acoustiques appliquées au contrôle qualité en production
 
Vi analyzer gagnez en qualité en révisant vos codes LabVIEW régulièrement
Vi analyzer   gagnez en qualité en révisant vos codes LabVIEW régulièrementVi analyzer   gagnez en qualité en révisant vos codes LabVIEW régulièrement
Vi analyzer gagnez en qualité en révisant vos codes LabVIEW régulièrement
 
Coder plus vite avec LabVIEW
Coder plus vite avec LabVIEWCoder plus vite avec LabVIEW
Coder plus vite avec LabVIEW
 
Test materiel ni c rio-9068
Test materiel   ni c rio-9068Test materiel   ni c rio-9068
Test materiel ni c rio-9068
 
Démystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGADémystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGA
 
Saphir - Exemples de réalisations
Saphir - Exemples de réalisationsSaphir - Exemples de réalisations
Saphir - Exemples de réalisations
 

Architecture Plug-in en LabVIEW : de la conception à la réalisation

  • 1. 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
  • 2. 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
  • 3. 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é
  • 4. 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
  • 5. 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…
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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és Identifiant Numéro de série Dernière valeur lue Méthodes Initialiser Ecrire Lire Libérer Objet 1 • AG34401 • B254255 • 1.4 V Objet 2 • DPG 10 • DH1389B • 1.1 bar Objet 3 • CPC 6000 • PN001MENS • 1088 Pa
  • 10. 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
  • 11. 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
  • 12. EXEMPLE D’HÉRITAGE Architecture plug-ins avec LabVIEW Ancêtres Descendants Instrument Multimètre AG 34401 AG 34970 Multiplexeur Keithley7002 AG 3499B
  • 13. 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
  • 14. 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
  • 15. CHARGEMENT DYNAMIQUE DES PLUG-INS Architecture plug-in avec LabVIEW Plug-in générique Répertoire de stockage des Plug-ins sur le disque Objets chargés en mémoire  Parent (Interface)  Enfants ( Plug-ins)
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. METROLAB : PRINCIPE DE L’ÉTALONNAGE Architecture plug-in avec LabVIEW Etalonnage en température :
  • 21. 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
  • 22. METROLAB : PLUG-IN INSTRUMENTS > Exemple : configuration d’un multimètre sur le banc de température Architecture plug-in avec LabVIEW
  • 23. 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
  • 24. METROLAB : PLUG-IN INSTRUMENTS > Architecture : Architecture plug-in avec LabVIEW
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Par Mathilde VINCENT et Sylvain JOURDAN mathilde.vincent@saphir.fr sylvain.jourdan@saphir.fr Stand NIDays numéro 28

Notas del editor

  1. Présentation Mathilde -> CLA Sylvain -> CLD Présenter SAPHIR…
  2. Aperçu des compétences de SAPHIR
  3. Architecture plugin => extension d’un noyau de base Qu’est-ce qu’une architecture plug-in ? (exemples concrets : ex : google chrome) Dans quels cas mettre en place une architecture plug-in ? Pré-requis : rappels (OOP, héritage, dispatch dynamique) Qu’est-ce qu’une packed library ? Comment créer un plug-in ? Hardware abstraction Layer (HAL) Exemple concret : Métrolab Installeur : InnoDB Retour d’expérience
  4. Une problématique sui revient souvent : le gestion d’instruments Dans la suite, nous prendrons cet exemple, le but est de créer une architecture plug’in pour les instruments afin d’avoir une couche d’abstraction matérielle Application stable qui doit évoluer (limitation de l’impact de modifications) Architecture permettant de définir une interface figée avec certains modules (permet de cadrer le développement) Installation personnalisée selon les utilisateurs, les bancs, … Attention : le choix doit être justifié ! Ouverture du développement de modules à d’autres développeurs : + Protection du noyau de l’application Qualité : factorisation du code  développé et testé une seule fois
  5. Demander : Qui développe en objet ou connait la POO en LV ?
  6. Rajout de propriétés et méthodes aux classes filles
  7. Redéfinition de méthodes
  8. Wahou!!!! : 3 fils différents buildé dans le même tableau Chargement dynamique des classes filles Contrainte de redéfinition : Bien pour cadrer le développement des plugins
  9. Basé sur une programmation orientée objet avec héritage : Différentes façons d’implémenter des plugins : choix de l’OOP
  10. Les VI publics d’une librairie compilée en packed library peuvent être appelés depuis un code source LabVIEW TODO LV2014 (Attention Dépendances classe mère en LV < 2014 => Obligation de builder la classe mère en LVLIBP)
  11. Attention : une packed library est compilée pour une version de LV Hal : Separate test application from the instrument hardware
  12. Principe d’un étalonnage : 1 sonde de température de référence (étalon) et N sondes à étalonner Toutes les sondes sont trempées dans un bain ou un four, avec un générateur de température + régulateur Le logiciel pilote des paliers de température et effectue des mesures via un multimètre et un multiplexeur sur l’ensemble des sondes. Le but étant de qualifier chacune des sondes à étalonner par rapport à la sonde étalon et de « classifier » ces sondes Idem en pression avec soit un étalonnage manuelle (balance avec des masses) soit un étalonnage automatique (le logiciel pilote un générateur de presssion) Expliquer étalonnage : Exemple en température : Profil de température (« paliers »), et à chaque palier de température comparaison par rapport à un sonde étalon Calculs de caractéristiques pour chaque sonde, classe de la sonde, incertitude Interface de mesure du banc de température + image rapport (données simulées) COFRAC : Comité Français d’Accréditation Le Comité français d’accréditation (Cofrac) est l'unique instance chargée de délivrer les accréditations aux organismes intervenant dans l'évaluation de la conformité en France. Les accréditations sont gérées par des sections spécialisées : La section "Laboratoires" assure l'accréditation pour les étalonnages en métrologie Gestion de processus d’étalonnage : - Traçabilité - Calculs d’incertitude - Répétabilité - Contraintes COFRAC
  13. Facilité pour ajouter/modifier/supprimer des instruments : évolutivité
  14. Interface : fait partie du noyau, qui est buildé en exe Plugins : chargé dynamiquement au moment de l’exécution HAL : couche d’abstraction matérielle
  15. Nombreux points communs entre les différents bancs
  16. Possibilité d’installer 1 ou plusieurs bancs : typiquement 1 banc sur chaque PC relié à une installation (température, pression manuelle ou pression automatique) + 1 PC spare avec tous les bancs Transition : Contrainte : fournir un installeur adapté à l’architecture plugin Pas facile avec l’installeur de base LabVIEW  Inno Setup
  17. Inno Setup : installeur plus évolué que celui proposé par National Instruments
  18. Attention : architecture plug’in à mettre en place seulement si le besoin est réel car surcout engendré par la mise en place d’une architecture plug-in (architecture complexe) Gain de développement pour toutes les fonctionnalités communes entre les plug-ins Attention au surcout engendré par la mise en place d’une Architecture plug-in : bien évaluer si ce besoin est nécessaire par rapport au temps gagné par le non développement de fonctionnalités communes Architecture Développement Debug 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 LV permettant d’appeler la classe LV plug-in lors d’un appel en sources et la packed library lors d’un appel en exe Architecture très structurée : facilité pour le travail en équipe, pour la maintenabilité, l’évolutivité