IHM qui s arrête

Bonjour
J ai un problème étrange sous Labview 2011
J ai un ihm qui fait:
De le lecture/écriture sur un port série driver visa
De l acquisition et simulation de synchro/résolver via carte pci sycn
De temps en temps l ihm s arrête plus rien et émis ou reçu sur le port série pareil pour la carte synchro
Il faut que je bouge la souris sur la face avant et clics dessus pour que l ihm se remet en route ! C est vraiment étrange
Quelqu un aurait il déjà rencontré ce phénomène ?

Bonjour,
Difficile de donner de l'aide sans code.
Sinon, peut-être un problème de ressource au niveau du PC. Lorsque ton application fonctionne, a combien est la charge CPU et la mémoire vive ?
Le problème se est totalement aléatoire ? ou c'est après un certain temps d'exécution ? Tu n'as pas un écran de veille qui essaye de se lancer ? C'est juste l'iHM qui ne se met pas à jour ou c'est tout le code qui ne tourne plus ?
Plus tu nous donneras de conditions avant l'apparition du problème, plus on pourra essayer de t'aider.
Merci
.mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
Maxime R.  
  CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
  CLAD - Certified LabVIEW Associate Developer   

Similar Messages

  • Comment dans un évènement exécuter une boucle qui s'arrête avec un bouton stop?

    Je travaille sous LabVIEW 7.1.
    Sur l'exemple "Wave file payer" dans le répertoire E/S/sons, dans l'évènement [2] PLAY une boucle while s'exécute. A l'intérieur de cette boucle while des booléens stop et pause peuvent ête lus.
    Lorsque je crée un diagramme similaire, pendant l'exécution de la boucle while tout la face avant est inaccessible. Le programme se bloque sur la boucle while puisque le bouton stop l'arrêtant est inaccessible.
    Que manque-t-il à mon code?
    Merci.

    Comme je le pensais, c'est un "petit truc à savoir"
    En faisant un clic droit sur la structure Event, on peut aller dant "Edit event handled by this case..."
    Dans cette fenetre, en bas il faut décocher l'option "lock front panel until the event case for this event completes"... cette option parle d'elle même pour peut qu'on y prête attention et qu'on comprenne l'anglais
    J'espère que cela résoudra tes problèmes.
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Choix de structure pour une IHM

    Bonjour,
    Je m'essaye actuellement au Xcontrol et tente une IHM un peu poussé que mes habituelles.
    Comme vous pouvez le voir dans mon programme j'utilise les splitters pour passer d'une "fenêtre" `l'autre lorsque l'on appuie sur les graphiques.
    Ma question est la suivante : faut il que je gère aussi ces mouvements comme des Xcontrols ? dans ce cas cela signifierait gérer tout la face avant en tant que Xcontrol non ? ou dois je tout laisser comme avant ?
    Je cherche juste à partir dans la meilleure direction pour la suite de mes développements.
    Merci d'avance !
    (normalement toutes les pièces se trouve dans le dossier)
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    IHM.zip ‏435 KB

    Salut,
    il n’y a pas l’ensemble du code, mais si je comprends bien tu veux faire un effet « slider » « swipe screen », pour décaler ta page avec un effet de mouvement et tu veux le gérer avec des splitters.
    Je réponds non à la question : je gère aussi ces mouvements comme des Xcontrols 
    Pour info, pour le principe, je pense qu’il y a plus simple, tu as une fenêtre, qui a une origine, tu changes programmatiquement l’origine. Je te conseille de regarder le projet de
    http://chrislarson.me/content/chris-larson/labview-vi-ipad-style-page-swiping
    même si l'ensemble du code n'est pas à prendre en exemple.
    J'ai codé une IHM qui gére plusieurs pages avec une gestion tactile, comme le soft de Chris.
    La gestion n'est pas un objet graphique, de type XControl, mais un process (ou actor ou acteur ou programme informatique) qui gére, en parallèle du reste du code, les actions (états, message) que lui produit ue autre structure.
    Donc structure producteur-consommateur, avec un structure "event" dans le code IHM du Main, qui produit sur détection d'actions de l'utilisateur sur l'IHM, par exemple par FIFO, à une deuximée boucle while en // (le deuximème process) des actions. Sur les actions, la deuxième boucle va gérer le "déplacer l'origine" de la fenêtre".
    Tu peux le coder facilement sur un base de QMH (ou QDMH), cf les templates de projet de LabVIEW.
    J'ai commencer, il y a quelques temps, à encapsuler le code de gestion "swipe" dans un code autonome, type Actor de l'actor framework, mais je n'ai pas terminé, par manque de temps, mais il faudrait... si je le termine je te le donne...
    A+
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Des fenêtres sans block diagramme et prêtes à exécuter

    Bonjour, j'ai un projet qui contient plusieurs IHM.
    Quand j'ai vouli passer à la construction de l'applciation exécutable, j'ai fait une modification 'que je m'en souviens pas ) du coups j'ai tous mes IHM qui sont dans un état "pret a etre éxécuter " et brisé et je ne peux pas acceder à leur diagramme.
    Donc j'ai perdu mon projet et ça marche plus même en mode projet ( pas exécutable).
    Est-ce que vous pouvez m'aider SVP pour récupérer mon projet ?
    Voici une capture ecran d'une de mes IHM.
    Attachments:
    IHM brisée.PNG ‏121 KB

    Are you able to open your VIs in your original project in LabVIEW? If so, do you have a broken run arrow in your block diagram?
    If you cannot open them, do you receive an error when you attempt to open them?
    Britton C.
    Applications Engineer
    National Instruments

  • Projet "Mesure continue et enregistrement dans un fichier"

    Bonjour,
    J'ai un petit problème sur l'architecture du projet "Mesure continue et enregistrement dans un fichier" proposé par Labview (je suis sur la version 2013).
     Quand on appuie sur le bouton "Stop" et que la boucle d'acquistion se termine avant la boucle d'enregistrement, celle-ci reste bloqué sur la condition "Log".
    Il n'y a pas de mécanisme qui empêche celà? Je suis bon? je me trompe ou j'ai raté quelque chose?
    Merci d'avance

    Bonjour,
    Je ne pense pas qu'il y ait de problème. Si tu regardes comment les boucles sont arrêtées, on envoi un message Stop ou Exit à la boucle d'acquisition puis la boucle d'enregistrement. Dans la boucle d'enregistrement, on dépile les éléments à la suite des autres, on finira donc par lire un Stop et arrêter les boucle. et dans le pire des cas, quand on quitte l'application en faisant Exit, on détruit la file d'attente, ce qui va généré une erreur qui va arrêter la boucle.
    As tu réussi a faire attendre ton application sans fin lorsque tu as voulu arrêter l'application ou c'est juste en regardant le code que tu t'es posé cette question ?
    Cordialement
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   

  • Mise à jour arbre [Labview]

    J'ai réalisé une IHM qui contien un arbre pour visualiser des données circulant sur un bus ARINC429. (comme CANalyser)
    Comme il n'y a pas de propriété pour éditer la valeur "cellule gauche" d'un arbre je suis obligé d'effacer l'arbre puis de le recréer avec les nouvelles valeurs.
    Mon problème est que si j'ai un des noeuds qui sont fermés quand il y a une mise à jour de l'IHM il me recrée mon arbre avec tous les noeuds ouverts ?
    Et je ne vois pas comment faire pour que quand il me recrée mon arbre il soit dans le même état qu'au précèdent rafraichissement
    Merci
    Résolu !
    Accéder à la solution.

    Bonjour,
    Vous pouvez éditer un élément de cette manière :
    Cordialement,
    Da Helmut
    Pièces jointes :
    ex.vi ‏9 KB

  • Problème "postgres" depuis passage à Yosemite

    MacBook Pro Mid 2012 - 8 Go RAM - 2,5 GHz Intel Core i5
    Depuis que j'ai installé Yosemite, j'ai une pop up qui n'arrête pas de s'afficher concernant "Postgres"
    Me demandant d'autoriser les connexions entrantes. Mais c'est quoi ce truc ??????
    La popup peut s'afficher 1 seconde, 5 secondes ou parfois elle reste jusqu'a ce que je la ferme...
    C'est du quasi non-stop... Quoi que je fasse cette pop up s'affiche, c'est insupportable, et inadmissible qu'il n'y est pas de solutions ou une mise a jour de la part d'Apple.
    Je vois ce truc dans le firewall. Que j'autorise ou que je n'autorise pas les connexions, c'est pareil. J'ai l'ai meme effacer du firewall.... Mais ça ne change rien !
    Je ne trouve rien a ce propos.
    Quelqu'un connait il une solution à ce problème ???

    There are several in-game problems as well. During battle, the map disappears and the top clock flickers. The menu wasn't really that bad compared to this which makes the game hardly playable.
    Is this a Lion + Intel HD issue?

  • échec d'installation de photoshop elements 12

    J'ai acheté phtoshop elements 12 par téléchargement (W7)
    Une première installation ayant échoué, je tente une deuxième installation
    Le processus commence par une désinstallation de PSE 12 qui s'arrête avec le message "specified path is empty" et l'installation ne se fait pas.
    Pouvez-vous m'aider?

    J'ai acheté phtoshop elements 12 par téléchargement (W7)
    Une première installation ayant échoué, je tente une deuxième installation
    Le processus commence par une désinstallation de PSE 12 qui s'arrête avec le message "specified path is empty" et l'installation ne se fait pas.
    Pouvez-vous m'aider?

  • Utilisation du Remplacement dans Encore CS6

    Bonjour,
    Je dois réaliser un DVD très classique et en principe simple à réaliser sur Encore CS6.
    Le montage comprend une séquence divisée en 4 chapitres.
    Le seul menu est composé de 5 boutons. Les 4 premiers  (Type chapitre) sont liés chacun à au point de chapitre correspondant. Le dernier (Type Principal)est lié directement  au montage.
    Après lecture de chaque chapitre, l’action de fin doit revenir au menu (la lecture ne doit donc pas continuer de chapitre den chapitre) .
    Par contre, le bouton lié au montage doit faire la lecture de tous les chapitres sans interruption et ne revenir au menu qu’à la fin du montage.
    Alors que j’ai déjà fait ce genre de DVD sans problème sur les versions antérieurs en utilisant le « Remplacement » , je ne parviens plus à avoir le résultat escompté.
    J’ai essayé en plaçant un Remplacement vers le menu sur chaque bouton sans toucher aux chapitres (« Action de fin  non définie »).
    Résultat la lecture des chapitres continue et le montage est lu en entier .
    J’ai essayé en  ajoutant en plus une action de fin sur chaque chapitre sauf le dernier. Résultat, la lecture s’arrête bien avec retour au menu entre chaque chapitre mais la lecture du « montage en entier »s’arrête aussi après le premier chapitre.
    J’ai essayé en gardant cette dernière action mais en supprimant le Remplacement sur les boutons.
    Résultat idem.
    J'ai essayé de suivre à la lettre deux formations d'auteurs différents...sans succès et les formateurs sont aux abonnés absents!!!! Suis-je devenu trop vieux pour comprendre ????
    Finalement, j’ai  appliqué la solution que je veux éviter,  la création d’un deuxième montage sans chapitres pour pouvoir lire l’entièreté du montage sans interruption.
    Ai-je un grave problème de mémoire ou de compréhension ou c’est "Encore CS6" qui est en cause ?
    Quelqu'un à-t-il rencontré ce genre de problème avec Encore CS6? Une solution?
    Merci d'avance pour toute info sur le sujet.

    Bonjour,
    Merci pour ton lien vers le forum du repaire. En faisant une recherche Google je n’y suis pas arrivé et je n’ai pas pensé d’aller voir.
    Je n’ai pas encore trouvé de réponse mais ceci peut intéresser d’autres personnes.
    J’ai suivi le tuto de Sébastien Gaillard
    http://www.repaire.net/adobe/tutoriaux_video__adobe/bases_pour_creer_dvd_entreprise_avec_e ncore_dvd_20050419991.html
    C’est la troisième formation que je suis très attentivement !!! Une très complète et approfondie et une plus spécifiquement sur les boutons et liens. Toutes les deux payantes et aucun des deux  formateurs ne m’a répondu :0(
    Sébastien  présente un projet aussi simple et avec les mêmes buts que  le mien. La seule différence c’est qu’il met la lecture du film sur un menu et celle des  chapitres sur un sous-menu. Il n’utilise pas le Remplacement. Le hic, c’est qu’il ne montre pas si après la lecture d’un chapitre, on revient systématiquement au sous-menu (cela ne devrait pas être le cas). Il montre l’utilisation du bouton  « Executer l’action de fin »
    Lorsque je l’utilise en pré visualisant un chapitre, je reviens bien au menu  alors que ce n’est pas le cas si je laisse le film se dérouler car dans ce cas c’est le chapitre suivant qui continue. Ceci est vrai et c’est là le problème même si j’indique sur le bouton un Remplacement vers le menu !!! 
    Dans une réponse à un autre problème, j’ai prélevé la phrase suivante qui conforte la vision des choses :
    "remplacement" sert justement à remplacer "l'action de fin" normale d'un élément (montage ou menu) ».
    L’action de fin normale d’un chapitre est de lire le chapitre suivant et dans ce cas le remplacement qui renvoie vers le menu ne semble pas fonctionner correctement sur les boutons avec la version CS6 D’Encore.
    Par contre, Il fonctionne bien sur les marques de chapitre mais dans ce cas il s’applique également à la lecture du film qui s’arrête après la lecture du premier chapitre …d’où ma « quadrature du cercle » !
    Le principe est donc bien de faire un remplacement sur les boutons des chapitres pour obliger le retour au menu en fin de chapitre alors que le bouton du "film" (sans remplacement) continue avec la fin normale, c-à-d la lecture complète, chaque chapitre commençant dès la fin du précédent.
    Voilà, je suis curieux de voir si d’autres utilisateurs d’Encore CS6 rencontrent ou non ce problème.

  • Impossible d'utiliser iPhoto qui mouline sans arrêt, une solution ?

    impossible d'utiliser iPhoto qui mouline sans arrêt, une solution ?

    Sorry but Google Translate can't make sense of "mouline" for me.

  • Mon Imac qui a 4 ans, s'arrête et redémarre de faon intempestive ; pas de régularité dans le logiciel ou le moment. Ca peut arriver n'importe quand. Ca se produit de plus en plus souvent, jusque 3 fois de suite ce matin ?

    mon Imac qui a 4 ans, s'arrête et redémarre de faon intempestive ; pas de régularité dans le logiciel ou le moment. Ca peut arriver n'importe quand. Ca se produit de plus en plus souvent, jusque 3 fois de suite ce matin ?

    mon Imac qui a 4 ans, s'arrête et redémarre de faon intempestive ; pas de régularité dans le logiciel ou le moment. Ca peut arriver n'importe quand. Ca se produit de plus en plus souvent, jusque 3 fois de suite ce matin ?

  • Menu bouton ihm

    Bonjour a tous,
    Je souhaite réaliser pour un banc de test une ihm. Etant débutant sur labview, j'ai commencé ma petite enquête qui m'a mené à ce VI: http://www.ni.com/example/31442/fr/
    Alors ravi de voir que ce VI resemble fortement à ce que je veux faire, il ne me reste plus qu'à ajouter mes fonctions pour chaque onglet.
    sauf que je me suis apercu que lorsque je lance le VI, mes fonctions (acquisition et affichage de courbe pour 1 bouton et saisi de paramètre pour l'autre bouton), ne fonctionnement que lorsque j'appuie sur le bouton du menu.
    Je souhaiterai en fait que toutes mes fonctions tournent en paralèlle et que les bouton de choix ne concernent uniquement que l'affichage.
    Quelqu'un pourrais m'éguiller sur le type de structure à choisir?
    Merci

    tu peux passer par
    Méthode Insérer un VI
    Nom court : InsérVI
    Requiert : Version de base
    Classe : Méthodes de Face-avantSecondaire
    Conseils d'utilisation : Création de propriétés et de méthodes.
    Charge un VI dans une commande face-avant secondaire sans changer l'état du VI.
    Si la face-avant du VI que vous voulez charger est ouverte ou si vous l'avez chargée dans une autre commande face-avant secondaire sur la même face-avant, LabVIEW renvoie une erreur et vous ne pouvez pas charger la face-avant dans la commande face-avant secondaire, à moins que la face-avant ne soit réentrante. De même, vous ne pouvez pas charger la face-avant d'un VI dans une instance d'application distante, ni charger des faces-avant de façon récursive.
    Après avoir utilisé cette méthode, la face-avant est en mémoire. Utilisez la fonction Fermer une référence pour fermer la référence au VI. La face-avant reste dans la commande face-avant secondaire jusqu'à ce que vous arrêtiez le VI qui contient la commande face-avant secondaire. Vous pouvez aussi utiliser la méthode Supprimer le VI pour décharger le VI de la commande face-avant secondaire.
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Problème arrêt programme

     Je me permets de vous contacter pour un problème de programme sur lequel je bute depuis une semaine. Vous trouverez en fichier le programme sous labView 2009.
    Pour résumé, ce programme fait l'acquisition de trois tensions analogiques et une entrée numérique DIO0 via un boitier USB6009 et la programmation d'une tension analogique sur la voie AO0.
    J'ai une première boucle de lecture des valeurs qui s'opère toute les 500ms
    J'ai une structure évenement "Start Process" qui me permet de tracer un graphique X,Y avec X le temps en cours et Y une valeur analogique
    Mon problème principal est le suivant:
    Lorsque le programme "Process" se termine, la seule boucle qui continue à tourner est la boucle d'acquisition des tensions et d'affichage des tensions analogiques sur des indicateurs en face avant.
    Lorsque je clique alors sur le bouton "Cancel", j'obtiens un sablier sur le PC et je n'ai plus la main sur le PC même en fermant LabView, je dois rebooter!! je n'arrive pas à voir et à isoler le problème même en phase animation de l'execution ( ampoule)? ou alors l'erreur est tellement grosse que je ne la vois pas!!
    Pouvez vous m'aider car je commence à m'arracher les cheveux
    Autre petit détail, moins important celui-là, je n'arrive pas à trouver la procédure pour effacer un graphique afin qu'il n'y en ait qu'un seul de visible sur le graphe?
    En vous remerciant d'avance...
    Attachments:
    MonProjet.ZIP ‏185 KB

    Dupliqué >> http://forums.ni.com/t5/Discussions-de-produit-de-NI/Probl%C3%A8me-arr%C3%AAt-programme-acquisition-...

  • Problème arrêt acquisitio​n sur graphique CVI

    Bonjour,
    voici mon problème :
       je fais l'acquisition de température en continue mais je souhaiterais l'arrêter aprés un certain temps
    Le problème c'est que plus je diminue mon sleep plus plus l'acquisition sur le graphique mets de tempsà s'arrêter
    voici mon programme
    #include "graphessai.h"
    #include <windows.h>
    #include <NIDAQmx.h>
    #include <formatio.h>
    #include <analysis.h>
    #include <ansi_c.h>
    #include <cvirte.h>    
    #include <userint.h>
    #define echelletc                30
    #define offsettc                -50
    #define nbpointtc                10
    #define NUM_PLOTS           20100
    #define ABS_DATE_TIME_FORMAT_STRING "%X  %B %#d, %Y"
    #define REL_DATE_TIME_FORMAT_STRING "%#M:%S.%3f"
    #define MSG_FORMAT_STRING "Current window: %s  -  %s"
    static int PanelHandle, PlotArray[NUM_PLOTS] = { 0 }, CurrentPlotIndex;
    static double StartTime;
    static void TakeSample (void);
    double tc1[10];
    double tc_mean;
    double curTime;
    TaskHandle tc1_task; 
    int main (int argc, char *argv[])
        if (InitCVIRTE (0, argv, 0) == 0)
            return -1;  /* out of memory */
        if ((PanelHandle = LoadPanel (0, "Graphessai.uir", PANEL)) < 0)
            return -1;
        DAQmxCreateTask("TC1",&tc1_task);
        DAQmxCreateAIVoltageChan (tc1_task, "PXI1Slot5/ai6", "", DAQmx_Val_RSE, 0, 10, DAQmx_Val_Volts, "");
        DisplayPanel (PanelHandle);
        RunUserInterface ();
        DiscardPanel (PanelHandle);
        return 0;
    int CVICALLBACK QuitCallback (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        switch (event)
        case EVENT_COMMIT:
            QuitUserInterface (0);
            break;
        return 0;
    static void TakeSample (void)
        double value;
        double i;
        for(i=0;i<20/0.001;i++){
                DAQmxReadAnalogF64 (tc1_task, 10, 10.0, DAQmx_Val_GroupByChannel, tc1, 10, NULL, 0);
        Mean (tc1, 10, &tc_mean);
         if (StartTime == 0.)
            StartTime = curTime;
        GetCurrentDateTime (&curTime);
        value = tc_mean * echelletc+offsettc; 
        // gPlotArray is a circular buffer; if we've looped around, discard the old plot
        if (PlotArray[CurrentPlotIndex])
            DeleteGraphPlot (PanelHandle, PANEL_GRAPH, PlotArray[CurrentPlotIndex], VAL_DELAYED_DRAW);
       PlotArray[CurrentPlotIndex] =PlotXY (PanelHandle, PANEL_GRAPH, &curTime, &value, 1, VAL_DOUBLE,
            VAL_DOUBLE, VAL_CONNECTED_POINTS, VAL_EMPTY_DIAMOND, VAL_SOLID, 1, VAL_RED);
                  Sleep (1);   
            if (++CurrentPlotIndex == NUM_PLOTS)
            CurrentPlotIndex = 0;
    int CVICALLBACK START (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        switch (event)
            case EVENT_COMMIT:
             TakeSample ();
                break;
        return 0;
    j'aimerais que l'acquisition s'arrête au bout de 20 SEcondes (juste pour l'exemple plus tard il faudra que je l'arrête au bout de 24 h)) mais mon programme s'arrête environ 25 minutes plus tard
    si quelqu'un à une idée elle serait la bienvenue
    Cordialement

    Bonjour,
    Je n'utilise pas DAQmx pour mes applications du coup je ne l'ai pas installé et je n'ai pas accés à l'aide. Cependant ces fonctionalités étaient déjà disponibles dans le driver précédent (NIDAQ). D'après les quelques documents présent sur le site de NI, la création de mémoire tampon se fait certainement à l'initialisation de la tache d'acquisition (fonction DAQmxCfgSampClkTiming je pense). Le lancement de la tache se fera avec DAQmxStartTask et l'arret avec DAQmxStopTask puis DAQmxClearTask. Pour la lecture des données et le rafraichissement du graphe, il est possible de créer un évenement qui sera déclenché tout les N échantillons acquis (fonction DAQmxRegisterEveryNSamplesEvent). C'est dans la fonction associée a cet évènement qu'il faudra utiliser la fonction "xxxRead" pour lire vos échantillons et les afficher. A vous de dimensionner la mémoire tampon et le nombre d'échantillons qui provoquent l'évènement afin d'obtenir un rafraichissement du graphe plusieurs fois par seconde. J'espère que cela va vous aider ... sans carte d'acquisition et sans aide sur l'API de DAQmx je ne peux pas vous en dire beaucoup plus !  Fouillez dans les exemples de code, il y a certainement un exemple d'acquisition avec mémoire tampon (Buffered acquisition) et un autre sur les évènements DAQmx.
    cordialement,
    Stéphane        
    Labwindows/CVI user since version 4.0

  • Problème arrêt programme acquisition USB6009

    Je me permets de vous contacter pour un problème de programme sur lequel je bute depuis une semaine. Vous trouverez en fichier le programme sous labView 2009.
    Pour résumé, ce programme fait l'acquisition de trois tensions analogiques et une entrée numérique DIO0 via un boitier USB6009 et la programmation d'une tension analogique sur la voie AO0.
    J'ai une première boucle de lecture des valeurs qui s'opère toute les 500ms
    J'ai une structure évenement "Start Process" qui me permet de tracer un graphique X,Y avec X le temps en cours et Y une valeur analogique
    Mon problème principal est le suivant:
    Lorsque le programme "Process" se termine, la seule boucle qui continue à tourner est la boucle d'acquisition des tensions et d'affichage des tensions analogiques sur des indicateurs en face avant.
    Lorsque je clique alors sur le bouton "Cancel", j'obtiens un sablier sur le PC et je n'ai plus la main sur le PC même en fermant LabView, je dois rebooter!! je n'arrive pas à voir et à isoler le problème même en phase animation de l'execution ( ampoule)? ou alors l'erreur est tellement grosse que je ne la vois pas!!
    Pouvez vous m'aider car je commence à m'arracher les cheveux
    Autre petit détail, moins important celui-là, je n'arrive pas à trouver la procédure pour effacer un graphique afin qu'il n'y en ait qu'un seul de visible sur le graphe?
    En vous remerciant d'avance
    Pièces jointes :
    MonProjet.ZIP ‏185 KB

    Première chose, quand tu remets ton booléen à la fin du programme c'est mieux de le faire en début de programme, au cas ou tu ai un problème lors d'une éxécution, sinon tu as un bug aussi à l'exécution suivante.
    Pourquoi n'utiliserais tu pas une occurence pour synchroniser tes boucles?
    Sinon d'un point d evue graphique tu pourrais améliorer ton programme afin qu'il soit plus facile à maintenir (commentaires, sous VI, label sur les cables, merger les erreurs, j'aurais aussi récupéré le status des erreurs pour la condition d'arrêt avec un ou pour s'ajouiter à ton bouton stop)
    Rodéric L
    Certified LabVIEW Architect

Maybe you are looking for