Création d'une FIFO à plusieurs source d'entrée

Bonjour à tous,
J'ai un VI qui permet de communiqué avec une machine : 5 signaux analogique sont piloté en face avant par l'utilisateur. Ces signaux sont émis vers une machine qui y répond. Il y a donc génération et acquisition acquisition de signaux. Le tout est inclu dans une boucle While temporisée à 100 ms. 
Les requêtes et réponses sont enregistrées dans dans un fichier.
Or il se peut que la machine envoie des réponses dont la fréquence est plus rapide que 10Hz (1/100ms). Pour pouvoir gérer l'arrivé de plusieurs réponse dans une même itération de boucle je voudrais utilisé une FIFO.
Ne maitrisant pas très bien les FIFO sur labview, je n'arrive pas à faire en sorte que ma FIFO ait plusieurs sources d'info. Je suis sûr que c'est un détail tout bête qui m'échappe.
Quelqu'un peut-il m'aider?
Merci.
Cordialement,
Luc

Bonjour,
Afin de pouvoir vous aider plus efficacement, pouvez-vous me donner un peu plus de détails sur votre système et votre projet?
Vous est-il possible de poster vos différents Vis afin que l'on puisse comprendre votre problème plus facilement et vous aider.
Cordialement,
Yann C.
France

Similar Messages

  • Mélange de données dans une FIFO ?

    Bonjour à tous,
    je me retrouve confronter à un problème qui après une journée de recherche reste un mystère pour moi...
    Voilà le tous:
    Pour commencer je récupère des valeurs depuis trois entrée analogique d'une carte 9222 du coté FPGA, et les assemble dans un tableau pour les transférer via une FIFO:
    Dans l'indicateur du tableau, je vois que les données sont bien rangées {Ic,Uc,Cw}.
    Je récupère donc ensuite ces données du coté RT:
    Et là, surprise !!!! Toutes les données sont dans le désordre... et de manière aléatoire, sinon c'est pas drole...
    Sachant que si elles sont rangées correctement je les récupère à l'aide de la fonction "Décimer un tableau 1D".
    Quelqu'un aurait-il une solution ou se serait déjà confronter au problème ?
    Cordialement,
    Nathan
    Résolu !
    Accéder à la solution.

    Si on prend le sens FPGA->Host, les données seront acheminées vers le buffer côté Hôte dès qu'il y aura de la place (par défaut le buffer est de 10000 éléments, reconfigurable). Le but est donc de lire la FIFO jusqu'à ce qu'il n'y ait plus rien, sachant qu'on n'écrit pas côté FPGA. On peut aussi vider la FIFO FPGA avec un FIFO Flush (dans le code FPGA). Les FIFOs FPGA sont aussi vidées lorsque le FPGA fait un reset, typiquement lorsque qu'on appelle la fonction Close FPGA Reference ou par appel explicit du noeud de méthode Reset côté Hôte... 
    Bref, il existe plusieurs méthodes, à adapter en fonction de l'application
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Comment fermer photoshop cc après la création d'une affiche format A2?

    Bonjour,
    Je n'arrive pas à sauvegarder et fermer Photoshop CC après la création d'une affiche format A2 (420/594 résolution 600 dpi)

    You have not provided enough information, it seems.
    What happens exactly (error message, freeze, …), what is the exact version, OS, …?
    Please read these and proceed accordingly:
    http://forums.adobe.com/docs/DOC-2325
    http://blogs.adobe.com/crawlspace/2012/07/photoshop-basic-troubleshooting-steps-to-fix-mos t-issues.html

  • Pb de création d'une première connexion

    Bonjour,
    J'ai installé Oracle (déjà configuré pour redhat de linux), et j'ai installé par la suite sqldevbeloper, j'ai 2 problèmes:
    1 - Le bouton "connexion" n'apparait pas dans l'interface, parcontre j'ai le bouton "tester"
    2 - pour créer une nouvelle connexion j'ai saisi les informations ncessaires mais lorsque j'appuie sur le bouton "tester", le message d'erreur s'affiche:
    "The Network adapter could not establish the connection"
    Ci-dessous les informations saisies pour la connexion:
    Nom d'utilisateur: SYS
    Mot de passe : mot de passe d'oracle
    Type de connexion: de base
    Rôle : SYSDBA
    Nom d'hôte : localhost
    Port : 1521
    SID: xe
    Quelqu'un peut m'aider sur le sujet?
    Merci

    Hello,
    I installed Oracle (already configured for redhat linux), and I installed the following sqldevbeloper I have 2 problems:
    1 - The "Connect" button does not appear in the interface, but the button "test" exists
    2 - to create a new connection I took the necessary information, but when I press the "test" button, the error message is displayed:
    "The Network adapter Could not Establish the connection"
    Below the information entered for the connection:
    Username: SYS
    Password: password of oracle
    Connection Type: Base
    Role: SYSDBA
    Host Name: localhost
    Port: 1521
    SID: xe
    Can someone help me on this?
    thank you

  • Création d'une matrice

    Bonjour,
    Je travaille sous LV 8.2. 
    Je souhaite créer une matrice carrée S qui est la transformée inverse d'une multiplication de deux fonctions H et w.
    w est un matrice 1x0
    H est une matrice 1x0
    S se définit comme ca:
    J'utilise une boucle for pour  f allant de 1 à M
    S = ifft (H(f+M/2:f+M/2 +M-1) x w)
    H(f+M/2:f+M/2 +M-1) veut dire que je prend un intervalle de la fonction H qui change chaque fois en fonction de la boucle.
    Au final je devrais obtenir une matrice S de dimension MxM
    Or j'obtiens seulement une matrice à 1 dimension...
    Quelle est mon erreur?
    Merci 
    Pièces jointes :
    test3.vi ‏33 KB

    Bonjour,
    pourquoi ne pas faire ceci ?
    Cordialement,
    V-F

  • Executable d'une application à plusieurs vi

    Bonjour,
    J'ai une application à trois VIs : le programme principale qui va lancer les deux autres et les piloter (main), le vi qui fait les acquisitions (ACQ), et un autre qui les enregistre (LOG).
    Mon application fonctionne très bien en mode édition mais j'ai un problème lorque je construit le .EXE, j'ai mon vi acquisition qui ne se lance pas et je comprend vraiment pas pourquoi, j'ai pourtant bien placé mes VIs ACQ et LOG dans la catégorie "toujours inclus" ...
    Je suis un peu perdu là, es ce que quelqu'un a déjà eu ce problème ?
    Merci d'avance
    Résolu !
    Accéder à la solution.

    Bonjour David,
    Je comprends mieux votre problème.
    Je vous invite à essayer la solution de Michael.
    Si cela ne fonctionne pas:
    Je souhaiterai vous poser quelques questions:
    - Avez-vous fait tout votre développent sous LabVIEW 2012 ou avez-vous utilisé une version antérieur à un moment.
    - Est-ce que un SubVI (sur 2) se lance ou aucun des deux ?
    - Comment faites-vous l'appel de vos fonctions ? Pouvez vous joindre le main à votre post?
    Ce qu'on peut essayer:
    -Pouvez vous inclure vos subVI dans un répertoire lors de votre développement (dans l’explorateur de projet, utiliser le même répertoire), vous assurer que cela fonctionne, et ajouter tout le répertoire dans "Toujours inclus" et non que les .vi.
    Pouvez-vous lire ces documents: Il y a des infos sur les appels dynamiques, comment imposer un chemin pour les SubVIs à son exécutable et comment créer un .LIB en incluant tous les VIs utilisés.
    http://www.ni.com/tutorial/3929/en/
    http://digital.ni.com/public.nsf/websearch/3F27220C34DDA65386256F9000771289?OpenDocument
    http://digital.ni.com/public.nsf/allkb/B48DF302E7A89E6686256DB1005AF97E?OpenDocument
    Cordialement,
    Jovan N. - Application Engineering

  • Création d'une échelle Daqmx

    Bonjour,
    Je fait l'acquisition d'une mesure analogique (débimètre) mais je dois modifier l'échelle. A l'entrée je reçoit entre 1 et 5v et je voudrai faire correspondre 0 à 300. En utilisant l'assistant daq (échelle personnaliser) sa fonctionne comme il faut mais si je veut utiliser créer échelle daq comment cela fonctionne ? En fet je sais pas ou l'implanter dans ma chaîne. Je vous poste le vi et une impression.
    Une autre question, comment fonctionne les vi de daqmx étalonnage si vous avez un lien ou un exemple ?
    Merci
    Mickael
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    debit2.vi ‏65 KB
    debit.png ‏19 KB

    Merci de ta réponse,
    Je viens de voir un petit soucis maintenant mon filtre ne fonctionne plus comme il doit fonctionner pourtant c'est le même que j'avais utiliser avec l'assistant Daq, normalement en utilisant les sous vi daq sa ne doit rien changer ?
    C'est un filtre lissage rectangulaire, mes données tourne entre 20 et 50 et à la sortie je trouve du 1,2.
    Pièces jointes :
    debit2.vi ‏86 KB

  • Création d`une matrice de Park

    Comment créer une matrice de park sur le cRio après avoir rentrer 4 signaux qui sont les tensions Va,Vb,Vc et l`angle theta  pour générer les 2 tensions de sortie Vd et Vq ? merci. 

    Avez-vous regardé quelques-uns des exemples dans l'exemple finder? Il existe des exemples spécifiques sur la façon d'effectuer l'entrée et la sortie analogique avec des modules spécifiques. Dans l'exemple finder ils peuvent être trouvés sous Entrée de matériel et de sortie >> CompactRIO >> Module IO spécifique.
    Si vous rencontrez des problèmes spécifiques lors de l'exécution de l'algorithme sur le FPGA nous pouvons les traiter au cas par cas.
    Encore une fois, je recommande fortement ce détachement dans le forum de la langue française:
    Discussions au sujet de NI LabVIEW
    Si vous postez une question en français là-bas, beaucoup d'yeux le verront, lire, et peuvent contribuer. Si vous continuez à poster ici, il est peu probable que beaucoup de gens se donner la peine de le traduire ou de commenter.
    Jeff L
    National Instruments

  • Création d'une application Android avec Labview

    sBonjour,
    je cherche à developper avec Labview, une application android pour l'installer après sur une tablette tactile, comment je peux faire ça?

    Bonjour,
    Malheureusment Android n'est pas une plateforme de déploiement disponible pour LabVIEW. Notamment parce que le Run-Time Engine dont aurait besoin une application est lourd et devrait être largement modifié pour s'adapter à Android.
    Il faudra donc coder en Java
    Une alternative dans certains cas est d'avoir le coeur de l'application qui tourne sur une cible déportée et la présentation (commandes/indicateurs) dans Data Dashboard.
    Cdt
    --Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Mise en oeuvre d'une tache d'acquisition analogique sur plusieurs cartes (6321/6323) et de plusieurs taches de génération analogique sur ces memes cartes (LabWindows CVI10 sous Windows SEVEN)

    Objet : Impossibilité de faire tourner une tache de mesure analogique sur deux cartes 6321, lorsque une ou plusieurs tache(s) de génération analogiques sur ces mêmes cartes existe(nt)…
    Configuration NI :
    Dev1 = Dev2 = carte 6321
    Code de création de la tache de mesure analogique :
                DAQmxCreateTask("",&AIRecordingtaskHandle);
           DAQmxCreateAIVoltageChan(AIRecordingtaskHandle,chan,"",DAQmx_Val_NRSE,min,max,DAQmx_Val_Volts,NULL);
           DAQmxCfgSampClkTiming (AIRecordingtaskHandle, "", rate, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, sampsPerChan);
           DAQmxGetTaskAttribute(AIRecordingtaskHandle,DAQmx_Task_NumChans,&gNumChannels);
    Chan vaut : "Dev1/ai0, Dev1/ai1, Dev1/ai2, Dev2/ai1"
    Code de création des taches de génération analogique :
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C1_DAC0));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C1_DAC0, chan, "", min, max,DAQmx_Val_Volts, ""));  // chan vaut Dev1/ao0
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C1_DAC1));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C1_DAC1, chan, "", min, max,DAQmx_Val_Volts, "")); // chan vaut Dev1/ao1
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C2_DAC0));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C2_DAC0, chan, "", min, max,DAQmx_Val_Volts, "")); // chan vaut Dev2/ao0
    Au premier ReadBinary, le système sort en erreur avec le message suivant : voir pièce jointe
    Notre compréhension de cette erreur : dans le cas où on met en œuvre une tache de mesure analogique sur plus d'une carte, couplée à une ou plusieurs tache(s) de génération analogique sur ces mêmes cartes, il est impossible d'utiliser l'horloge interne pour le cadencement des CAN/CNA.
    Nous avons effectué plusieurs tests :
    Modifications des horloges interne lors de la configuration des taches : "/Dev1/ai/SampleClock" pour la tache de mesure et "Devk/ao/SampleClock" pour les taches de génération analogique : erreur.
    Abandon d'une des taches de génération analogique : même erreur
    Abandon de l'ensemble des taches de génération analogique (la tache de mesure analogique couvre des voies issues des cartes Dev1 et Dev2): pas d'erreur
    Suppression des voies de la carte Dev2 dans la tache d'acquisition analogique : plus d'erreur
    Merci d'avance
    Pièces jointes :
    MsgErreur NIDAQmx.JPG ‏38 KB

    Bonjour Sisyphe42, 
    Les exemples en PJ montrent comment faire du multi-tâches et du multi-cartes sous CVI.
    Cordialement 
    Sabri JATLAOUI - Certified LabVIEW Developer
    Pièces jointes :
    ContAI-ReadDigChan.c ‏8 KB
    SynchAI-AO.c ‏9 KB
    ContinuousAI.c ‏11 KB

  • Pages : Impossible de fractionner une ligne de tableau sur plusieurs pages - Impossible to divide a row on multiple pages in a table

    ENGLISH FOLLOWS
    Avec le logiciel Pages, il est impossible de fractionner une ligne de tableau sur plusieurs pages, contrairement à Word. C'est un problème majeur. En particulier quand on veut comparer deux textes côte à côte. Si le texte est long, on ne voit que la première page. Cela devrait être corrigé. En attendant, y a-t-il une solution pour voir le texte complet?
    With Pages, it is impossible to divide the content of one row in a table on more than one page, as we can do with Word. This is a major problem. Especially when we wish to compare two texts side by side. If the text is long, we can only see the content of the first page. This should be fixed. Is there a solution?

    Thanks Picas for this direct and simple answer, even if this disappointed me
    Never mind, I have to use another app or find a "way-to", hoping this will be upgrade in a future version.
    To answer to your question :
    1st link - The french app's online help - Related Page :  "Create sections", you'll find this : "Un document peut contenir une ou plusieurs sections. Vous pouvez ajouter une section pour utiliser un format différent pour une partie du document, par exemple. Chaque section possède sa propre pagination, ses en-têtes, bas de page et image d’arrière-plan."
    I translate for you or perhaps are you french speaking ? : "A document can contain one or more sections. You can add a section to use a different format for a portion of the document, for example. Each section has its own pagination, its headers, footers, and image background."
    Perhaps I misunderstood the 2 sentences
    2nd link and others : using this google search "Mac Pages 5.2 Document section layouts"
    Reading the french online help and flying over the results of my Google searches, it seems to appear to me that it was possible, by simply choose the section in the preview and change the parameters of the chosen section.
    One more time, thanks for your time and you answer.

  • Comment exporter automatiquement plusieurs morceaux dans une séquence ?

    Bonjour,
    Je monte des vidéos très courtes de tutoriel. Je suis souvent amené à avoir ce genre de séquence (plusieurs centaines de "morceaux"). Existe-t-il un moyen pour demander à Adobe Première d'exporter automatiquement chacune de ces vidéos séparément ? (hors le fait de délimiter le début et la fin manuellement pour chaque "morceau" puis de l'insérer dans la file media encoder)
    Un grand merci et à très bientôt !
    Frank

    Salut,
    t'imagines même pas ;-)
    http://pages.infinit.net/alek/heureux.gif
    CLAD / Labview 2011, Win Xp
    Mission d'une semaine- à plusieurs mois laissez moi un MP...
    RP et Midi-pyrénées .Km+++ si possibilité de télétravail
    Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
    Don't forget to valid a good answer / pensez à valider une réponse correcte

  • D'un tableur excel à une chaine déroulante

    Bonjour,
    je cherche à faire afficher par une chaine déroulante (en face avant) une liste de nom contenu dans un fichier excel. Ces nom sont dans la première colonne et sur les 40 premières lignes. Mon début de programme est "lire un fichier tableur".mais après les solutions essayé ne marche pas. Il y a la solution en entrant ces noms dans "propriété de chaine déroulante" mais si ma base de donnée de nom change ....
    En vous remerciant de votre aide
    Cordialement
    4Sup

    bonsoir
    rien a voir avec la question de départ mais il n'est peut etre pas judicieux de stocker l'age
    c'est redondant et peut etre source d'erreur. Puisque tu disposes de la date de naissance
    autant implementer une fonction de calcul de l'age
    Cdt
    Tinnitus
    CLAD / Labview 2011, Win Xp
    Mission d'une semaine- à plusieurs mois laissez moi un MP...
    RP et Midi-pyrénées .Km+++ si possibilité de télétravail
    Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
    Don't forget to valid a good answer / pensez à valider une réponse correcte

  • Dimensionner FIFO FPGA et RT

    Bonjour,
    Je dois acquérir des signaux analogiques de type offset (0..10V)  avec un crio 9074, j'utilise le module 9205. Malheureusement, j'ai un problème pour dimensionner mes fifos. Je dois acquérir simultanément 8 voies différentes à 5kHz pour ensuite les enregistrer dans un fichier tdms.dans mon code RT, je crée une fifo Rt. Ma FIFO FPGA va s'écrire dans celle du RT. Je convertis mes datas en waveform avant de les enregistrer dans mon .tdms. Mon code fonctionne pour 1 voie soit 500 éléments.
    Pourriez vous m'indiquer la manière de calculer le nombre d'élements et les 2 constantes à définir lors de la création de la fifo RT ?
    Merci d'avance
    Rémy Arnaud
    Résolu !
    Accéder à la solution.

    Bonjour,
    Merci d'avoir posté sur le forum National Instruments.
    Pouvez vous préciser les contantes qui posent problèmes?
    Je vous donne néanmoins quelques informations sur deux constantes importantes de la fonction créer une fifo RT.
    La constante "Elements in Array" correspond au nombre d'éléments dans le tableau pour chaque élément de la FIFO RT.
    En ce qui concerne la constante "Size", elle correspond au nom d'élément de la FIFO.
    Pour vous répondre précisément, il me faut savoir si vous utilisez une fifo par voie ou pour les 8.
    Si jamais vous pouvez envoyer votre programme, ce serait encore mieux!
    Cordialement,
    Romain 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;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Programmation d'une table dans l'interface UIR

    Bonjour,
    Je désire utiliser une table de données (donc les cellules sont de type "string") que je créé à partir de l'interface utilisateur (*.uir). La création de cette table ne me pose pas trop de problèmes, mais j'aimerais pouvoir ajouter une nouvelle case entre deux cases déjà remplies. Donc il faudrait que je puisse décaler toutes les cases (déjà remplies) qui suivent cette nouvelle case. Comment puis-je procéder afin de pouvoir ajouter cette fonctionnalité à la table ? Avez-vous des exemples ? Je vous en remercie d'avance et n'hésitez pas à me contacter s'il manque des précisions dans ma demande.
    Salutations !

    Bonjour,
    J'ai essayé de créér une nouvelle ligne et une nouvelle colonne mais je n'obtiens pas uniquement la création d'une seule cellule. Je vous joins l'interface UIR et ainsi que le fichier source contenant la fonction Calback permettant de créer cette cellule. Lorsque je pointe le curseur de la souris sur ma case 7 et que je clique sur "Insérer" dans la barre des menus de ma table je devrais obtenir uniquement une case vide entre la case 5 et 7. Or j'obtiens une colonne et une ligne. Comment faire dans ma fonction "CVICALLBACK Insertion" afin de n'obtenir qu'une seule case ?
    P.S.: voir la pièce jointe pour mieux comprendre.
    void CVICALLBACK Insertion (int menuBar, int menuItem, void *callbackData, int panel)
    Point cellMap ;
    Point cellCourante ;
    GetActiveTableCell (PANEL, PANEL_TABLE, &cellMap); // case active
    InsertTableRows (PANEL, PANEL_TABLE, cellMap.y +1, 1, VAL_CELL_STRING); // création d'une ligne
    InsertTableColumns(PANEL, PANEL_TABLE, cellMap.x, 1, VAL_CELL_STRING); // création d'une colonne
    DeleteTableColumns (PANEL, PANEL_TABLE, 14, 1); // Effacement de la dernière colonne de la table
    DeleteTableRows (PANEL, PANEL_TABLE, 20, 1); // Effacement de la dernière ligne de la table
    Pièces jointes :
    Test_table.zip ‏5 KB

Maybe you are looking for