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

Similar Messages

  • 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 acquisition sur graphique CVI

    bonjour,
    je refais ce poste car je viens de m'apercevoir que je l'avais mis dans le forum anglais
      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
     Lounette m'a conseillé d'utiliser des mémoires tampons mais je n'ai aucune idée de comment ça marche
    Cordialement

    Bonjour,
    Je pense que le plus "simple" serait d'utiliser les threads.
    En effet tu pourrais soit créer un seul thread avec l'acquisition via DAQmx et l'affichage. Soit créer deux threads un pour l'acquisition qui envoyera ces données à l'autre thread via une file d'attente (Thread Safe Queue). On parle souvent d'architecture producteur / consommateur pour les problèmes LabVIEW.
    Dans tout les cas tu pourras facilement arrêter un thread via les fonctions adéquates comme CmtTerminateThreadPoolThread . Sans avoir de soucis pour attendre l'arrêter de la fonction.
    Je te conseil cet article : http://zone.ni.com/devzone/cda/tut/p/id/3663#toc3
    Cela demande plus de temps de développement mais ça peut être utile.
    Cordialement,
    Da Helmut

  • Problème arrêt boucle esclave

    Bonjour,
    Je rencontre un problème pour l'arrêt de ma boucle esclave. Pourtant, j'ai 3 boucles while avec un booléen et des varaibles locales pour arrêter ces boucles.
    Néanmoins, dans une boucle esclave, j'ai une tempo, et celle-ci doit être terminée pour que mon programme s'arrête.
    Or, je cherche à arrêter mon programme instantanément ou presque ( quelques secondes au maximum ).
    Ci-joint une image pour comprendre mon problème et mon VI.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Mode _Auto_Cluster.vi ‏151 KB
    Erreur_arrêt.JPG ‏142 KB

    Je comprends mieux votre explication comme cela, oui cela pourrait fonctionner mais dans mon VI, ce n'est pas un temps d'attente de 60 secondes.
    Le 60 sert à convertir en min, le temps d'attente correspond donc au temps du palier (temporisation) multiplié par le 60.
    J'ai testé avec une structure event mais le programme se bloque.
    Donc, soit il faudrait un nouveau moyen pour la temporisation ou un moyen d'arrêter mon case même si l'attente est en cours d'execution.
    Cependant, je n'ai pas trop d'idée là-dessus..
    Pièces jointes :
    Erreur_arrêt.JPG ‏142 KB

  • Problème enregistrement et erreur 1073807339

    Bonjour,
    Je cherche à suivre l'évolution de la résistance (j’impose un courant, je récupère une tension puis U=RI) et de la température de mon échantillon au cours du temps, grâce à deux équipements Keithley connectés par GPIB.
    Pour le suivi de la résistance, l’utilisateur détermine le pas de temps d’enregistrement en entrée. Pour le suivi de la température, l’utilisateur définit un pas de temps d’enregistrement et un seuil de détection de variation (typiquement 1 %).
    Sur la face avant se trouvent quelques indicateurs pour déterminer les causes de l’arrêt du programme (ne sont pas des problèmes LabView) ou les potentielles erreurs LabView.
    Je rencontre deux problèmes avec mon programme :
    1/ parfois, l’enregistrement de la résistance s’arrête (mais le programme continue d'enregistrer la température). Il semblerait que ce problème arrive lorsque je consulte ou copie le fichier texte dans lequel sont enregistrées les données  (pas à chaque fois).
    2/ si j’utilise j’utilise excel ou que j’effectue diverses autres actions sur l’ordinateur alors que le programme LabView est lancé, le message d’erreur suivant s’affiche : « Error 1073807339 occured at VISA wait an event for RQS.VI », et le programme ne tourne alors plus correctement (problème avec le Keithley me permettant de suivre l’évolution de la température).
    Si vous pouviez m’aider à comprendre d’où viennent ces problèmes (surtout le premier), ça me serait bien utile. Vous trouverez en PJ le programme LabView et différents sous-VI. Je n’ai mis que peu d’explications dans le programme, donc si besoin je peux apporter des compléments d’informations.
    Merci de votre aide,
    Simon
    Pièces jointes :
    Conditions enregistrement.vi ‏11 KB
    calcul pas de temps-M2.vi ‏10 KB
    Pgm principal.vi ‏82 KB

    réponse rapide avant d'ouvrir ton code :
    Excel n'est pas partageur, si tu ouvres un fichier avec Excel, il  ne laisse pas d'autres appli accèder à ce fichier, en tout cas c'était vrai avant, peut être queles versions récente sont plus souples, mais pas sûr.
    après avoir vu le code :
    je pense que de lire le fichier de résultat pour voir la dernière valeur n'est pas une super idée, tu pourrais conserver cette valeur dans un shift register pour éviter les accès au fichier.
    ensuite, ouvrir ton fichier avec une autre appli pendant que ton soft continu d'y ajouter des valeurs est un peu risqué, en fait ça va dépendre de l'appli que tu utilises, selon comment elle fonctionne tu auras différents comportement, si tu prends Notepad++ tu n'auras pas de soucis, si tu prends Excel, là c'est plus problématique...
    il y a plusieurs option, avant d'écrire ton fichier, t'assurer qu'il est "libre" en récupérant l'erreur à la sortie d'un "open file", c'est moyen parce que tu dois ensuite stocker les valeurs den mémopire jusqu'à ce que le fichier soit libre..
    autre option, utiliser des TDMS (fichiers qui permettent les accès conccurents), il existe aussi un Addin pour qu'Excel puisse ouvrir ces fichiers.
    Il y a surement d'autre option auxquelles je n'ai pas pensé.
    Bonne chance
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • 9401 sur cDAQ9178 acquisition de 2 codeurs

    Bonjour,
    J'ai un problème pour faire deux acquisitions bufferisées sur une carte NI9401 montée dans un cDAQ9178.
    Si j'essaye de faire une tache (dans MAX) avec ctr0 et ctr1 de la 9401, j'ai un message qui me dit que je ne peux avoir seulement un compteur par tache.
    Si je fais deux taches, à l'exécution de LabVIEW j'ai le message:
    L'erreur -201133 s'est produite à : DAQmx Start Task.vi:10
    Raisons possibles :
    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.
    Si possible, utilisez DAQmx - Contrôler une tâche pour réserver toutes les tâches qui utilisent ce périphérique avant de programmer ces tâches. Sinon, libérez ou déprogrammez l'autre tâche ou débranchez l'autre connexion avant d'essayer de configurer le périphérique en entrée ou sortie.
    Périphérique: E_COMPTAGE
    Port numérique: 0
    Lignes: 4, 6
    Nom de tâche : _unnamedTask<2C> 
    En conclusion: Peut-on faire une acquisition continue et simultanée de deux codeurs sur la même 9401.
    Merci pour votre aide. 
    Solved!
    Go to Solution.

    Translation from french 
    I have a problem to make two acquisitions buffered on a card mounted in a cDAQ9178 NI9401.
    If I try to do a task (in MAX) with ctr0 and ctr1 of 9401, I have a message that says I can have only one meter per spot.
    If I do two tasks, implementation of LabVIEW I have the message:
    Error -201133 occurred at: DAQmx Start Task.vi: 10
    Possible reasons:
    The
    device can be configured as input or output lines or terminals
    connected to it are used by another task or another connection. This
    requires that all lines and all terminals are temporarily reserved for
    communication, which interferes with the other task or login.
    If possible, use DAQmx - Securing a job to book all tasks that use this device before programming these tasks. Otherwise,
    release or deprogram the other task or disconnect the other connection
    before you try to configure the device input or output.
    Device: E_COMPTAGE
    Digital Port: 0
    Lines: 4, 6
    Task Name: _unnamedTask <2C>
    In conclusion: Can we make a continuous and simultaneous acquisition of two coders on the same 9401.
    Thank you for your help

  • Acquisition de donn�e num�rique with pic

    salut;
    hi;
    i have a problème with sending data to pic , i wont to send numeric data from pc to pic . i will put my program of pic and the programm of labview , please healp me .
    #include<16F877.h>
    #include<stdlib.h>
    #use delay(clock = 4000000)
    #fuses HS,NOWDT,PUT,NOPROTECT, NOLVP
    #use rs232(baud = 9600, xmit = pin_c6, rcv = pin_c7)
    boolean rxf=0;  //initialisation de bit de flag
    #int_rda             // intrruption CAN --> (RS232 receive data available)
    void rda();
    void Init()            //procedure d'initialisation des ports de convertisseur et le canal d'acquisition du signal
       setup_adc_ports(A_ANALOG);   //tous les entrés de port "A" sont analogiques
       setup_adc(adc_clock_div_32);//initialisation du clock interne de convertisseur
       set_adc_channel(0);         // initialisation de la voie d'acquisition
       enable_interrupts(int_rda); //activer l'interruption materielle CAN-->(RS232 receive data available)
       enable_interrupts(global);  //activer l'interruption globale-->adc_off
       SET_TRIS_B( 0x00 );
    void Read_tx232()
       unsigned int x;
       x= read_adc();           //X reçoit le résulat de conv
       putc(x);                                 //**PIC-PC
        rxf =1;
    void write_rx232()
    char  source;
    unsigned int transmit;
    source = getc();
    transmit=source-48 //conversion de char en int
    output_b(transmit);
    rxf =1;
    void main()
    OUTPUT_B(0x00);
       Init();
       while(1)
          Read_tx232();
          rxf = 0;
          write_rx232();
          delay_ms( (500) );
    mouka
    Attachments:
    transmission série.c ‏2 KB
    FINALE.vi ‏66 KB
    programme sous labview.JPG ‏138 KB

    salut,
    j'ai un problème de communication entre mon pic et le logiciel labview
    en faite j'aime envoyer des commandes de labview vers le pic .
    la commande sera entier entre 0 et 255 , j'ai fait ma conversion en char et je l(ai envoyer vers le pic comme l'indique la figure si jointe .
    j'ai vérifier la présence de signal sur le pin RX du pic , " le signal existe" mais qu'and je le convertie en tension (a travers un dac 0808 et qui marche , le pic aussi il est en bonne état) j'obtient une tension presque nulle, très proche de zéro.
    donc mes questions sont :
    1-qu'est ce que c'est le    "   *IDN?\n    "    trouver dans le max ( mesure and automation) de labview?
    2-est ce que le premier caractère émit par labview est par défaut \n ou ça dépend de l'utilisateur ,
        parceque le nombre correspondant à \n est 13 et avec un peut de calcul (13*5)/256=0.13 justifie l'absence de la tension au bord de mon dac.
    3-est_ce_qu il'y de problème dans mon programme (labview)
    4-c'est quoi *IDN?
    j'éspaire avoir de l'aide parceque c'est vraimon urgent.
    et merci pour tous.
    remarque 5v est l'alimentration du pic.
    mouka
    Attachments:
    FINALE.vi ‏59 KB

  • Comment déclencher le début et la fin d'une acquisition (DIO-32-HS) ?

    Bonjour,
    Je dispose de DAQ traditionnel, de CVI 6.0 et d'une carte DIO-32-HS (ainsi que d'une PCI-6602 générant le signal d'horloge à la DIO-32-HS pour effectuer l'acquisition).
    1) Concernant la carte DIO-32-HS : la broche StopTrig est-elle utilisée à la fois pour démarrer l'acquisition, et pour l'arrêter ?
    2) Si la réponse à la question 1 est oui : doit-on spécifier un front en guise de trigger (montant par exemple), ou bien un niveau logique (par exemple, état 1 pour démarrer l'acquisition, et état 0 pour l'arrêter) ?
    3) Si la réponse à la question 1 est non (si la broche StopTrig permet uniquement d'arrêter l'acquisition) : quelle broche doit-on utiliser si l'on désire déclencher le début de l'acquisition sur un front montant par exemple ?
    4)Concernant la carte PCI-6602 : peut-on changer l'état d'une sortie numérique sur un front d'horloge (fourni par un compteur de la carte par exemple) ? Si oui, comment faire ?
    Merci d'avance pour toute aide.
    Julien

    Bonjour Krsone,
    Vous avez tout à fait raison concernant l'utilisation des signaux ACK et STOPTRIG.
    Je vous conseille d'ailleurs, pour avoir plus d'information, de bien lire les pages 2-9 et 2-13 du manuel de la carte que vous pouvez télécharger dans le lien ci-dessous :
    http://digital.ni.com/manuals.nsf/websearch/3ED785B6332E5C3186256F9400812729?opendocument
    Maintenant, pour l'utilisation de la fonction "DIG_Trigger_Config", vous pouvez trouver une aide détaillée sur cette fonction en allant dans :
    "Démarrer>>Tous les Programmes>>National Instruments>>NI-DAQ" et en sélectionnant "NI-DAQ Function Reference Help"
    Dans l'onglet "Rechercher" tapez le nom de la fonction.
    J'espère que cela vous aidera à avancer dans votre projet.
    Cordialement,
    Sanaa T
    National Instruments France
    Sanaa T.
    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;}
    >> http://www.nidays.fr/images/081110_ban_nidays09_468X60.gif

  • Problème DAQmx buffer + convertion

    Bonjour,
    Alors voila mon problème:
    Je fais l'acquisition d'accéléromètres par le module 9234 avec un compactDAQ 9174. Je veux faire une acquisition avec des échantillons en continue. J'ai un traitement du signal pour obtenir un spectre en dB ou je fais une moyenne de 12 spectres à afficher.
    Lorsque je suis en continue, je ne peux faire le contrôle qu'une fois car après il me marque problème de buffer, alors je voudrais savoir comment réinitialiser le buffer avant chaque contrôle??? ou alors avoir une aide pour ce sujet!!!
    De plus, je souhaite générer le code labview au lieu du vi express pour pouvoir intéragir avec la sensibilité et les paramètres d'acquisition mais là aussi j'ai un problème, comme vous pouvez le voir sur mon image jointe, l'assistantDAQ est converti correctement seulement quand je lance le contrôle il ne se passe rien, je pense qu'il ya un problème avec la boucle!!!
    Donc voilà en gros, je laisse une image et les vi a disposition, et le but principale est que mon contrôle des 12 spectres moyenné soient plus rapide en passant par l'acquisition continue et en vidant le buffer, qu'en passant par l'acquisition de N echantillons où la ça marche très bien mais le temps est beaucoup trop long!!
    Merci et n'hésitez pas à me contacter pour plus d'inof
    Arnaud
    Pièces jointes :
    Convertion DAQmx.jpg ‏233 KB
    Acquisition signal Ambiance.zip ‏233 KB

    Je viens de corriger un problème, en faite quand je générais le code, et que je lançais le contrôle, je ne sortais jamais de la boucle, du coup j'ai mis une constante a vrai et ça marche!!
    Cependant, j'ai toujours le même problème à savoir la rapidité, quand je suis avec le vi express, mon traitement des 12 spectres se fait en 400ms et dès que je génére le code, la ça explose et ça met 2s à faire le meme travail!!!
    Alors faudrait que quelqu'un m'explique pourquoi, parce que je suis perdu là!!!
    Merci

  • Problème PID

    Bonjour, 
    J'ai un problème avec un programme Labview type ConpactRIO. Je travaille sous 3 cibles IHM (PC), RT, FPGA.
    Dans ma cible RT, j'utilise 6 PID.
    Malheuresement quand je lance mon programme, les entrées/sorties automate se bloquent à l'activation de la structure PID.
    Est ce que vous auriez une idée du type de problème rencontré, et d'une solution pour contourner le problème.
    J'avais pensé à transférer les boucles PID sur le cible IHM(PC).
    Mais le plus important à l'heure actuelle est que je puisse identifier qu'elle est le problème.
    Merci d'avance
    Simon

    Hi Simaoniko,
    You are on English speeaking forum. Please ask your question in English please or post it in French forum.
    http://forums.ni.com/t5/Discussions-au-sujet-de-NI/bd-p/4171
    Thanks
    Paolo_P
    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;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Pb d'acquisition et d'analyse de signaux

    Bonjour,
    J'utilise labview afin d'acquérir deux signaux. Lors de l'acquisition, de manière aléatoire, il arrive que des bruits viennent perturber le signal acquis (bruits de + ou - 5V pour un signal variant de -3 à 3V) alors que lorsque je vérifie ces voies sur MAX, les signaux sont clairs. Il s'agit de deux signaux acquis à partir de jauges d'extensiométrie passant par deux ponts d'extensiométrie séparés. Pensez-vous que ce problème provienne de l'acquisition ou du traitement? Faut-il mettre un filtre spécial ou une autre fonctionnalité de LabView?
    De plus, j'ai essayé de visualiser ces deux signaux sur une seule courbe et l'outil de traitement (VI-express statisques) ne me permet pas de traiter ces deux signaux de faire une c
    omparaison de celles-ci séparemment. En effet, je demande les valeurs maximum et minimum et leur temps respectifs et le vi-express ne me donne les valeurs que pour une seule courbe. Pourriez-vous m'éclairer sur ce sujet? S'agit-il du vi-express qui n'est pas adapté à ces opérations?
    D'avance merci
    Guillaume Valentin

    Bonjour,
    J'utilise labview afin d'acquérir deux signaux. Lors de l'acquisition, de manière aléatoire, il arrive que des bruits viennent perturber le signal acquis (bruits de + ou - 5V pour un signal variant de -3 à 3V) alors que lorsque je vérifie ces voies sur MAX, les signaux sont clairs. Il s'agit de deux signaux acquis à partir de jauges d'extensiométrie passant par deux ponts d'extensiométrie séparés. Pensez-vous que ce problème provienne de l'acquisition ou du traitement? Faut-il mettre un filtre spécial ou une autre fonctionnalité de LabView?
    De plus, j'ai essayé de visualiser ces deux signaux sur une seule courbe et l'outil de traitement (VI-express statisques) ne me permet pas de traiter ces deux signaux de faire une c
    omparaison de celles-ci séparemment. En effet, je demande les valeurs maximum et minimum et leur temps respectifs et le vi-express ne me donne les valeurs que pour une seule courbe. Pourriez-vous m'éclairer sur ce sujet? S'agit-il du vi-express qui n'est pas adapté à ces opérations?
    D'avance merci
    Guillaume Valentin

  • Erreur de timeout sur Visa Write

    Bonjour,
    Je suis étudiant en énergétique 4e année et je réalise dans le cadre d'un stage une méthode de mesure de débit à travers une porte à l'aide de capteurs à fil chaud et de deux autres types de capteurs.
    J'utilise dans labview un programme dont le visuel+fichier est en pièce jointe.
    Sur le principe, le programme (assez complexe car le signal est traité par la suite) fonctionne de la manière suivante : j'utilise pour acquérir les signaux donnés par le multimètre agilent 34970A trois ensembles "visa write puis visa read" pour l'acquisition successive de signaux de tension, d'intensité, puis de tension (3 types de capteurs différents) avec timeout de 20 seconde, le tout dans une boucle while pour des acquisitions de plusieurs centaines de points, avec une série de valeurs toute les 5 secondes. 
    Aléatoirement, au bout d'un certain nombre de réalisation de la boucle (non régulier, parfois 1H, parfois 10 minutes, parfois 6h), la boucle s'arrête, et j'obtiens l'erreur suivante :
    L'erreur -1073807339 s'est produite à : VISA Read dans VitesseTemperatureRTDDirection2-essais10bon_moymobil.vi
     VISA:  (Hex 0xBFFF0015) Le délai d'attente (timeout) a expiré avant que l'opération ne soit achevée.
     Pourtant, le temps de réponse de mes capteur est inférieur à la seconde. ce sont des capteurs à fil chaud
    Je pense qu'il peut subsister un problème dans mon programme labview sur la méthode d'acquisition de ce multimètre. L'erreur peut également venir du multimètre ou des capteurs (faux contact)
    J'ai essayé d'être le plus claire possible, néanmoins n'hésitez pas à demander des explications 
    Merci d'avance pour vos précieuses réponses 
    Attachments:
    VitesseTemperatureRTDDirection2- essais10bon_optimize_avecsigne050510.vi ‏155 KB
    erreurprogramme.jpg ‏164 KB

    Pourquoi vous employez le "Read" dans la premiere commande de VISA, et "Init-Fetc" dans le prochain VISA?  Essai utilisant le "Read" tout pars tout.  Si ceci ne fixe pas le probleme, changez du "XON-XOFF" au aucun handshaking.  Temps au temps, les "binary bits" (je ne savez pas les mots en Francais) resemble XOFF.  J'espere que ceci vous aide.
    - tbob
    Inventor of the WORM Global

  • "Adobe encore a cessé de fonctionner" (Adobe Encore has stopped working)

    English version below
    Bonjour,
    J'ai un problème depuis que j'ai installé Adobe Premiere Pro CS6 et qu'Adobe Encore CS6 a été installé en même temps.
    Voilà en fait Adobe Premiere Pro ne reconnaît pas ma carte graphique (là n'est pas le souci, je savais que je n'arriverai sûrement pas à démarrer le programme avec mon laptop), mais j'ai aussi un problème assez incompréhensible avec Adobe Encore.
    Que je le lance normalement ou en tant qu'administrateur, Encore se lance en ~5 secondes, une fenêtre apparaît en surimpression qui me propose d'ouvrir un document, de créer un nouveau document ou de "m'enquérir" des nouveautés du logiciel. Jusque là aucun souci le logiciel semble stable.
    Mais dès que je clique sur nouveau , l'écran se grise et apparaît la tant redoutée boîte de dialogue "Adobe Encore a cessé de fonctionner", ça me dit que Windows essaye de résoudre le problème puis le programme s'arrête. Sans message supplémentaire de Windows ni rien. J'ai essayé de redémarrer, de supprimer le cache du logiciel et de windows, de lancer en admin, ... rien n'y fait.
    En espérant que quelqu'un pourra un peu m'aider là dessus car je perd patience, merci d'avance !
    Hi everyone,
    I've had an issue since I installed Premiere Pro CS6 and Encore CS6 on my laptop.
    Premiere Pro won't work, which is no surprise given my lame GPU, but Encore won't work.
    In fact, when I launch it, Encore lauches in about 5 seconds and then it opens, a window pops up with 3 options : create a new file or project (cant remember the name), open a file or check the news related to Encore.
    But Encore wont let me create a file : it crashes whenever I try and since I have no .enc file on my computer (first time user), I can't check the 'open file' option. The third choice does nothing but open a tab with adobe website on Google Chrome.
    Please help in any way you can, I'm running out of patience here and don't know what to do !
    Tristan

    Premiere Pro won't work, which is no surprise given my lame GPU,
    This must be fixed.  The GPU only affects playback, not whether the program works.
    Encore wont let me create a file : it crashes whenever I try
    Many possibilities.  Please answer the questions that you'll find at the link below:
    Adobe Forums: FAQ: What information should I provide when asking a question on this forum?
    Welcome to the forum!
    Jeff

  • DAQmxWaitU​ntilTaskDo​ne error 200621

    Bonjour
    Voci mon probleme, je souhaite générer un signal en sortie d'une carte d'acquisition et arreter la tache à la fin de la génération du signal. pour cela je creer ma tache, et la configure, puis je la start, actuellement je mets un delai entre le start et le stop de ma tache. pour qu'elle est le temps de s'effectuer.
    j'ai un tableau de 80 000 points echantillonné a 100khertz sur 2 voies ( soit 40 000 points par voie, pour un temps de 0.4s)
    si je met un delais plus long que ma tache(0.4s et plus), labwindows me renvoie l'erreur -200621 Onboard device memory underflow.
    si je mets un delais plus cours( inferieur a 0.4s), la tache s'execute sans probleme mais coupe le signal a la fin du delais ( ce qui est normal).
    J'ai aussi utilisé la fonction DAQmxWaitUntilTaskDone, et je me retrouve avec la meme erreur .
    en faisant: Configuration tache
                    Start tache
                    DAQmxWaitUntilTaskDone
                    stop tache
    Ma question est la suivant, comment puis je faire pour eviter de mettre des délais qui me "mange" une partie de ma génération de signal, et en meme temps eviter les erreurs?
    Je vous remercie
    cordialement

    Bonjour Julien_B,
    Serait-il possible d'avoir le VI en question?
    Il serait plus facile de trouver une réponse adaptée à ton problème avec le programme.
    En attendant as-tu regardé les exemples LabVIEW et plus particulièrement l'exemple "Voltage - Finite Output.vi" ?
    Dans l'attente de ton retour,
    Bonne journée,
    Valentin
    Valentin
    Certified TestStand Architect
    Certified LabVIEW 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;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

Maybe you are looking for

  • I just bought a macbook pro which worked amazingly the first few days. But now it runs worse than my old computers. How can I fix this?

    I've barely had it for a week and its starting to run slow. Wepages take forever to load and its impossible top watch any videos online. I am connected wirelessly. My other much older laptop is working fine on this connection and for a few days my Ma

  • Can we pass J2EE security context to a xdp form?

    I am doing a J2ee application developement that a user will logon to the application and open the form,fill it and press submit button to call a web service. The form submit button is pointing to a web service that needs security authentication such

  • Error message when trying to import Quicktime movies

    All of the sudden, I'm getting this weird error message when trying to import various Quicktime movies. I've never seen this message before: File Error: 1 file(s) recognized, 0 access denied, 1 unknown Any thoughts why this might be happening? Any in

  • Problem in using now () in mysql 5.0

    Hi, I'm using the Mysql 5.0 the now() date type is working some times and some times not working it is showing error Registration.java:62: cannot find symbol symbol : method now() location: class Registration pStmt.setDate(10,now()); ^ 1 error * my c

  • Alv grid download

    Dear experts,     I my alv grid report, while i try to download the report in excel file some data is coming some other are missing. can anyone give me solution to solve this thanks in advance karthik