Problème de pretrig Analogique

Bonjour,
Voila mon problème :
Je dispose actuellement d'une carte NI PCI 6254 mais je pense qu'elle n'est pas suffisante. En effet, je veux analyser (enfin du moins capter) 4 impulsion analogique en même temps qui fonctionnent sur le même trigger, mais en analysant aussi la partie de la courbe avant le trigger (donc pretrigger).
Comme je me suis rendu compte que ce n'était pas possible d'effectuer cette tache avec la carte d'acquisition citée précedemment, quelle carte PCI me conseillerez vous pour pouvoir réaliser cela?
Précisions : la cadence d'acquisition m'importe peu et je n'ai besoin que d'une résolution correcte.
Tout cela pour tester des capteurs de pressions dynamiques piezo (4 en meme temps) en examinant leur reponse pour pouvoir déterminer leur sensibilité et leur écart de linéarité.
Cordialement,

Bonjour.
Voilà, ça marche !.... Après quelques tatonnements :
- Vérification du cablage ( en fait dans le mail original il fallait dire AI1 (plot 5) et non AI22(plot 63) car avec AISENSE il faut utiliser AI0à AI15 et pour AISENSE2, AI 16 à AI 63)
- R= 10Kohms entre AI SENSE et AI GND ( pris en plot 2)
- Augmentation de mon niveau de signal
- Charge avec 600 ohms de ma ligne d'entrée en entrée du SCB-100
- Vérification de la connexion (coté SCB_100 et carte 6071E) via cable 100100
Merci pour s'être penché sur mon problème !
Cordialement,
J.S. LETZELTER

Similar Messages

  • Hi, iam facing proble in synchronizing 4 ni 4472 cards input with pxi -6052e analog output. please help me out to sort out this problem

    hi, iam facing problem in synchronizing 4 ni 4472 cards input with pxi -6052e analog output. please help me out to sort out this problem

    Hi achyuth,
    Thank you for posting on the National Instruments forum.
    I am not sure what you are trying to do.  Are you trying to input and output at the
    same time?  Are you just trying to
    synchronize all of your inputs?  Do you
    want them to run off the same clock?  If
    you could, give me some more information so I can understand your problem
    better.
    In the meantime, this might help you:
    PXI Timing,
    Triggering, and Synchronization Capabilities of E-Series Multifunction Data
    Acquisition ...
    PXI Timing and Synchronization
    Thank You,
    Nick F.
    Applications Engineer

  • Problème d'acquisition et de traitement de donnée analogique

    Bonjour,
    Je dois faire l'acquisition de données provenant d'un encodeur angulaire ( pour mesurer la position d'un pendule) avec une carte NI PCI-6013 je prend mes données sur N échantillons à raison de 5000 échantillons à une fréquence de 50kHz. Je dois donc afficher l'angle en continue et si l'utilisateur le souhaite enregistrer, au temps souhaité et à une fréquence de : 10,100,1000,10000 Khz,  la position en fonction du temps. Tout marche bien pour afficher l'angle en continue mais voilà dès que j'enregistre et que j'affiche le graphe en fonction du temps les données sont saccadées ( print screen en pièce jointe).
    Je suis débutant sur labview et c'est la première fois que je fais de l'acquisition. Je met mon vi en pièce jointe toute remarque est bonne à prendre ne serais-ce que pour simplifier mon programme.
    Je vous remercie d'avance
    Pièces jointes :
    Pendulesimple2012.JPG ‏136 KB
    PenduleSimple2012V1.01.vi ‏73 KB

    Bonjour Plantes,
    Dans votre programme, vous utilisez un assistant DAQ en échantillonnage fini, intégré dans une boucle While, certainement pour faire de l'acquisition en continue.
    Pourquoi ne pas utiliser directement un échantillonnage continu?
    Votre problème est certainement lié à la manière dont vous construisez vos tableaux (de manière dynamique), ce faisant LabVIEW à besoin de faire des réallocations mémoire constante pour remplir ces tableaux. Ce qui engendre un temps qui aura tendance à augmenter tout le long de l'exécution de votre application.
    Aussi, le fait de passer de gros tableaux à votre Graph XY, demande du temps à LabVIEW pour rafraichir votre FaceAvant ce qui peut donner cette sensation de saccade.
    Pour éviter cela, je vous encourage à utiliser une structure producteur/consommateur décrite ci-après. Cette Architecture permet de faire dans une boucle votre acquisition de données de manière continue ou non, et ensuite de déporter le traitement des données dans une autre boucle (consommatrice). Ce faisant votre acquisition de données n'est pas impactée par le temps de traitement des données.
    Ceci étant dit, je vous encourage à prendre connaissance des éléments suivant, qui vous permettrons de mieux comprendre comment fonctionne LabVIEW et comment utiliser de manière efficace la programmation DAQ, et les architectures associées:
    1 . Getting Started with NI LabVIEW Student Training
    2 . LabVIEW Application Design Patterns
    3 . Learn 10 Functions in NI-DAQmx and Handle 80 Percent of Your Data Acquisition Applications
    4 . Getting Started with NI-DAQmx: Main Page
    Je vous souhaite une bonne journée,
    Rémi D.
    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;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • Problème téléchargement Dll de CVi 2009 vers OS Pharlap

    Bonjour,
    J'ai deux application qui doivent tourner sur la cible PXI sous l'OS temps réel Pharlap. La
    première fait l'acquisition de signaux logiques et analogiques via les cartes présentes
    sur le châssis PXI. Le téléchargement de cette Dll vers la cible sous Pharlap fonctionne
    correctement et l'application embarquée interagit bien avec l'hote.
    La seconde application fait l'acquisition de signaux logiques et analogiques et
    l'acquisition de trames CAN via des Dll développées en Labview/FPGA.
    C'est lors du téléchargement de cette Dll avec des fonctions CAN qu'il y a un problème.
    Le téléchargement s'arrête et demande une Dll qui s'appelle "Version.dll".
    Je n'est trouvé nulpart la trace de Version.dll
    Merci pour vos réponses
    JGO

    Bonjour,
    Je ne suis pas sur qu'une DLL créée avec LabVIEW puisse être executée sur LabVIEW RT... à voir.
    Pour cela je vous invite à vérfier que votre DLL est exécutable sur un système RT en regardant le lien suivant :
    How Can I Verify that My DLL is Executable in LabVIEW Real-Time?
    Version.dll fait partie de l'API Windows pour avoir des informations sur les versions de fichiers de DLLs ou d'exécutables, mais il est probable que ces fonctions ne soient pas implémentées dans le système RT de LabVIEW type Pharlap ou VxWorks.
    Cordialement,
    Da Helmut

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

  • Problème d'acquisition de mesures avec un module 6219

    Bonjour,
    Je possède un module NI 6219 et je souhaite faire des mesures de température avec un thermocouple de type K.
    J'arrive à connecter le module au PC mais les mesures que j'obtiens sont désordonnées et complétement incohérentes que ce soit sur LabView ou sur Max. J'ai également fait des mesures de tension et j'obtiens les mêmes résultats.
    Pourriez-vous m'aider à résoudre ce problème ?

    Hello, 
    Concernant ton vi, il y aurai pas mal de commentaires...., désolé je ne peux pas rentrer dans détail.
    Les réponses précédentes te dirigent vers les exemples, pour être encore plus précis, je te conseil l'exemple "Cont Acq Thermocouple Samples-Int Clk.vi."
    dans: 
    E/S materielles/DAQmx/Mesures analogiques/temperature/Cont Acq Thermocouple Samples-Int Clk.vi.
    Tu y verra comment utiliser correctement la fonction de cadencement dont ont parle ci dessus.
    Un autre point fondamental : dans ta config de voie, tu n'a pas câblé ni le type de thermocoule, ni la compensation de soudure froide.... C'est vital si tu veux que tes mesures de températures soient justes...
    Quel module pour thermocoupe utilises tu dans ton châssis cDaq9181? Selon le hardware, les fréquences d'échantillonnages doivent  parfois être contraintes à certaines valeurs (sous multiple de l'horloge, f maxi etc).
    Bon courage
    antoine

  • C++ PCI-6703 Générer une tension analogique

    Bonjour,
    Je suis nouveau  sur Measurement Studio for VC++ et j'ai besoin de votre aide.
    J'ai une carte PCI-6703 avec un boitier SCB-68.
    J'ai installé les drivers nécessaires NI-DAQmx avec le Measurement & Automotion Explorer.
    J'ai installé le logiciel Measurement Studio 2009 (version d'évaluation en attendant la validation pour que mon chef de projet achète la version complète).
    Je travaille sous Visual Studio 2008 et sous VC++ (je ne peux pas utiliser LabView (sinon c'était plus facile) pour pouvoir synchroniser les codes de tout le projet).
    Je souhaite générer des tensions analogiques (10V) à la sortie de la carte PCI-6703 pour le boitier SCB-68. Ce dernier va envoyer les signaux à une carte électronique pour allumer/éteindre des leds.
    Je me suis bloqué au niveau de mon programme. J'ai essayé ces lignes de codes mais ça ne marche pas (je me suis inspiré des codes que j'ai trouvé sur le forum mais je pense qu'il a des lib qui ne collent pas) :
    #include <cvirte.h>
    #include "windows.h"
    #include <NIDAQmx.h>
    int main (int argc, char *argv[])
        TaskHandle daqmxhandle;
        if (InitCVIRTE (0, argv, 0) == 0)
            return -1;    /* out of memory */
        DAQmxCreateTask ("", &daqmxhandle);
        DAQmxCreateAOVoltageChan (daqmxhandle, "Dev1/ao0", "", -10.0, 10.0,
                                  DAQmx_Val_Volts, "");
        for(int i=0; i<10;i++)
         DAQmxWriteAnalogScalarF64 (daqmxhandle, 1, 10.0, 10, 0);
         Sleep(3000);   
         DAQmxWriteAnalogScalarF64 (daqmxhandle, 1, 10.0, 0, 0);   
         Sleep(3000);
        DAQmxClearTask (daqmxhandle);
        return 0;
    -----------------------------------------------Erreur----------------------------------------------------------
    1>------ Rebuild All started: Project: test1, Configuration: Debug Win32 ------
    1>Deleting intermediate and output files for project 'test1', configuration 'Debug|Win32'
    1>Compiling...
    1>test1.cpp
    1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(7256) : warning C4005: 'THREAD_BASE_PRIORITY_MIN' : macro redefinition
    1>        c:\program files\national instruments\measurementstudiovs2008\vcnet\include\cvidef.h(140) : see previous definition of 'THREAD_BASE_PRIORITY_MIN'
    1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(7257) : warning C4005: 'THREAD_BASE_PRIORITY_IDLE' : macro redefinition
    1>        c:\program files\national instruments\measurementstudiovs2008\vcnet\include\cvidef.h(143) : see previous definition of 'THREAD_BASE_PRIORITY_IDLE'
    1>Compiling manifest to resources...
    1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    1>Copyright (C) Microsoft Corporation.  All rights reserved.
    1>Linking...
    1>test1.obj : error LNK2019: unresolved external symbol _DAQmxClearTask@4 referenced in function _main
    1>test1.obj : error LNK2019: unresolved external symbol _DAQmxWriteAnalogScalarF64@28 referenced in function _main
    1>test1.obj : error LNK2019: unresolved external symbol _DAQmxCreateAOVoltageChan@36 referenced in function _main
    1>test1.obj : error LNK2019: unresolved external symbol _DAQmxCreateTask@8 referenced in function _main
    1>test1.obj : error LNK2019: unresolved external symbol _InitCVIRTEEx@12 referenced in function _main
    1>C:\Documents and Settings\Default\Mes documents\Visual Studio 2008\Projects\test1\Debug\test1.exe : fatal error LNK1120: 5 unresolved externals
    1>Build log was saved at "file://c:\Documents and Settings\Default\Mes documents\Visual Studio 2008\Projects\test1\test1\Debug\BuildLog.htm"
    1>test1 - 6 error(s), 2 warning(s)
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

    Bonjour,
    Votre problème vient du mode d'acquisition : votre tache fait l'acquisition d'une seule valeur (échantillon) à la fois.
    Ce qui vous limite alors, c'est la vitesse de votre cpu : la boucle while (d'ailleurs le wait 0ms est inutile) tourne a vitesse maximale, mais non cadencée ! Votre calcul est donc complètement faux.
    Pour résoudre ceci, il faut acquérir N échantillons, et faire un traitement sur le tableau de valeurs pour en déduire la fréquence directement (il y a des vi's déjà créés pour cela)
    En espérant que cela vous aide,
    P.S. vous avez posté sur le forum anglais, la prochaine fois, faites le dans la communauté française, vous aurez une réponse plus rapidement.
    Bonjour,
    Votre problème vient du mode d'acquisition : votre tache fait l'acquisition d'une seule valeur (échantillon) à la fois.
    Ce qui vous limite alors, c'est la vitesse de votre cpu : la boucle while (d'ailleurs le wait 0ms est inutile) tourne a vitesse maximale, mais non cadencée ! Votre calcul est donc complètement faux.
    Pour résoudre ceci, il faut acquérir N échantillons, et faire un traitement pour en déduire la fréquence directement.
    En espérant que cela vous aide,
    V-F

  • Problème de ralentisse​ment sous LabVIEW 7.0

    Bonjour,
    nous rencontrons actuellement un phénomène de ralentissement sur une application développée sous LabVIEW 7.0.
    Description des ressources et de la configuration utilisée (pour info) :
    LabVIEW 7.0
    NI-DAQ 8.0.1
    2 cartes PCI-6229 avec :
    une acquisition analogique à 10 kHz - échantillons prélevés par bloc de 1000
    une acquisition de type codeur
    des entrées/sorties TOR
    2 cartes PCI-6528 (entrées/sorties TOR)
    1 carte MOXA C168H (carte ISA 8 ports série)
    2 cartes Exotest PCI pour dialogue LIN et Ligne K
    L'application tourne en mode debug (= il ne s'agit pas d'un exécutable)
    Application d'environ 350 VIs
    Utilisation (a priori à bon escient) de la réentrance, du parallélisme, de sémaphores, ... (en bref, il s'agit d'une application multi-tâches classique)
    Description des symptômes :
    Le ralentissment constaté n'est pas systématique. L'application tourne en général parfaitement, mais parfois, dès le lancement de celle-ci, parfois après 10 minutes, parfois après une heure, et parfois plus, nous constatons un fort ralentissement de l'application. Cela se traduit par le ralentissement du déroulement de notre séquenceur (il s'agit d'une application pour un banc de test).
    Nous ne constatons aucune augmentation du taux d'occupation du CPU, et aucune augmentation de mémoire.
    La difficulté principale de notre problème est que nous ne savons absolument ce qui peut provoquer un ralentissement si soudain, si imprévisible et qui ne se traduit pas par un taux d'occupation du CPU élevé.
    Actions déjà faites :
    Nous avons utilisé l'outil d'observation de profil des VIs (Outils > Avancé > Optimisation de VIs...) mais n'avons rien constaté d'aberrant.
    Nous avons lu (et appliqué) les principes de la documentation suivante : http://forums.ni.com/attachments/ni/250/7849/1/prf​rmnc.pdf
    La (les) question(s) :
    Un tel phénomène a-t-il déjà été rencontré ?
    Avez-vous des conseils particuliers (autres que ceux contenus dans le document ci-dessus) ?
    Pensez-vous à une action particulière à réaliser ?
    Merci par avance !

    Bonjour,
    Obtenez vous un code d'erreur? A quelle étape s'arrête la création de votre executable ?
    je vous envoie un lien qui traite de probleme d'executable avec les boitiers USB
    http://digital.ni.com/public.nsf/websearch/129BE1A90E522E3886256F24007606F4?OpenDocument
    Cordialement
    Alexandre D
    NIF

  • Problème synchronisation PCI 6733

    Bonjour,
    Ce post est un peu la continuation d'un autre initié sur la base d'une PCI 6733. Les voies analogiques sont le résultat de calculs, 1 seconde de signal est préalablement calculé et envoyé aux buffeurs de la carte. Parallèlement les signaux digitaux sont eux aussi calculé sur cette durée de 1s et envoyés au même moment que les voies analogiques dans la tache correspondante (les fréquences d'échantillonnage des signaux sont les mêmes, ie même nombre de points analogiques et numériques. Pour chaque type de voie 10 buffeurs sont définis (donc un décalage de 10 entre ce qui calculé et ce qui est joué).
    Ma question: de temps en temps, on peut constater en sortie de carte un décalage (non fixe, entre 100ms et plus d'une seconde) de synchronisation entre les voies analogiques et numériques. A l'envoi sur les taches Dacqmx, les voies sont synchrones, en sortie de carte PCI 6733, elles ne le sont plus.
    1/ Sachant que le problème est aléatoire, et qu'un arrêt de l'application et un redémarrage suffise pour que tout rentre dans l'ordre, puis-je trouver un moyen de détecter ce problème et le signaler à l'utilisateur via l'interface?
    2/ D'ou pourrait venir ce décalage , et surtout comment s'assurer de la synchronisation des 2 types de voies?
    Merci pour votre aide,
    Cordialement.

    Bonjour,
    Avez-vous fait un benchmark de vos calculs ?
    Combien de temps prend un calcul d'une seconde de signal? Il serait intéressant de connaitre cela.
    Par ailleurs, il y a des fonctions DAQmx qui permettent de connaitre l'état du buffer de la carte. Cela pourrait donner une indication supplémentaire sur l'origine du problème.
    Afin de mieux vuos aider, pouvez-vous nous dire en quoi vous développez : LabVIEW, CVI, autre ?
    Cordialement
    Jean-Philippe C.
    National Instruments France

  • How to do an analog trigger with bipolar levels of detection and start acquisition with pre-trig samples

    hello,
    I use PXI 4472 with accelerometers. I want to trig as soon as the acceleration is out of the window +/-50g and recover the previous samples before the trig. Is it possible to do it?
    I try the daq-mx functions trig on analog windows and a number of pretrig samples but without success. My first sample detected is always over 50g, it seems that the number of pretrig samples has not recognized. Anyone to help me?
    Thank you. 

    Hi Chouca,
    It should be possible to do what you are trying to do:
    type of trigger: analog window triggering (acquire data when the signal leaves the window)
    Action caused by trigger: reference trigger
    I will try and get a 4472 to check that by myself.
    Maybe it would be easier to check the behaviour of the system with a precise voltage generator instead of the accelerometers.
    Best regards,
    Thomas B. | CLAD
    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;}
    >> Inscrivez-vous gratuitement aux Journées Techniques : de l'acquisition de données au contrôle/com...

  • Ecrire et lire sur deux voies physiques synchronisés par trigger analogique

    Bonjour,
    Je possède un carte NI PCIe6259 et deux connecteurs BNC 2110 et BNC2111 pour faire mes conections.
    Je souhaiterai lors d'un top synchro analogique déclencher l'écriture sur une voie et la lecture sur une autre voie.
    Les exemples fournis permettent  (VI trigger numérique)  de faire cela en utilisant un trigger numérique que je crée grace à un compteur et que je lis sur la voie PFI13 de ma carte d'acquisition.
    J'ai trouvé deux autres exemples qui permettent de séparement écrire ou lire sur un voie en déclenchant sur une voie externe analogique. Il suffit de connecter le trigger sur la voie APFI0 de ma carte. Cela fonctionne
    J'ai donc essayé naïvement de rassembler les deux VI dans un même VI (cf fichier) mais ca ne fonctionne pas. L'erreur indique que la ressource spécifiée est réservée. Peut être s'agit-il  de la voie APFI0 qui est utilisé deux fois. je ne sais pas trop.
    Avez vous déjà rencontré ce problème. Doit on utiliser deux voies APFI différentes ? (mais je n'en n'ai qu'une de disponible sur mon connecteurs BNC2110)
    Merci d'avance
    jean
    Pièces jointes :
    VI trigger numérique.vi ‏37 KB
    testsynchroanalog .vi ‏44 KB
    lireetecrire.JPG ‏197 KB

    Bonjour,
    Je vois une erreur, qui est au niveau du Start de tes fonctions. Le mieux est d'utiliser le cluster d'erreur pour créer un séquencement dans tes opérations. Du coup, il faudrait faire le Start de l'AO, puis le Start de l'AI, et seulement après faire le Read.
    Autrement ca m'a l'air correct.
    Dans ma précédente réponse, je te disais que la première solution était meilleure, car les 2 acquisitions sont déclenchées en même temps, et peuvent utiliser des horloges différentes, dans la solution que tu as choisie, tu as compris que les 2 tâches partagent la même horloge. Un avantage est que l'acquisition et la génération se font exactement sur le même front d'horloge. Mais dans la première solution, si tu mets la même valeur de "Rate", le driver gère tout seul le fait d'utiliser la même horloge.
    Je ne comprends pas très bien ta dernière question. Il n'est de toute facon pas possible d'acquérir ou générer un front sur deux, à moins de passer par un compteur qui va regénérer ton horloge, mais là où je ne comprends pas, c'est que pour que tu aies ce comportement, il te faut une horloge ecterne, or, dans l'exemple que tu montres, tu utilises l'horloge interne de la carte, et c'est du coup le "Rate" de l'AI qui cadence l'acquisition, donc il est réglable. Si tu veux utiliser une horloge externe, il faut que tu déclare la source d'horloge pour ton AI.
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Acquisition analogique 9205 et châssis Wifi 9163 WLS

    Bonjour,
    Une question technique. Je souhaiterai pouvoir utiliser des cartes d'acquisition (9205, 9225, 9239 etc) dans un châssis Wifi. Certaines ne fonctionnement pas dans ce type de châssis, j'ai pu remarquer.
    http://zone.ni.com/devzone/cda/tut/p/id/8136
    Ce qui s'explique simplement par la résolution, le débit binaire requis et l'émission Wifi.
    Mais d'un point de vue de la maitrise temporelle, cela fonctionne comment ?
    - Est ce que les points capturées par la carte sont horodatées à la carte ou à la réception sur le contrôleur PC ?
    - Point à point ? Y a t'il une resynchro ou une reconstruction de la trame pour l'horodatage ?
    - Comment est gérée la jigue temporelle dans la transmission sans fil ?
    - Que se passe t'il en cas de perte de signal ou d'affaiblissement du signal ?
    Merci !
    Benjamin

    Bonjour,
    Pour vous donner quelques pistes sur la façon dont est gérée la communication en wifi :
    - Les données sont horodatées au niveau du convertisseur, donc sur la carte. Elles sont ensuite envoyées à travers le réseau sans fil.
    - Point à point, on a une analogie avec une communication standard en TCP : l'affichage des points se fait au fur et à mesure que le flag "data ready" est mis à jour. L'horodatage en point à point n'a donc pas vraiment de sens au niveau du module.
    - Qu'appelez-vous la jigue temporelle ?
    - La perte de signal ne pourra se voir que par le biais d'une erreur sur votre VI. De même si l'affaiblissement est trop fort, l'échantillonnage ne peut pas être suivi, et vous tenterez de lire un buffer vide, ou vous aurez un timeout sur la lecture. Le problème actuel est que DAQmx ne fournit pas pour l'heure l'information de la qualité de la liaison, au contraire du WSN par exemple.
    Bien cordialement,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Pertes de données acquisition analogique

    Bonjour,
    J'utilise dans un VI les cartes NI USB 6008 et 6216 pour de l'acquisition de mesures par les voies analogiques.
    Je constate dans les fichiers enregistrés, que j'ai une perte de signal durant le lancement du VI (les valeurs des entrées analogiques passent à zéro, sur toutes les voies).
    Auriez-vous, une idée de la provenance de ce type de problème ?
    Merci d'avance.

    Je ne pense pas que la perte soit liée à l'utilisateur, le phénomène apparait de manière assez aléatoire.
    Pour l'enregistrement il ne s'agit pas d'un mode producteur/consommateur
    Je joins les images correspondants à la partie acquisition et enregistrement du VI
    Pièces jointes :
    acquisition.PNG ‏22 KB
    enregistrement.PNG ‏38 KB

  • Echantillonner l'acquisition d'un signal analogique [Windev15]

    Bonjour à toute la communauté !
    J'aimerai refaire appel à votre expérience en se qui concerne l'acquisition d'un signal analogique avec une carte National Instrument 6009 USB. Je code sur Windev 15 et 16.
    Mon problème :
    Je peux relever un ensemble de point, mais pas suivant un échantillonnage.
    Mon code :
    Nbr_point est un entier
    Nbr_point=20
    TabValeur est un tableau de 20 réels
    eNbrEchLu est un entier
    Résultat est un réel
    eErreur=AppelDLL32("nicaiu.dll","DAQmxCfgSampClkTiming",eTaskhandle1,Null,200,10280,10178,300)
    Trace("rate : ",eErreur)
    eErreur=AppelDLL32("nicaiu.dll","DAQmxStartTask",eTaskhandle1)
    eErreur = AppelDLL32("nicaiu.dll","DAQmxReadAnalogF64",eTaskhandle1,Nbr_point,10.0,0,&TabValeur,Nbr_moy,&eNbrEchLu,Null)
    eErreur=AppelDLL32("nicaiu.dll","DAQmxStopTask",eTaskhandle1)
    Le code d'erreur renvoyé, dit que le nombre de paramètres de la fonction "DAQmxCfgSampClkTiming" est mauvais. Ce problème est déjà arrivé à un autre utilisateur :
    [URL="http://forums.ni.com/t5/Discussions-de-produit-de-NI/Lire-une-tension-toutes-les-3ms-avec-Windev-8-s..."]http://forums.ni.com/t5/Discussions-de-produit-de-NI/Lire-une-tension-toutes-les-3ms-avec-Windev-8-s...
    Si il y a une autre possibilité d’échantillonner je suis tout ouïe .
    Merci d'avance.

    C'est corrigé, en rajoutant le paramètre "null" l'acquisition fonctionne presque.
    Il reste tout de même une erreur. Peut-on déclarer plusieurs "clock" internes au boitier NI-6009 ? En effet lorsque je fais 2 échantillonnages de signaux, l'acquisition est partagée en deux, et je perd un signal sur deux .
    Nbr_moy est un entier
    Nbr_moy=10
    TabValeur est un tableau de Nbr_moy réels
    TabValeur2 est un tableau de Nbr_moy réels
    TabValeur3 est un tableau de 100 réels
    eNbrEchLu est un entier
    eNbrEchLu2 est un entier
    Résultat est un réel
    Résultat2 est un réel
    Itération est un entier
    Itération = 1
    i est un entier
    grCrée("GR_tension",grCourbe,Faux)
    grDestinationChamp("GR_tension",IMG_Graph)
    grDessine("GR_tension")
    eErreur=AppelDLL32("nicaiu.dll","DAQmxCfgSampClkTiming",eTaskhandle1,"",400.0,10280,10178,500,Null)
    eErreur=AppelDLL32("nicaiu.dll","DAQmxCfgSampClkTiming",eTaskhandle3,"",400.0,10280,10178,500,Null)
    BOUCLE
    eErreur = AppelDLL32("nicaiu.dll","DAQmxReadAnalogF64",eTaskhandle1,Nbr_moy,10.0,0,&TabValeur,Nbr_moy,&eNbrEchLu,Null)
    eErreur = AppelDLL32("nicaiu.dll","DAQmxReadAnalogF64",eTaskhandle3,Nbr_moy,10.0,0,&TabValeur2,Nbr_moy,&eNbrEchLu2,Null)
    POUR i = 1 A Nbr_moy
    Résultat=Résultat+TabValeur[i]
    FIN
    POUR i = 1 A Nbr_moy
    Résultat2=Résultat2+TabValeur2[i]
    FIN
    Résultat=Résultat/Nbr_moy
    Résultat2=Résultat2/Nbr_moy
    TabValeur3[Itération]=Résultat
    LIB_U_lue=Arrondi(Résultat,3)
    grAjouteDonnée("GR_tension",1,Itération,Résultat)
    grAjouteDonnée("GR_tension",2,Itération,Résultat2)
    grDessine("GR_tension")
    Itération=Itération+1
    A FAIRE TANTQUE Itération<=100

Maybe you are looking for