darwin labview evolution des donnees

Download Darwin labview evolution des donnees

Post on 05-Aug-2016

236 views

Category:

Documents

13 download

Embed Size (px)

DESCRIPTION

Bonjour à tous, je livre ma présentation du LUGE 3.0 « Darwin appliqué à LabVIEW : l’évolution de la gestion des données » ou « Evoluer pour s’adapter » PS : Il existe une version Anglaise plus compléte, que vous pouvez télécharger Darwin applied to LabVIEW V2.2.pdf. Darwin applied to LabVIEW: The evolution of the data management Elle traite de l’évolution du concept « mémorisation » du flux de données, avec Contrôle vers indicateur -Locale -Globale -FGV -AE –SEQ -DVR -OOP –SM –QDMH.

TRANSCRIPT

Gestion des donnes avances sous LabVIEW architect Desruelle Luc

www.mesulog.frDarwin appliqu LabVIEW : lvolution de la gestion des donnes Luc DESRUELLE Certifi LabVIEW Architect LV ChampionLa loi du plus fort applique au concept mmorisation du flux de donnes : contrle vers indicateur - Locale - Globale - FGV - AE SEQ - DVR - OOP SM - QDMH

1La socit MESULOG en brefActivit : Dveloppement logiciel test et mesureComptences : LabVIEW (Windows, RT, PDA, DSC, FPGA), TestStand VeriStandLocalisation : Grenoble (Moirans, 38)Partenaire National Instruments (2001)Dveloppeurs certifis LabVIEW et TestStand2016Programmation Avance sous LabVIEW 2

2

La socit MESULOG en brefwww.mesulog.frRalisations (article utilisateur)

Prsentations techniquesLabVIEWTestStand VeriStand

2016Programmation Avance sous LabVIEW 3

RalisationsSocit -> Prsentations techniquesLe prsentateurProgrammation Avance sous LabVIEW 4

Community blogBlank diagram syndromeDevelopment rulesAnimated gif to avoid codeTransparent WindowsLabVIEW ProjectOOPModbus.

Auteur Livre LabVIEW : programmation et applications3ime dition, Dunod 05/2015, Prface de Jeff Kodosky Lien internet du livreChapitres 1 et 2 : Prise en main de lEnvironnement de dveloppement, flux de donnes, code G avec des exemples simplesChapitre 3 : Programmation avance avec des techniques et architectures permettant au code dtre maintenable, volutif, document et performant.Chapitres 4, 5 et 6: Acquisition, analyse et prsentation des donnes.

Le prsentateur2016Programmation Avance sous LabVIEW 5

Toujours le mme constatErreurs de dbutant (LabVIEW Rookie) : 1 fois OK

Lexagration empche lvolutionProgrammation Avance sous LabVIEW 6

LabVIEW Spaghetti

Code LabVIEW le plus clbreVotre avis2016Programmation Avance sous LabVIEW 7

Quelles sont les erreurs (programmation LabVIEW) ?Erreur des Spaghettis sous LabVIEWStyle, criture du codePas de styleDocumentationTechnique, Gestion des donnesTrop de locale GlobaleFlux de donnesArchitecture, Structure application Absence modle de conceptionPas gestion derreur, Pas gestion arrt du logicielGestion ProjetVersion, SCC, bug, tcheTest, analyse2016Programmation Avance sous LabVIEW 8

Nous naborderons pasNous naborderons pas la gestion projetPrsentation LUGE 2013 et NIDays 2014 : Les outils qui nous veulent du bien Plus de temps pour dvelopper en LabVIEW

Nous naborderons pas le styleAvoir du style avec LabVIEW

2016Programmation Avance sous LabVIEW 9

Nous aborderonsLes diffrentes techniques de gestion des donnesMmoriser une donneRutiliser une donne dj produiteQuand, comment, pourquoi utiliser certaines techniques ?

Mais pas les techniques dchange de donnes :Entre processus;Entre boucles;Entre applications.FIFO, notifier, Variable partage, TCP, UDP, ActiveX, .Net, Network streams, DMA, Web service

2016Programmation Avance sous LabVIEW 10Sommaire : Darwin appliqu LabVIEW O trouver de laide?Histoire de la prsentationLEvolution : Mmorisation des DonnesLEvolution : Structures ApplicationLEvolution : Programmation Oriente Objet (OOP)2016Programmation Avance sous LabVIEW 1111I] O trouver de laide ?2016Programmation Avance sous LabVIEW 12

O trouver de laide ?La communaut travaille pour vous2 Forums National Instruments Francophonehttp://forums.ni.com/t5/Discussions-au-sujet-de-NI/bd-p/4171http://forums.ni.com/t5/Discussions-au-sujet-des-autres/bd-p/4170

1 communaut Francophonehttps://decibel.ni.com/content/community/regional/france/labviewRencontre dveloppeurs : cf LUGE

Mais aussi lensemble des forums et communauts de NILabVIEW Development Best Practices Large Applications : ni.com/largeapps

2016Programmation Avance sous LabVIEW 13II] Histoire de la prsentation2016Programmation Avance sous LabVIEW 14

Histoire de DarwinCharles Robert Darwin (1809 1882)Tous les tres vivants ont un seul anctre communLes tresvivants ont volu et se sont adaptsProcessus connu sous le nom de slection naturelle, thorie de lvolution.2016Programmation Avance sous LabVIEW 15

Avec Humour - jaime le parallle entretre vivant qui sadapte (pour survire)La gestion des donnes sous LabVIEW qui sadapte (pour viter les problmes)Evoluer pour sadapter

Darwin applique LabVIEW2016Programmation Avance sous LabVIEW 16

DarwinLabVIEWUn seul anctre communContrle (le)Tous les tres vivants Toutes les techniques de gestion des donnesSadapter pour SurvivreSadapter pour Eviter les bugs, ajouter des fonctionnalitsII] Evolution famille donnesIl tait une fois. Une donne2016Programmation Avance sous LabVIEW 17

Quizz N1Pour transmettre la donne Data In, faut-il mieux connecter le contrle sur :La variable locale de Data OutLe terminal de lindicateur Data OutLe nud de proprit implicite value de Data OutLe nud de proprit par rfrence value de Data Out

2016Programmation Avance sous LabVIEW 18

Expliquer la rponse du Quizz N12016Programmation Avance sous LabVIEW 19

Expliquer la rponse du Quizz N1DmonstrationProgrammation Avance sous LabVIEW 20

For 10000 iterationsTime (ms)Indicator100Local100Global100Property node (implicit)4000Property node (explicit)4000Expliquer la rponse du Quizz N1Explication simplifieDfinition Les nuds de proprit : Se synchronisent sur le thread interface utilisateur. Seul systme dexcution pas multithread (Bloquant)Forcent redessiner la face-avant chaque appel (Lenteur)Forcent la face-avant tre charge en mmoire (les commandes et indicateurs auront plusieurs copies de donnes supplmentaires diagramme et face-avant)2016Programmation Avance sous LabVIEW 21Rsultat Quizz N1Nud de propritCopies donneQue Thread UILenteur, bloquant

Force IHM en mmoireRace Condition2016Programmation Avance sous LabVIEW 22LocaleCopies donneTout les Threads

Race conditionV.S.

Rponse Quizz N1Lindicateur Data OutLa variable locale (copie buffer)Le nud de proprit implicite (thread UI + copie buffer)Le nud de proprit par rfrence (rfrence)2016Programmation Avance sous LabVIEW 23

Eviter 3. et 4. juste pour valueQuizz N2Pour transmettre la donne, faut-il mieux connecter le contrle Data In sur :La variable locale de Data OutLa globale Data

2016Programmation Avance sous LabVIEW 24

Rsultat Quizz N22016Programmation Avance sous LabVIEW 25Match Nul(presque)A viterEviter les variables Locale Globale - nud de propritCopies des donnes (attention Grosse Structure)LenteursPas de protection contre Race ConditionsPas de gestion derreur

1 fois (OK) mais Lexagration nuit lvolution

2016Programmation Avance sous LabVIEW 26

A viterEviter les variables Locale Globale - nud de proprit

Comment ????

2016Programmation Avance sous LabVIEW 27

FGV : Functional Global Variable ou LV2Registre dcalage non initialis, dun vi non rentrantMmorise une valeur sur un Set (Write)Retourne la valeur sur un Get (Read)

FGV : Functional Global Variable2016Programmation Avance sous LabVIEW 28Quizz N3Vous connaissez tous?Pourquoi le nom FGV ou variable LV2?

2016Programmation Avance sous LabVIEW 29

Exemple FGVExemple FGV = Remplace la globale2016Programmation Avance sous LabVIEW 30

2 tats :> Set = Ecriture> Get = Lecture

MmorisationRace conditionSituation de comptition ?????????????2016Programmation Avance sous LabVIEW 31

Rappel bug Race conditionSituation de comptitionBug Accs concurrent de 2 codes la mme variable.Valeur instable de la variable

2016Programmation Avance sous LabVIEW 32

Pas X=1 et Y=1Data Out = ??X=0 et Y=0

Quizz N4La FGV vite-t-elle le bug des accs concurrents Race Conditions? 2016Programmation Avance sous LabVIEW 33Data Out = ??X = ?Y= ?Data InX = 0Y= 0Rsultat Quizz N4Non

Dmonstration code LabVIEW Code tlchargeable sur le site MESULOG >> Socit >> Prsentations Techniqueswww.mesulog.fr/presentations_techniques

2016Programmation Avance sous LabVIEW 34Utilisation recommande de la FGV1 critureN Lectures 2016Programmation Avance sous LabVIEW 35

Race conditionComment viter les Situations de comptition ?????????????N crituresN Lectures

2016Programmation Avance sous LabVIEW 36

AE : Action EngineEvolution de la FGV en ajoutant des actions, Principe de l'encapsulationLa donne reste dans la fonction logicielle = protection

AE : Action Engine2016Programmation Avance sous LabVIEW 37Exemple AEExemple AEFGV + ActionsCode autonome rutilisable Gestion erreur2016Programmation Avance sous LabVIEW 38

Code de lactionListe des actionsMmorisation

Quizz N5LAE vite-t-elle le bug des accs concurrents Race Conditions?

2016Programmation Avance sous LabVIEW 39Data Out = ??X = ?Y= ?Data InX = 0Y= 0Rsultat Quizz N5Oui, via lencapsulation : rassembler les donnes et les mthodes au sein d'une mme structure

Dmonstration code LabVIEW Code tlchargeable sur le site MESULOG >> Socit >> Prsentations Techniqueswww.mesulog.fr/presentations_techniques

2016Programmation Avance sous LabVIEW 40

DVR : Data Value ReferenceManipulation de la rfrence de la donne mais pas la donnes : pas de copie, pointeur zone mmoire2016Programmation Avance sous LabVIEW 41

Data CopyData CopyDataProtection contre les accs concurrent

ReferenceReferenceReferenceQuizz N5La DVR (Data Value Reference) permet-elle? :Dviter les copies de donnes (grosse structure)De protger contre les accs concurrents Race ConditionsDe grer les erreurs2016Programmation Avance sous LabVIEW 42Rsultat Quizz N5Rponse A, B et C : Oui

Dmonstration code LabVIEW Code tlchargeable sur le site MESULOG >> Socit >> Prsentations Techniqueswww.mesulog.fr/presentations_techniques

2016Programmation Avance sous LabVIEW 43Synthse volution donnes2