Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Conseils organisation de mon VI

Ma réponse était "bête" mais comme ca marchait j'ai pas cherché plus loin...

J'ai remplacé tous les "val sgnl" par ton noeud de méthode qui restaure les valeurs par défaut sur l'ensemble du VI. 

 

Je n'arrive toujours pas à mettre une boucle for pour les boutons radio... As tu une piste à me donner?

 

@pbelles: Merci, j'ai deja télécharger le 2012_LV_Core_1_FR

 

0 Compliments
Message 11 sur 58
1 816 Visites

Bonjour,

 

Après la lecture du livre conseillé, je vais essayer de faire mieux en utilisant une machine d'états et des shift register pour les variables.

 

Je suis reparti de zéro, c'était trop compliqué d'essayer d'adapter l'ancien VI.

Puis je savoir si je commence bien comme il faut?

 

De plus, j'ai un soucis lors de la mesure. J'envois la commande "G" à l'appareil qui doit me répondre $EOT si tout est bon ou $KO s'il y a un problème.

Si tout est bon $EOT, je récupère les valeurs de la mesure.

Si c'est $KO il faut relancer la commande.

J'ai donc fait fait un sous Vi "Liris mesure" qui envoit la commande G et qui s'arrete en cas de $EOT ou $KO. Ce sous-vi est utilisé dans le vi "Liris mesure NaN" qui relance l'envoi de la commande G tant que je n'arrive pas à avoir les valeurs de mesures. Sauf que cela ne fonctionne pas correctement, j'ai l'impression qu'en cas de $KO il ne relance pas l'envoi...

Pourquoi?

 

Merci d'avance

Message 12 sur 58
1 760 Visites

J'ai regardé ... c'est assez "rare" (de voir une évolution comme celle là) ... mais là .... je dis : "Respect" !

 

Au niveau du code, on change complètement de planète par rapport à tes codes précédents.

C'est quand même autre chose .. une véritable architecture, c'est propre, des SR, plus de locales, un flux d'erreur ... clap, clap, clap   Smiley heureux

 

Un gros Bravo !

 

Pour ton soucis :

 

Ce sont des fonctions VISA ... je n'utilise pas du tout ce genre de choses.

Ceci dit, cela reste "du code" ... pourrais-tu me "pointer" exactement la boucle qui est censée relancer la commande G en cas d'échec.

Car dans "Liris mesure" je ne vois pas l'envoi d'une commande "G" ... je ne vois que l'envoi d'une commande "R".

0 Compliments
Message 13 sur 58
1 748 Visites

Salut, je débarque… je n’ai pas vu le premier code que tu as posté, mais j’ai vu les commentaires et je me suis fait une idée. Je regarde la nouvelle structure, et je suis d’accord avec ouadji : c’est une véritable architecture, avec une gestion d’erreur, des SR.

 

Personnellement je ne suis pas pour la « machine d’états » (avec SR sans File d’attente) ou « state machine », mais pour débuter et surtout comprendre les bases, c’est bien.

 

Je vais me faire un peu de pub (oui je suis un des auteurs du livre que ouadji a conseillé) mais ton « objectif » de code est un des exemples du livre. La gestion des données sous LabVIEW (éviter locale, globale) utiliser les FGV, la gestion des erreurs, la structure de programme, architecture Machine à états vers QMH. La réalisation d’un driver VISA est abordé (aussi IVI, carte DAQ). Le livre va expliquer comment faire une application (dans les règles de l’art, type QDMH) pour piloter un instrument de mesure (driver VISA réalisé dans le livre), analyser les données, et générer un rapport Excel. Pour info tu peux télécharger le code du livre.

 

Par rapport à la gestion des données sous LabVIEW, je te conseille un document.

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

 

J’en suis l’auteur et je peux passer pour un mégalo (cela est surement vrai), mais je pense qu’il te permettra à comprendre la gestion des données avec LabVIEW. De plus, il traite des problèmes liés à l’utilisation des nœuds de propriété (lenteur), et de remplacer par des variables partagées (FGV). Si tu es vraiment motivé, tu as la version Anglaise, qui est beaucoup plus technique, précise et complète.

Darwin applied to LabVIEW: The evolution of the data management

 

darwin+labview.png

 

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 14 sur 58
1 723 Visites

Sinon tu devrais faire un driver dans les règles :

  • Une véritable fonction « init » qui ne fait que cela
  • 1 fonction = 1 vi avec décode des données
  • faire un sous-vi qui écrit la commande et fait la lecture des données
  • un code exemple
  • ….

 

Sur ta fonction init, j’ai quelques remarques (le plus important, tu as activé le "termination Char" dans la fonction VISA Init. >>>> Donc pas besoin de faire une boucle de Wait. VISA Read va "sortir" lorsque caractère de fin Ou TimeOut (ne répond pas).

Liris Init.png

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 15 sur 58
1 721 Visites

extrait du livre LabVIEW : Programmation et applications

 

Lecture des données dans l’instrument

Pour la lecture des données retournées par l’instrument, nous utilisons VI VISA Read. Il est très important de comprendre que cette fonction retourne les données contenues dans le buffer dès qu’une de ces 3 conditions est présente :

  • Un caractère de terminaison est arrivé, par exemple dans le cas d’une communication sur un bus série (voir figure 4.57) ;
  • Le nombre d’octets dans le buffer de réception est égal à celui passé en paramètre à la fonction VISA Read (voir figure 4.56) ;
  • Le temps d’attente a dépassé le TimeOut configuré par la fonction VISA Open. Dans ce cas LabVIEW retourne un code d’erreur, 0xBFFF0015, le délai d’attente (timeout) a expiré avant que l’opération ne soit achevée.

Il se peut donc que la fonction VISA Read renvoie un nombre d'octets inférieur au nombre requis si la fonction atteint un caractère de terminaison ou si un timeout se produit.

Il est conseillé, par ordre de préférence, d’utiliser la fonction de lecture configurée avec un caractère de terminaison (si le matériel le permet), puis en définissant un nombre d’octets fixe. Si ce dernier est inconnu, une dernière méthode consiste à transmettre une commande à l’instrument, puis attendre et lire le nombre d’octets retournés dans le buffer. Une propriété de l’API VISA permet de connaître ce nombre d’octets.

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 16 sur 58
1 718 Visites

Marcelito a écrit :

 

De plus, j'ai un soucis lors de la mesure. J'envois la commande "G" à l'appareil qui doit me répondre $EOT si tout est bon ou $KO s'il y a un problème.

 

Si c'est $KO il faut relancer la commande.

Sauf que cela ne fonctionne pas correctement, j'ai l'impression qu'en cas de $KO il ne relance pas l'envoi...

Pourquoi?

 

Merci d'avance


si je comprends bien la gestion est réalisée par "Chaine ABC et Firmware.vi"

il n'a pas de gestion d'erreur, donc si erreur? que faire?

 

peux-tu donner un exemple des paramètres d'entrées de cette fonction, lorsqu'il y a KO? cela permettra de comprendre pourquoi il n'y a pas de reprise.

 

Je pense que le code qui permet de savoir s'il faut faire une reprise devrait être dans un sous-vi (param entrée "Réponse instrument" - sortie "reprise")

A+

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 17 sur 58
1 715 Visites

@ Luc : " Personnellement je ne suis pas pour la « machine d’états » (avec SR sans File d’attente) "

 

Bonjour Luc,

 

Je suppose que tu parles de la state machine "simple" ... par rapport à une state machine "avec" une Queue.

Si oui,  tu sembles déconseiller l'utilisation de la machine à états "simple" (sans l'utilisation d'une Queue) ... Pourquoi ?

 

Personnellement je dirais que cela dépend des besoins

... si cela se justifie, alors oui (évidemment) ... dans le cas contraire, pourquoi alourdir le code (dans ce cas inutilement)

 

Mais ... je doute que le mot "inutile" ait une queconque place dans ta réflexion ... tu as donc tes raisons !

Peut-être pour conserver au maximum le potentiel évolutif du code ?

 

Pourrais-tu développer ta pensée, à savoir : " Personnellement je ne suis pas pour la machine d’états, avec SR, sans File d’attente "

 

Un grand merci Luc,

 

0 Compliments
Message 18 sur 58
1 711 Visites

salut ouadji,

oui, la "state machines" est par définition la simple, la standard

http://www.ni.com/tutorial/7595/en/

 

 

 

Je conseille d'utiliser le modèle QMH (Queue Driven Message Handler) ou modèle Gestionnaire de messages dans une file d'attente (GMF) en Français

 

http://zone.ni.com/reference/fr-XX/help/371361H-0114/lvhowto/creating_vis_from_templates/

 

Les modèles de conception d'application représentent les architectures et les techniques de LabVIEW qui offrent des solutions à des problèmes spécifiques de conception logicielle. Ces modèles de conception sont disponibles dans la catégorie VI»VI à partir d'un modèle»Structures sous Modèles de conception.

 

  • Machine à états standard — Utilisez ce modèle pour construire un modèle de conception de machine à états standard. Chaque état exécute du code et détermine l'état suivant à exécuter. Comparez cela avec le modèle Événements de l'interface utilisateur, où le code s'exécute en réponse aux actions de l'utilisateur. Comparez ce modèle avec le modèle de gestionnaire de messages dans une file d'attente, dans lequel le code de gestion de chaque message peut placer un nombre indéterminé de messages dans une file d'attente.
 
  • Gestionnaire de messages dans une file d'attente — Utilisez ce modèle pour créer un modèle de conception de gestionnaire de messages dans une file d'attente, dans lequel le code de gestion de chaque message peut placer un nombre indéterminé de nouveaux messages dans une file d'attente.

 

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 19 sur 58
1 690 Visites

Desruelle_luc a écrit : 

Je conseille d'utiliser le modèle QMH (Queue Driven Message Handler) ou modèle Gestionnaire de messages dans une file d'attente (GMF) en Français

  


pourquoi?

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 -...

 

sinon pour aller plus loin, dans la présentation Darwin applied to LabVIEW:  The evolution of the data management

présentation en téléchargement You can download the presentation  Darwin applied to LabVIEW V2.2.pdf attachment and LabVIEW examples code.

https://decibel.ni.com/content/servlet/JiveServlet/download/20258-113555/Darwin+applied+to+LabVIEW+V...

 

p63

 

state machine.png

 

mais page 66 : Source CLAD exam: What is one disadvantage of using the State Machine VI architecture?

state machine.png

 

banniere Luc Livre NXG Champion.png

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

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 20 sur 58
1 685 Visites