darwin appliqué à labview : l’évolution de la gestion des données

80
www.mesulog.fr Darwin appliqué à LabVIEW : l’évolution de la gestion des données Luc DESRUELLE Certifié LabVIEW Architect - MESULOG Evoluer pour s’adapter La loi du plus fort appliquée au concept « mémorisation » du flux de données : contrôle vers indicateur - Locale - Globale - FGV - AE – SEQ - DVR - OOP – SM - QDMH

Upload: luc-desruelle

Post on 11-Jan-2017

391 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

www.mesulog.fr

Darwin appliqué à LabVIEW :

l’évolution de la gestion des données

Luc DESRUELLE – Certifié LabVIEW Architect - MESULOG

Evoluer pour s’adapterLa loi du plus fort appliquée au concept « mémorisation » du flux de données : contrôle vers indicateur - Locale - Globale - FGV - AE – SEQ - DVR - OOP – SM - QDMH

Page 2: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Avant de commencer

Faire évoluer la présentation en fonction de vous

Vous pouvez m’interrompre

Détailler en fonction de vos demandes

Mes excuses pour les

mots anglais = technique LV

Octobre 2013 Programmation Avancée sous LabVIEW 2

Page 3: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

La société MESULOG en bref

Activité : Développement logiciel test et mesure

Compétences : LabVIEW (Windows, RT, PDA, DSC, FPGA),

TestStand

VeriStand

Localisation : Grenoble (Moirans, 38)

Partenaire National Instruments (2001)

Développeurs certifiés LabVIEW et TestStand

Juin 2014 Programmation Avancée sous LabVIEW Partie II 3

Page 4: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

La société MESULOG en bref

www.mesulog.fr

Réalisations (article utilisateur)

Présentations techniques

LabVIEW

TestStand

VeriStand

Octobre 2013 Programmation Avancée sous LabVIEW 4

Réalisations

Société -> Présentations techniques

Page 5: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

La société MESULOG en bref

Ils nous ont fait confiance :

ALSTOM Grid

AREVA NP

CEA (Commissariat à l'Énergie Atomique)

CETIAT (Centre Technique des Industries Aérauliques et Thermiques)

CNES (Centre National d'Études Spatiales)

CNRS (Centre National de la Recherche Scientifique)

EDF

HONEYWELL Security

LNE (Laboratoire National d'Essais)

ONERA

PECHINEY

RADIALL

RENAULT

STMicroelectronics

THALES Alenia Space

THALES LCD...

Octobre 2013 Programmation Avancée sous LabVIEW 5

Page 6: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Luc DESRUELLE

Architecte Logiciel

NI Forums Community

CLA

Le présentateur

Octobre 2013 Programmation Avancée sous LabVIEW 6

Community blogue https://decibel.ni.com/content/blogs/Luc_Desruelle• Gif animé pour éviter du code• Fenêtre pas rectangulaire• Gestion IHM• Projet LabVIEW• OOP• Modbus• ….

Page 7: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Co-auteur Livre « LabVIEW : programmation et applications »

3iéme Édition, Dunod 05/2015

Lien internet du livre

Auteurs : F. COTTET + M. PINARD + L. DESRUELLE Chapitres 1 et 2 : prise en main de l’outil avec des exemples simples

Chapitre 3 : programmation avancée avec des techniques et architectures

permettant au code d’être maintenable, évolutif, documenté et performant.

Chapitres 4, 5 et 6 : acquisition, analyse et présentation des données.

Le présentateur

Octobre 2013 Programmation Avancée sous LabVIEW 7

Page 8: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

« Toujours » le constat

Certaines « erreurs » sont acceptables… si « rares »

Octobre 2013 Programmation Avancée sous LabVIEW 8

Page 9: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Le code LabVIEW le plus célèbre

Octobre 2013 Programmation Avancée sous LabVIEW 9

Spaghetti à la LabVIEW

Page 10: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Votre avis

Octobre 2013 Programmation Avancée sous LabVIEW 10

Quelles sont les erreurs (programmation LabVIEW) ?

Page 11: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Erreur des Spaghettis sous « LabVIEW »

1. Style, écriture du code

Pas de style!

Documentation

2. Technique, Gestion des données

Trop de locale – Globale

Flux de données

3. Architecture, Structure application (Framework) :

Absence modèle de conception

Pas gestion d’erreur, Gestion arrêt du logiciel?

4. Gestion Projet

Version, SCC, bug, tâche

Test, analyse

Octobre 2013 Programmation Avancée sous LabVIEW 11

Page 12: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Nous n’aborderons pas

Nous n’aborderons pas la gestion « projet »:

Présentation LUGE 2013 et NIDays 2014 :

Les outils qui nous veulent du bien Plus de temps pour développer en LabVIEW

Nous n’aborderons pas la gestion « style »

Présentation LUGE 2016 et NIDays 2017:

Avoir du style avec LabVIEW

Octobre 2013 Programmation Avancée sous LabVIEW 12

Page 13: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Nous aborderons

Les différentes techniques de gestion des données

Mémoriser une donnée

Réutiliser une donnée déjà produite

Quand, comment, pourquoi utiliser certaines techniques ?Chapitre 3 du livre LabVIEW….

Pas les techniques d’échange de données :

Entre processus;

Entre boucles;

Entre applications.

FIFO, notifier, Variable partagée, TCP, UDP, ActiveX, .Net,

Network streams, DMA, Web service…Chapitre 6 du livre LabVIEW….

Octobre 2013 Programmation Avancée sous LabVIEW 13

Page 14: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Sommaire : Darwin appliqué à LabVIEW

I. Où trouver de l’aide?

II. Histoire de la présentation

III. L’Evolution : Mémorisation des Données

IV. L’Evolution : Structures Application

V. L’Evolution : Programmation Orientée Objet (OOP)

Octobre 2013 Programmation Avancée sous LabVIEW 14

Page 15: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

I] Où trouver de l’aide ?

Octobre 2013 Programmation Avancée sous LabVIEW 15

Page 16: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Où trouver de l’aide ?

La communauté travaille pour vous

2 Forums National Instruments Francophone http://forums.ni.com/t5/Discussions-au-sujet-de-NI/bd-p/4171

http://forums.ni.com/t5/Discussions-au-sujet-des-autres/bd-p/4170

1 communauté Francophone https://decibel.ni.com/content/community/regional/france/labview

Rencontre développeurs : cf LUGE

Mais aussi… l’ensemble des forums et communautés de NI LabVIEW Development Best Practices

Large Applications : ni.com/largeapps

Octobre 2013 Programmation Avancée sous LabVIEW 16

Page 18: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

II] Histoire de la présentation

Octobre 2013 Programmation Avancée sous LabVIEW 18

Page 19: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Histoire de Darwin

Charles Robert Darwin ( 1809 – 1882)

Hypothèse : tous les êtres vivants ont un seul ancêtre

commun

Les « êtres vivants » ont évolué et se sont adaptés

Processus connu sous le nom de « sélection naturelle »

(la loi du plus fort) ou théorie de l’évolution.

Octobre 2013 Programmation Avancée sous LabVIEW 19

Page 20: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Humour

« Personnellement j’aime » le // entre

« être vivant » qui s’adapte (pour survire)

La gestion des données sous LabVIEW qui s’adapte (pour

éviter « les problèmes »)

Evoluer pour s’adapter aux besoins

Darwin appliquée à LabVIEW

Octobre 2013 Programmation Avancée sous LabVIEW 20

Page 21: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Comment et pourquoi la Mémorisation des données

a-t-elle évoluée?

Darwin appliquée à LabVIEW

Octobre 2013 Programmation Avancée sous LabVIEW 21

Darwin LabVIEW

Un seul ancêtre commun Contrôle (le)

à tous les êtres vivants À toutes les techniques de

mémorisation des Données

S’adapter pour Survivre S’adapter pour Eviter les bugs

La loi du plus fort Ajouter des fonctionnalités

Page 22: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Histoire

Il était une fois…. Une donnée

Octobre 2013 Programmation Avancée sous LabVIEW 22

Page 23: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

II] Evolution famille « données »

Octobre 2013 Programmation Avancée sous LabVIEW 23

Page 24: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°1

Pour transmettre la donnée « Data In », faut-il mieux

connecter le contrôle sur :

A. La variable locale de « Data Out »

B. Le terminal de l’indicateur « Data Out »

C. Le nœud de propriété implicite « value » de « Data Out »

D. Le nœud de propriété par référence « value » de « Data Out »

Octobre 2013 Programmation Avancée sous LabVIEW 24

Page 25: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Expliquer la réponse du Quizz N°1

L’explication de la réponse n’est pas si simple

Comme démontrer 𝑥 × 0 = 0… Parce que

Avant de donner la véritable réponse :

Vous faire sentir (la réponse) par une mesure

Vous pouvez me croire… ou pas

Octobre 2013 Programmation Avancée sous LabVIEW 25

Page 26: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Expliquer la réponse du Quizz N°1

Démonstration

Octobre 2013 Programmation Avancée sous LabVIEW 26

Page 27: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Expliquer la réponse du Quizz N°1

Explication « simplifiée »

Définition Les nœuds de propriété :

Se synchronisent sur le thread « interface utilisateur ». Seul

système d’exécution pas multithread (Bloquant)

Forcent à redessiner la face-avant à chaque appel (Lenteur)

Forcent la face-avant à être chargée en mémoire (les

commandes et indicateurs auront plusieurs copies de

données supplémentaires – diagramme et face-avant)

Octobre 2013 Programmation Avancée sous LabVIEW 27

Page 28: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°1

Nœud de propriété

Copies donnée

Que Thread UI

Lenteur, bloquant

Force IHM en mémoire

Race Condition

Octobre 2013 Programmation Avancée sous LabVIEW 28

Locale

Copies donnée

Tout les Threads

Race condition

V.S.

Page 29: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Réponse Quizz N°1

1. L’indicateur « Data Out »

2. La variable locale (copie buffer)

3. Le nœud de propriété implicite (thread UI + copie buffer)

4. Le nœud de propriété par référence (référence)

Octobre 2013 Programmation Avancée sous LabVIEW 29

Eviter 3. et 4. juste pour « value »

Page 30: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°2

Pour transmettre la donnée, faut-il mieux connecter le

contrôle « Data In » sur :

A. La variable locale de « Data Out »

B. La globale « Data »

Octobre 2013 Programmation Avancée sous LabVIEW 30

Page 31: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°2

Octobre 2013 Programmation Avancée sous LabVIEW 31

Match Nul(presque)

Page 32: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

A éviter

Eviter les variables Locale – Globale - nœud de propriété

Copies des données (attention « Grosse Structure »)

Lenteurs

Pas de protection contre « Race Conditions »

Pas de gestion d’erreur

1 fois (OK) mais L’exagération nuit à l’évolution

Octobre 2013 Programmation Avancée sous LabVIEW 32

Page 33: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

A éviter

Eviter les variables Locale – Globale - nœud de propriété

Comment ????

Octobre 2013 Programmation Avancée sous LabVIEW 33

Page 34: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

FGV : Functional Global Variable ou LV2

Registre à décalage non initialisé, d’un vi non réentrant

Mémorise une valeur sur un Set (Write)

Retourne la valeur sur un Get (Read)

FGV : Functional Global Variable

Octobre 2013 Programmation Avancée sous LabVIEW 34

Page 35: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°3

Vous connaissez tous?

Pourquoi le nom FGV ou variable LV2?

Octobre 2013 Programmation Avancée sous LabVIEW 35

Page 36: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Exemple FGV

Exemple FGV = Remplace la globale

Octobre 2013 Programmation Avancée sous LabVIEW 36

2 états :

> Set = Ecriture

> Get = Lecture

Mémorisation

Page 37: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Race condition

Situation de compétition ?????????????

Octobre 2013 Programmation Avancée sous LabVIEW 37

Page 38: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Rappel « bug » Race condition

Situation de compétition

« Bug » Accès « concurrent » de 2 codes à la même

variable.

Valeur « instable » de la variable

Octobre 2013 Programmation Avancée sous LabVIEW 38

Pas X=1 et Y=1

Data Out = ??

X=0 et

Y=0

Page 39: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°4

La FGV évite-t-elle « le bug » des accès concurrents –

Race Conditions?

Octobre 2013 Programmation Avancée sous LabVIEW 39

Data Out = ??

X = ?

Y= ?

Data In

X = 0

Y= 0

Page 40: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°4

Non

Démonstration code LabVIEW

Code téléchargeable sur le site MESULOG >> Société >> Présentations Techniques

www.mesulog.fr/presentations_techniques

Octobre 2013 Programmation Avancée sous LabVIEW 40

Page 41: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Utilisation recommandée de la FGV

1 écriture

N Lectures

Octobre 2013 Programmation Avancée sous LabVIEW 41

Page 42: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Race condition

Comment éviter les Situations de compétition

?????????????

N écritures

N Lectures

Octobre 2013 Programmation Avancée sous LabVIEW 42

Page 43: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

AE : Action Engine

Evolution de la FGV en ajoutant des actions,

Principe de l'encapsulation

La donnée reste dans la fonction logicielle = protection

AE : Action Engine

Octobre 2013 Programmation Avancée sous LabVIEW 43

Page 44: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Exemple AE

Exemple AE

FGV + Actions

Code autonome – réutilisable – Gestion erreur

Octobre 2013 Programmation Avancée sous LabVIEW 44

Code de

l’action

Liste des

actionsMémorisation

Page 45: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°5

L’AE évite-t-elle « le bug » des accès concurrents – Race

Conditions?

Octobre 2013 Programmation Avancée sous LabVIEW 45

Data Out = ??

X = ?

Y= ?Data In

X = 0

Y= 0

Page 46: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°5

Oui, via l’encapsulation : rassembler les données et les

méthodes au sein d'une même structure

Démonstration code LabVIEW

Code téléchargeable sur le site MESULOG >> Société >> Présentations Techniques

www.mesulog.fr/presentations_techniques

Octobre 2013 Programmation Avancée sous LabVIEW 46

Page 47: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

DVR : Data Value Reference

Manipulation de la référence de la donnée mais pas la

données : pas de copie, pointeur zone mémoire

Octobre 2013 Programmation Avancée sous LabVIEW 47

Data Copy

Data Copy

Data

Protection contre les

accès concurrent

Reference

Reference

Reference

Page 48: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°5

La DVR (Data Value Reference) permet-elle? :

A. D’éviter les copies de données (« grosse structure »)

B. De protéger contre les accès concurrents – Race Conditions

C. De gérer les erreurs

Octobre 2013 Programmation Avancée sous LabVIEW 48

Page 49: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°5

Réponse A, B et C : Oui

Démonstration code LabVIEW

Code téléchargeable sur le site MESULOG >> Société >> Présentations Techniques

www.mesulog.fr/presentations_techniques

Octobre 2013 Programmation Avancée sous LabVIEW 49

Page 50: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Synthèse évolution « données »

Octobre 2013 Programmation Avancée sous LabVIEW 50

Données

1 fois (OK) mais L’exagération nuit à l’évolution

S’adapter à un besoin• N écritures• Code autonome• Réutilisable• Gestion erreur personnalisée

Page 51: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Synthèse évolution « données »

Octobre 2013 Programmation Avancée sous LabVIEW 51

Fonctionnalités - Performance

Simplicité d’utilisation

Page 52: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Évolution structure application

Octobre 2013 Programmation Avancée sous LabVIEW 52

Toutes les techniques permettent de gérer des données

Pas des applications

Page 53: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

IV] Famille « structure application »

Octobre 2013 Programmation Avancée sous LabVIEW 53

Evolution techniques pour gérer les données vers une

structure pour gérer les applications

Framework

Données

Page 54: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Rappel l’Action Engine (AE) :

Réalise une action sur la données (exemple X+1 ou Y+1)

Puis fin

Jusqu’au prochain appel de la fonction logicielle

De l’action à l’état

Octobre 2013 Programmation Avancée sous LabVIEW 54

Page 55: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Modèle « Machine à états », basé sur diagramme états-

transitions:

Etats = actions à réaliser

Chaque section de code détermine la transition suivante

Découpage clair des tâches à effectuer

Ne « sort » du code que si fin du programme principal

Pour une application : Machine à états

Octobre 2013 Programmation Avancée sous LabVIEW 55

Page 56: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Machine à états

Tout le monde connait cette technique avec LabVIEW?

Octobre 2013 Programmation Avancée sous LabVIEW 56

Page 57: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

SM la Machine à états

Octobre 2013 Programmation Avancée sous LabVIEW 57

La Machine à états, ou State Machine (SM), est une

structure d’application

STATE

Registre à décalage pour les

transitions d’états

Case structure = un pour chaque état

STATE = Etat

?

Registre à décalage pour la

mémorisation des données

Execution du

code de

l'état NEXT STATE

Page 58: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Exemple code LabVIEW de la SM

Démonstration

Octobre 2013 Programmation Avancée sous LabVIEW 58

Page 59: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Synthèse de la Machine à états

Fondamentale du développement logiciel LabVIEW

Code simple, documenté et intuitif

Point faible : peut perdre des états si en même temps

Idées d’évolutions ?

Octobre 2013 Programmation Avancée sous LabVIEW 59

Page 60: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Autres évolutions « Framework »

Quelques exemples disponibles

Producteur/consommateur avec File d’attente (Queue)

Boite de dialogue avec structure évènementielle (event driven)

Gestionnaire de Messages dans une File d'attente (GMF en

Français ou QDMH en English) = INDISPENSABLE

Actor Framework

En Annexe : QDMH : indispensable pour vos projets

Octobre 2013 Programmation Avancée sous LabVIEW 60

Page 61: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Le modèle de projet QDMH

Octobre 2013 Programmation Avancée sous LabVIEW 61

Queue Driven Message Handler (QDMH)

LabVIEW 2012 : les modèles de projet LabVIEW via le gestionnaire

de projet.

Page 62: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

V] Famille « Objet » : OOP

Octobre 2013 Programmation Avancée sous LabVIEW 62

Evolution de la gestion des données vers OOP

Données

OOP

Page 63: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Programmation Objet sous LabVIEW

Une classe est un ensemble de données (privées) et d’actions

(méthodes) qui permettent d’agir sur ces données

+ Concept : héritage, dispatch dynamique

+ Concept : encapsulation

Octobre 2013 Programmation Avancée sous LabVIEW 63

Page 64: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Programmation Objet sous LabVIEW

OOP évolution de l’ancêtre AE (Action Engine)

Registre à décalage devient données de la class

Actions devient Méthodes (encapsulation)

Octobre 2013 Programmation Avancée sous LabVIEW 64

Action 1

= case 1

Action 2

= case 2

Action …

= case

1. Donnée = registre

2. Actions = états

Actions = méthodes = 1 vi

AE = Action Engine OOP

Page 65: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°6

OOP évite-t-elle « le bug » des accès concurrents – Race

Conditions?

Octobre 2013 Programmation Avancée sous LabVIEW 65

Data Out = ??

X = ?

Y= ?

Data In

X = 0

Y= 0

Page 66: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°6

Non (by data)

Démonstration code LabVIEW

Code téléchargeable sur le site MESULOG >> Société >> Présentations Techniques

www.mesulog.fr/presentations_techniques

Octobre 2013 Programmation Avancée sous LabVIEW 66

Page 67: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Objet by value vers by Ref

Octobre 2013 Programmation Avancée sous LabVIEW 67

Page 68: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Objet by value vers by Ref

Remarque : par défaut by Value

Possibilité : Utiliser la DVR pour créer une référence

DVR + OOP by data = by Ref

Octobre 2013 Programmation Avancée sous LabVIEW 68

Page 69: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Quizz N°7

OOP by Ref évite-t-elle « le bug » des accès concurrents –

Race Conditions?

Octobre 2013 Programmation Avancée sous LabVIEW 69

Page 70: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Résultat Quizz N°7

Oui (by ref)

Démonstration code LabVIEW

Code téléchargeable sur le site MESULOG >> Société >> Présentations Techniques

www.mesulog.fr/presentations_techniques

Octobre 2013 Programmation Avancée sous LabVIEW 70

Page 71: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Conclusion : évolution pour LabVIEW

L’exagération nuit à l’évolution

S’adapter à un besoin pour éviter les bugs et ajouter des fonctionnalités

Octobre 2013 Programmation Avancée sous LabVIEW 71

Framework

Données

OOP

Page 72: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Liens

Plus de présentations techniqueswww.mesulog.fr/presentations_techniques

National Instruments : luc desruelle's Blogue

Tutoriels developpez.com : luc Desruelle

Plus de livres"LabVIEW programmation et applications" 3iéme édition, Dunod

Plus de National Instruments FrancophoneForum francophone NI LabVIEW

Forum francophone Autres produits NI

Communauté Francophone

Luc Desruelle | LinkedIn

Octobre 2013 Programmation Avancée sous LabVIEW 72

Page 73: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Questions

Octobre 2013 Programmation Avancée sous LabVIEW 73

Page 74: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Annexe 1

Annexe 1

Le modèle de projet QDMH

Octobre 2013 Programmation Avancée sous LabVIEW 74

Page 75: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Le modèle de projet QDMH

Octobre 2013 Programmation Avancée sous LabVIEW 75

Queue Driven Message Handler (QDMH)

LabVIEW 2012 : les modèles de projet LabVIEW via le gestionnaire

de projet.

Page 76: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Le modèle de projet QDMH

Octobre 2013 Programmation Avancée sous LabVIEW 76

La structure repose sur un modèle producteur –

consommateur

la boucle productrice : la structure évènementielle

capture les actions utilisateurs, sur la face-avant, et produit le «

message » via une FIFO

Le message est un cluster composé d’un état « case » et une

donnée facultative Data de type variant

la boucle consommatrice : basée sur un modèle de machine

à états, dépile sur apparition les données de la FIFO.

Page 77: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Améliorer le QDMH

Octobre 2013 Programmation Avancée sous LabVIEW 77

Gestion erreur : quitte l’application sur « erreur »

Remplacer « Exit » par « Error »

Ajouter un état « Error » dans la "Boucle de gestion de messages". Affichage de l'erreur

Sauvegarde

Filtrage si l'utilisateur le décide.

N’affiche pas la version du logiciel

Ajouter les VIs de gestion de version de LabVIEW

La structure event driven sort sur erreur –

Remplacer par un vi qui transfère l'erreur à la "Boucle de gestion de messages" via la FIFO

Supprimer le code "exemple«

Page 78: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Votre Modèle

Octobre 2013 Programmation Avancée sous LabVIEW 78

Distribuer votre modèle

Partie 2/3 : Distribuer des modèles de projet personnalisés

avec le gestionnaire de projet LabVIEW - version Simple

Partie 3/3 : Distribuer son Framework de projet, modèle de

projet personnalisé, avec le gestionnaire de projet LabVIEW -

version distribution personnalisée

Page 79: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Annexe 2

Annexe 2

IHM est en mémoire

Octobre 2013 Programmation Avancée sous LabVIEW 79

Page 80: Darwin appliqué à LabVIEW : l’évolution de la gestion des données

Mise à jour d’une IHM en mémoire

Si l’IHM est en mémoire :

les commandes et indicateurs – sur la face-avant - ont leur

propre copie des données

Octobre 2013 Programmation Avancée sous LabVIEW 80

Copie données

Operate Buffer

Transfer Buffer

Execution Buffer

Buffer de transfert =

protection

Mise à jour de l’IHM

Données exécution

du code

Copie données