luc desruelle's Blogue

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 

Partie 1/3 : Créer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW - Pourquoi ?

Desruelle_luc
Trusted Enthusiast

I] Depuis le QMH ou GMF - pourquoi utiliser un modèle personnalisé?

 

Avec LabVIEW 2012 est arrivé les modèles de projet LabVIEW via le gestionnaire de projet. Il est livré quelques modèles, ou Framework, avec LabVIEW, dont les fameux QMH (Queue Driven Message Handler) ou modèle Gestionnaire de messages dans une file d'attente (GMF) en Français et l’Actor Framework.

 

Même si l’Actor Framework est passionnant, il reste difficile à utiliser pour les non-spécialistes. Le Queue Driven Message Handler, plus connu sous le petit nom de QMH ou QDMH, est un incontournable qui est très simple d'utilisation.

 

La structure proposée par QMH repose sur un modèle éprouvé d’une structure producteur – consommateur, dans lequel :

Ø  (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) la structure consommatrice, basée sur un modèle de machine à états, dépile sur apparition les données de la FIFO. Le message définit une transition vers l’état avec la donnée associée. Le "case" de la structure "Message" est une chaîne qui correspond à un des sous-diagrammes de la structure Condition . Par conséquent, la lecture du message provoque l'exécution du sous-diagramme correspondant de la structure Condition. Ce sous-diagramme est appelé diagramme de message car il correspond à un message.

 

Plus d'informations http://www.ni.com/white-paper/14119/fr/

Ø  Ces boucles s'exécutent en parallèle et sont connectées par la file d'attente de messages, qui facilite la communication entre les boucles.

Ø  Votre application peut avoir plusieurs "Boucle Consommatrice", QMH = Actor, chaque boucle correspond à une tâche effectuée par l'application.

 

Alors pourquoi utiliser un modèle personnalisé ? C’est un modèle, qui mérite des améliorations, vos améliorations, mais la structure « Message & file d'attente FIFO » est à garder.

Je vous conseille donc de générer un  VOTRE projet MAIS sur la base du QMH, de regarder la très bonne documentation html livrée avec le projet, et de modifier le code.

Projet 3.PNG

Gestionnaire de messages dans une file d'attente :

Projet 4 - Copie.PNG

Le nouveau code sera la base de construction de votre modèle personnalisé "simple"

code main.png

II] Exemples d'améliorations "simples"

 

L’exemple donné par le QMH :

Ø  quitte l’application sur « erreur » -> remplacer "Exit" par "Error"" et ajouter un état dans la "Boucle de gestion de messages". Remarque : la "Message Queue.lvlib" est distribuée en "support VIs". Elle n'est pas dans la vi.lib ni la user.lib. Vous pouvez donc la modifier. Je vous propose de renommer la lvlib, pour faire la différence avec la lvlib d'origine.

 

code exit.png

 

Ø  ne sauvegarde pas ni ne gère l'erreur, qui est donc fatale -> dans l'état "Error" ajouter un affichage de l'erreur ainsi que la sauvegarde et le 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

 

code exit event.png

 

Ø Supprimer le code "exemple"

Ø  n'a pas votre personnalisation! Ajouter votre logo,...

Ø 

 

Si vous avez besoin d'aide, d'information ou de conseil pour réaliser votre projet personnalisé (Framework), vous pouvez laisser un commentaire. La suite de l'histoire....

Partie 1/3 : Créer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW - Pour...?

Partie 2/3 : Distribuer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW -...

Partie 3/3 : Distribuer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW -...

 

avatar_ld.gifLuc Desruelle Voir mon profil | Contact

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CTD : Certified TestStand Developer / Certifié TestStand LabVIEW

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion

Comments
Djokes95
Member

salut Luc, j'avais une question,  peut-on utiliser un modèle de proje  (si oui lequel est approrié ? ) à l'examen du CLD?

Desruelle_luc
Trusted Enthusiast

Salut, avant de passer ton examen, il faut absolument relire le « kit CLD de NI ». Il contient ce que tu as le droit d’utiliser.

A ma connaissance, il est toujours possible l’ensemble des modèles, exemples, vi.lib…. qui sont livrés par NI dans l’EDI LabVIEW, et donc d’utiliser les modèles de projet, mais aussi les template de vi.

Tu n’as pas le droit d’utiliser TA user.lib ou TES modèles personnalisés.

nous avons discuté de l’examen sur le forum :

http://forums.ni.com/t5/Discussions-au-sujet-de-NI/CLD-pr%C3%A9paration/td-p/3082265/page/2

Pour faire un peu de pub, il y a un livre français, qui traite de la finalité attendue dans l’examen CLD, par des exemples (chapitre 3)

https://www.amazon.fr/LabVIEW-Programmation-applications-Francis-Cottet/dp/2100724339?ie=UTF8&ref_=a...

A ta question N°2 : si oui lequel est approrié ? >>> Avec LabVIEW 2012 est arrivé les modèles de projet LabVIEW via le gestionnaire de projet. Il est livré quelques modèles, ou Framework, avec LabVIEW, dont les fameux QMH (Queue Driven Message Handler) ou modèle Gestionnaire de messages dans une file d'attente (GMF) en Français

Si tu as des questions…

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion