Appel sous vi, fermeture du sous vi

Bonjour à tous,
J'utilise une strucutre évènementielle qui me permet d'appeler la face avant d'un sous vi à l'appui du bouton correspondant. Notamment, grâce à configuration du noeud du sous vi.
Cela fonctionne très bien, mais lorsque je ferme mon sous vi, mon vi principal (menu) reste bloqué. Ce que je ne souhaite pas car je souhaite laisser la possibilité de revenir au menu et changer de mode d'execution.
Pourriez-vous m'aider à résoudre ce  problème s'il vous plaît ?
Mon menu se trouve dans le vi "Main"
Cordialement
Résolu !
Accéder à la solution.
Pièces jointes :
PASTEC 1.0.zip ‏2288 KB

Bonjour Nathan et Titou,
J'observe le même comportement que Titou.
Le sous-vi relatif au mode manuel ne termine par son exécution quand on appuie sur stop et ne rend pas la main au vi main (ce qui bloque les menus).
Dans une sous-vi du Mode Manuel, la structure événement permettant de régler la rampe et le palier à un timeout infini. Si Stop passe à vrai, la variable sera lue à la prochaine itération de la boucle, c'est-à-dire au prochain événement. 
Cordialement,
Isabelle
Isabelle G.
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Été de LabVIEW 2014
12 présentations en ligne, du 30 juin au 18 juillet

Similar Messages

  • Appel de programmes en C sous labView

    Bonjour,
    Je souhaiterai savoir s'il est possible d'appeler sous LabView un programme en C afin de lui passer des paramètres (comme des arguments d'une fonction) et que ce dernier nous renvoie des valeurs récupérables sous LabView?
    Pour être plus clair, je pourrai avoir un programme C qui calcul la résolution d'une équation du second degré ax2+bx+c, je lui passe les paramètres a,b et c sous LabView et le programme C me retourne les solutions que je récupére sous LabView
    En espérant m'être bien fait comprendre, je vous remercie

    Bonjour,
    C'est possible en utilisant les Code Interface Node (CIN).
    Mais je n'ai jamais trouve cela tres simple a mettre en place ni tres propre.
    Je vous invite a lire ce tutoriel sur la mise en place d'un CIN : http://zone.ni.com/devzone/cda/tut/p/id/4161 vous devrez y trouver les donnees necessaires pour realiser ce que vous souhaitez.
    Cordialement,
    Da Helmut

  • Erreur 1000 - Executer le VI

    Bonjour tout l'monde.
    Voilà mon problème :
    Je souhaite appeler un sous-Vi à l'aide de la méthode "ExécVI". Cela fonctionne parfaitement jusqu'a ce que j'appelle un sous-Vi contenant un autre sous-Vi appelé également à l'aide de cette méthode.
    Mon programme "Supervision.vi" appel un premier sous-VI ("Open_csv_files_UV.vi") qui lui même doit en appeler un autre. C'est dans ce cas de figure qu'une erreur remonte (cf. PJ).
    Dans un premier temps j'ai pensé qu'il était impossible de cumuler un appel de référence dans un autre appel de référence du genre :
    Supersion.vi
       -> Appel "Sous-VI_1.vi"
          -> Appel "Sous-VI_2.vi"
          ->Fin "Sous-VI_2.vi"
       -> Fin "Sous-VI_1.vi"
    Supervision.vi
    Mais après des test dans un autre programme je me rend compte que c'est possible de le faire. Pourquoi dans mon cas cela ne fonctionne donc pas ? Est-ce lié aux valeurs "AttendreLaFin" ou "Suppr ref. auto" de la méthode "ExécVI" (j'ai testé toutes les combinaisons possible) ? Ou bien dans les propriétés du VI (Exécution) ?
    Si quelqu'un à une idée sur le sujet ou à déjà rencontré le problème je suis preneur.
    Cordialement.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Erreur_1000.PNG ‏13 KB

    Bonjour Dei_91,
    L'erreur que tu rencontres est expliqué ici: http://digital.ni.com/public.nsf/allkb/790AC75B07D​971ED86256C53007BDCE9?OpenDocument
    Tu peux trouver un exemple ici: http://www.ni.com/example/26384/en/
    Ton code ressemble à ça ?
    Cordialement,
    Benoit S. - Field Sales Engineer
    Certified LabVIEW Developer
    Certified TestStand Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

  • Mesures simultanées fréquences (labview 2010)

    Bonjour, 
    je développe un programme dans le but de faire de l'analyse vibratoire. J'utilise le matériel suivant:
    -châssis NI-cDaQ 9188
    -une carte NI 9234 pour l'acquisition des données provenant des accéléromètres (4 accéléro)
    -une carte NI 9401 pour la mesure de fréquences (2 fréquences). Je récupère mes fréquences à l'aide de compteurs.
    Pour l'acquisition des données provenant des accéléro, aucun soucis.
    En revanche, pour les mesures des fréquences, ça va moins bien.
    J'ai testé 2 solutions:
    -la première, je crée 2 tâches dans le MAX que j'appelle sous labview (cf. vib 5.jpg), dans ce cas, j'ai le message d'erreur suivant pour la 2ème tâche: "Le périphérique ne peut pas être configuré en entrée ou en sortie car des lignes ou des terminaux qui lui sont connectés sont utilisés par une autre tâche ou une autre connexion. Cette opération nécessite que toutes les lignes et tous les terminaux soient temporairement réservés à la communication, ce qui interfère avec l'autre tâche ou connexion."
    -la seconde, je crée les tâches directement dans labview (cf. vib 5.jpg), ce qui semble fonctionner. Mais dans ce cas-ci, c'est à l'analyse des résultats que je constate le problème.
    je voudrais faire un enregistrement simultané des données provenant des accéléro, et de mes 2 fréquences. L'enregistrement des données provenant des accéléro prend en moyenne 2 secondes. Je voudrais donc pour mes fréquences (NH et NL) enregistrer 200 points, répartis sur 2 secondes pour que l'analyse soit cohérente. Or, j'enregistre bien mes 200 points, mais a priori très rapidement, ce qui fait que lorsque je trace mes courbes, j'observe des paliers et non une évolution continue. De plus, je suppose que les acquisitions de mes 2 fréquences se font successivement.
    Y a-t'il une solution pour que je puisse faire tous ces enregistrements simultanément?
    En vous remerciant d'avance pour votre aide.
    Galega
    Pièces jointes :
    vib 4.jpg ‏330 KB
    vib 5.jpg ‏266 KB

    Bonjour, 
    et merci pour votre réponse. 
    j'ai fait le test que vous m'avez suggéré, mais malheureusement ça ne fonctionne pas.
    De plus je n'arrive toujours pas à obtenir une acquisition continue de mes fréquences, il me manque des valeurs (cf pièce jointe).
    En espérant trouver rapidement la solution.
    Merci
    Pièces jointes :
    courbe fréquence.jpg ‏33 KB

  • Application builder labview 2010

    Bonjour
    J’utilise l'application builder pour créer un fichier exécutable,
    la création se déroule normalement
    à l'activation du fichier .exe de nombreux sous-vi et librairies ne sont pas chargés ou trouvés
    j’ai déjà utilisé cette application sans problème sur des versions
    précédentes de labview
    y-a-t-il des chemins à déclarer pour que l’application builder puisse retrouver ses
    sous-vi ou librairies utilisées ?
    merci

    Bonjour,
    Il faut ajouter les fichiers que vous appellez (sous VIs, controles, classes, etc) dans la partie "Toujours inclus" de votre executable ainsi que de définir la destination de vos fichiers sources vers votre exécutable et non le dossier de support (tout dépend de la façon que vous appellez vos sous VIs, XControl, classes, etc).
    Cordialement,
    Da Helmut

  • PDF: Ouvrir des liens hypertexte en local et non depuis un navigateur web

    Bonjour,
    J'ai inséré des liens dans un documents PDF qui dirigent mes utilisateurs vers des fichiers ou dossiers présents sur nos serveurs.
    Mais lorsque mes utilisateurs cliquent sur les liens en question, le navigateur web s'ouvre et n'affiche donc pas les documents ciblés.
    Est-il possible de changer le programme mis par défaut pour ouvrir les liens hypertext depuis un pdf svp?
    Cordialement,

    La question tient dans le type d'appel à la ressource : http:// vous enverra dans le navigateur et c'est le navigateur qui détermine ce qu'il fait des fichiers : s'il tente de les ouvrir ou s'il les télécharge… Cette question de protocole et d'URI scheme me dépasse un peu, malheureusement.
    Quel type de fichiers souhaitez-vous transférer ?
    Une des solutions sur lesquelles je suis tombé est l'utilisation d'un script php sur le serveur qu'on appellera sous la forme :
    <a href="http://www.monserveur.com/download.php?file=example.pdf">Click here to download PDF</a>

  • Appelle dll créée avec LabView 8.2 sous VB6 (Booleen)

    Bonjour,
    Je développe un programme sous LabView8.2 pour créer une dll qui sera appelée par VB6. Lorsque que je mets un booleen VB6 me renvoie le message d'erreur "erreur de chargement de la DLL".
    Y a t il une configuration à réaliser sous VB ou LabView ?
    Merci de votre aide

      Bonjour,
     Voici le programme LabView l'erreur arrive lorsque je veux sélectionner la Dll dans le menu Projet\référence de VB6
     Ci joint le vi et le projet qui est simple car  c'est un exemple de j'ai créé pour debuguer vu qu'avec un programme compliqué ça ne fonctionnait pas.
    Merci de votre aide
    Cordialement
    Pièces jointes :
    essai.vi ‏8 KB
    essais.lvproj ‏8 KB

  • Appel de sous VI

    Bonjour,
    Actuellement en possesion du toolkit Sound and Vibration et LabView 2013, j'ai créé un sous VI avec la fonction Microphone pour calibrer les micros de mon banc acoustique, j'ai appelé se sous VI dans mon VI principal. On enregistre des données dans un fichier texte (sous VI).
    Quand j'éxécute mon VI principal je n'obtient aucun résultat. aurai-je manqué une manipulation ?
    Merci de votre aide.
    PS : j'ai joint mon projet.
    Pièces jointes :
    Banc acoustique.zip ‏105 KB

    Au moment de construire ton application, tu peux choisir dans les options dans quel répertoire copier les sous-VI, comme sur ce screenshot :
    Par défault, ils ne sont pas inclus "physiquement". En cochant l'option "set destination for all contained items", ils le seront.
    Cordialement,
    J.D.
    French Labview beginner
    N'oubliez pas de complimenter les bonnes réponses - Don't forget Kudos for good answers

  • Appeler un sous VI sur demande

    Bonjour,
    Je voudrais réaliser un programme sous labview qui permet d'effectuer une acquisition de données, et appelle à la demande (sans rompre le Programme) un sous VI qui affiche un graphe de données et permet de le fermer (sans perdre les données).
    Merci par avance  

    Bonjour N_Eden,
    Merci d'avoir posté sur le forum National Instruments.
    Il y a plusieurs manières d'arriver à faire cela en LabVIEW, alors je te
    propose une solution que je trouve élégante. Elle est basée sur les files
    d'attente. De mon VI principal j'utilise une file d'attente pour transférer mes
    données entre 2 boucles (une boucle d'acquisition et une boucle de traitement).
    J'utilise cette file d'attente pour récupérer mes données dans mon sous-VI de
    visualisation grâce à la fonction Aperçu du premier élément d'une file
    d'attente. Ainsi je récupère l'élément sans le supprimer de ma file d'attente.
    Pour bien te démontrer ce que je dis, dans mon VI principal je récupère le
    nombre d'élément généré par ma boucle d'acquisition et le nombre d'élément reçu
    dans ma boucle de traitement (ils doivent être égaux sinon c'est que je perds
    des éléments ;-).
    PS: j'ai codé un peu vite et je n'ai pas géré complétement les erreurs
    Benjamin R.
    R&D Software Development Manager
    http://www.fluigent.com/
    Pièces jointes :
    N_Eden.zip ‏54 KB

  • Appel dynamique sous VI en mode run time

    Bonjour,
    En mode developpement, dans le VI principal, je lance un sous-VI de façon dynamique en faisant appel au chemin complet du sous VI en question, pas de problème.
    En mode RunTime (donc une fois le programme installé sur l'ordinateur cible), ou se trouve ce sous VI ? Je sais comment retrouvé le chemin de l'appli, mais je ne sais pas ou trouver le sous VI pour l'appel dynamique ... est-il dans une librairie ? est-il inclus dans l'exe ? comment le lancer ?
    Merci d'avance.
    Wilfried.
    Résolu !
    Accéder à la solution.

    Au moment de construire ton application, tu peux choisir dans les options dans quel répertoire copier les sous-VI, comme sur ce screenshot :
    Par défault, ils ne sont pas inclus "physiquement". En cochant l'option "set destination for all contained items", ils le seront.
    Cordialement,
    J.D.
    French Labview beginner
    N'oubliez pas de complimenter les bonnes réponses - Don't forget Kudos for good answers

  • Ne pas appeler la face avant d'un sous VI

    Bonjour,
    Lorsque j'execute une commande de T_Consigne à partir de mon VI principal (Cadencement_Maître_Esclave_bis), le sous VI "Ecriture_T_Consigne" est appelé le temps de l'execution.
    Comment faire pour empêcher cet appel?
    Ci-joint mon programme.
    Cdt
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    PASTEC 1.0.zip ‏273 KB

    Voici le sous-vi que tu peux utiliser.
    Francis M | Voir mon profil
    Certified LabVIEW Developer
    Pièces jointes :
    VGF_ex.vi ‏15 KB

  • Erreur windows sous vi

    Bonjour
    Je viens de finir un programme.
    Le programme marche trés bien sur le pc de développement. Lorsque je crée mon exe, l'exe marche sur le pc de developpement.
    Par contre lorsque je le met sur le pc du banc test qui n'as pas labview. Une erreur systeme apparait à un endroit précis.
    La structure de mon programme est la suivante.
    1 programme principale qui appele 6 sous vi avec des faces avant visibles ou non.
    Il y en a 1 sur les 6 qui lancent un cycle de mesure, le cycle est composée d'un sous vi mesure puis d'un sous vi traitement mesure.
    Donc mon programme principale lance le sous vi cycle de mesure ( pas de face avant visible)
    Le vi cycle de mesure lance automatiquement le sous vi mesure (interface utilisateur)
    Une fois que mesure est terminéee, le cycle de mesure lance le sous vi traitement ( interface utilisateur)
    Et c'est sur cette interface qu'une erreur windows apparait systematiquement, des fois à l'ouverture du sous vi, des fois à la fermeture.(voir fichier joint)
    Sinon tous le reste fonctionne correctement, mais c'est le seul ou il y plusieurs sous vi d'affiler sans repasser par le vi principale.
    Merci de votre aide
    Pièces jointes :
    erreur windows.JPG ‏112 KB

    En fait, j'ai compris. Il se trouve que dans les 2 VI il y a une boucle while infinie, donc quand je mets l'une dans l'autre, le programme ne quitte plus la boucle interne.
    J'ai mis en pièce jointe le VI qui controle un moteur pas a pas. (le sous-VI de mon fichier principal)
    Je cherche à pouvoir controler le moteur 1 non plus en cliquant sur le bouton comme cela est prévu dans ce fichier, mais automatiquement du moment qu'une valeur de consigne est entrée. Je souhaite également mettre une condition de fin à cette boucle (afin de résoudre le problème décrit précédemment) qui me permettrait de sortir de celle-ci quand la valeur de consigne (position) est atteinte par la moteur.
    Cela fait un moment que je traine ca, avec que des problèmes, j'arrive à rien.
    PS: ce VI n'a pas été concu par moi-même donc j'essaie de le modifié mais je ne compris pas tout le fonctionnement
    Attachments:
    LidarCrystalControl Go To a defined Position.vi ‏85 KB

  • Erreur lors de la création d'un executable sous LabVIEW SP1

    Bonjour,
    Je travaille actuellement sur un projet relativement imposant sous LabVIEW 2010 SP1.
    Le projet étant assez imposant,j'ai voulu en faire un exécutable.
    J'ai alors la fenêtre suivante qui apparaît (voir piéce jointe):
    "Une erreur est survenue lors de l'appel de l'éditeur des régles de construction. Veuillez vérifier si les VIs sont brisés dans le répertoire du gestionnaire correspondant."
    Mon Vi fonctionne trés bien lorsque je l'éxecute, donc je ne comprends pas. De plus j'ai déja créer d'autres exécutables sans probléme jusqu'a présent.
    Quelqu'un aurait-il une idée pour solutionner ce probleme?
    Merci d'avance.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    erreur.JPG ‏11 KB

    @Ramses:
    Je pense que Julien utilise une option du menu Outils (je ne sais plus son nom, et elle n'apparait pas sur mon PC car je n'ai pas l'application builder), qui permet de préparer son VI pour un exécutable. A ce moment, cela va créer automatiquement un projet avec une spécification de construction.
    Cependant, je suis de l'avis de Ramses. Il est préférable de se créer son projet et de travailler dedans, puis de créer les spécifications de construction par la suite...
    Et désolé, mais je n'ai pas d'explication à votre problème, à part éventuellement des dépendances particulières. Lorsque vous ouvrez votre VI, LabVIEW vous demande-t-il de charger des fichiers particuliers?
    Cordialement
    Olivier L. | Certified LabVIEW Developer

  • Timers Multithread sous CVI

    Bonjour,
    J'ai plusieurs questions concernant mon programme avec LabWindows CVI 9.0 et 4 cartes NI PCI 6229, sous Windows XP et dual core Intel 3GHz.
    Je souhaite réaliser un programme qui réalise une boucle d’asservissement et également un contrôle et affichage sur des acquisitions. Je n’ai malheureusement pas le choix sur l’OS et je ne peux pas m’orienter sur une solution temps réel.
    Pour cela, je souhaite réaliser
    -          une boucle qui gère l’asservissement (acquisition sur 20 entrées, calcul sur ces acquisitions, et génération sur 10 sorties, tout ceci en 10ms, c’est la BOUCLE CRITIQUE)
    -          une boucle pour le contrôle (simple contrôle sur ces acquisitions: comparaison à une valeur seuil, 10ms)
    -          une boucle pour l’affichage (affichage des résultats sur la face avant des contrôles OK ou non OK, toutes les 200ms)
    Je souhaitais à la base utiliser 3 timers asynchrones de CVI, mais je me suis aperçu qu’on ne pouvait utiliser qu’un seul Timer asynchrone à la fois.
    J’ai donc vu qu’il y avait une autre solution, le multithread en utilisant les thread pool. Cette solution m’intéresse, car je souhaiterai mettre la boucle critique dans 1 thread sur le 1er coeur, la boucle de contrôle dans un 2ème thread sur le 2ème coeur, et la boucle d’affichage dans un 3ème thread sur le 2ème coeur.
    La boucle d’asservissement est la boucle critique et doit être de 10ms à +/- 2ms.
    Les autres bouclent ne sont pas critiques et peuvent avoir un décalage de +/- 10ms, le but est de ne pas perdre de données et de contrôler toutes les acquisitions. Un affichage toute les 200ms suffit.
    Voilà j’ai alors 2 questions :
    -          est-ce que mon approche (timers en multithread et diviser sur les 2 cœurs) convient pour mon application ?
    -          et comment mettre un timer classique dans un thread spécifique ? J’ai vu qu’il fallait utiliser «CmtScheduleThreadPoolFunction (int Pool_Handle, ThreadFunctionPtr Thread_Function, void *Thread_Function_Data, int *Thread_Function_ID)” Mais cette fonction appelle une fonction de type “CVICALLBACK FonctionThread(void *functionData)” et mon timer classique est de type “CVICALLBACK Timer_Classique (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)” Comment donc appeler un timer classique avec une fonction CmtScheduleThreadPoolFunction ? Faut-il procéder d’une autre manière ?
    Je vous remercie de votre aide.
    Cordialement,
    Hédi.

    Bonjour,
    L'approche multi-thread est en effet la bonne, dès qu'il faut séparer plusieurs tâches. Je vous invite à consulter cet article du Rebel Site, qui traite du multithread et constitue une référence en la matière. Attention, le multithread n'implique pas obligatoirement une gestion multicoeur. Il faut pour le mettre en oeuvre passer par l'API de Windows.
    Est-il bien nécessaire de faire de du contrôle 10ms? (deuxième boucle) Au quel cas, je ne suis pas absolument sûr qu'il faille créer un thread séparé. Si cette tâche peut supporter un cadencement plus lent, il serait plus malin de venir la traiter dans le troisième thread.
    Il serait intéressant d'utiliser une Thread Safe Queue pour faire circuler les données d'un thread à l'autre. Ce mécanisme permettra de ne pas perdre de données. D'autre part, vous pouvez alors installer une callback sur un nombre d'éléments dans la TSQ (Thread Safe Queue) et venir déclencher la callback associée à cette TSQ dès que 20 éléments sont présents pour piloter le troisième thread depuis le premier.
    Dans cette configuration, il n'y a plus besoin que d'un timer, pour la partie temps critique - bien que sous Windows, on ne puisse pas garantir le déterminisme d'une boucle à 10ms - les autres thread étant 'esclave' du premier.
    Cordialement,
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  

  • Adobe Reader sous IE8 - Hyperlien vers une page ne fonctionne pas

    Bonjour,
    J'ai des PDF ouverts sous IE8 ( Acrobat Reader encaspsulé dans IE donc)
    Ces derniers ont des liens hypertexte vers d'autres PDF sur des pages précises dans le document appelé.
    Hors ces derniers s'ouvrent en début de document et non à la page demandée.
    Sous Reader directement, tous fonctionne parfaitement
    Et sous Internet Explorer 6, cela fonctionne également.
    Si quelqu'un a une astuce pour que cela fonctionne également sous IE8
    Cordialement.

    Bonjour,
    A priori ça ressemble plutôt à un "bug humain".
    Reste à savoir quelle manip fait cet utilisateur et que ne font pas les autres…

Maybe you are looking for

  • New iMac, new HP all-in-one - will they be compatible?

    I am new to Macs, and loaded Leopard as soon as I got it. Immediately after, I loaded the software for my brand new HP C4280 all-in-one. All seems fine except the scanner - I get a message indicating that the USB is not connected, or a message that n

  • Converting XML as table to XML as string

    All, I am successfully able to convert XML table from Internal Table. Now, I would like to convert this XML Table into XML string. Any help on this will be appreciated. Regards, Salil Moderator message: please search for available information/documen

  • File to idoc scenario error - not working yet :(

    Hello! I'm trying to make changes in business partner record in CRM using idoc CRMXIF_PARTNER_SAVE_M01 I have an error 56 EDI: Partner profile not available. In Control record in we02 transaction, I have right Partner number for Recipient information

  • Page URL and Popup issue

    Hi, I have a page A with a button, clicking on which will forward (forwardImmediate) to Page B. Even in page B there is a button which will take you back (again forwardImmediate) to page A. When I click the button in Page A, it takes me to Page B wit

  • When burning a disc from my iTunes, I want to shorten the one song i am burning...HOW?

    I am trying to shorten a song that I am burning from iTunes onto a disc...How do I do this?