Synchronisation de l'acquisition de signaux analogique par un codeur incrémental

Bonjour,
Pour mon stage, je dois réaliser un VI par le biais de LabVIEW. Ce VI sera utilisé dans de le cadre de la caractérisation de moteur électrique.
J'ai à ma disposition un cDAQ-9174 avec 2 modules qui sont : 9215 pour les signaux analogiques et 9411 pour les signaux numériques.
On me demande de faire l'acquisition de signaux analogique comme un capteur de couple, une sonde à effet hall, ... en fonction de la position angulaire du moteur. Pour déterminer cette dernière, j'ai un codeur incrémental avec une résolution de 5000 point sachant qu'il possède une voie A, B et un index de position.
Pour le moment, je suis parvenu à réaliser un projet permettant de mettre la position angulaire et la valeur de la tension du capteur dans un tableau pour chaque position différente. Je rencontre un problème qui est que je n'ai aucun contrôle sur l'échantillonnage. En effet, je n'ai pas un pas angulaire constant. Si l'utilisateur fait tourner le moteur très lentement, on arrive à avoir un échantillon tous les 0.018°, mais s'il tourne à une vitesse d'environ 15s/tour, il se peut que l'on ait des échantillons tous les degrés.
J'aimerai faire une acquisition de mes signaux analogiques à chaque nouveaux angles avec une résolution angulaire choisit par l'utilisateur.
J'ai mis une pièce jointe montant mon VI réalisé.
En vous remerciant par avance
Cordialement
Pièces jointes :
VI.jpg ‏135 KB

Je n'ai pas beaucoup de temps en ce moment pour entrer dans tous les détails mais le principe consiste à utiliser le codeur pour déclencher les acquisitions de manière matérielle.
Cela revient à dire qu'un échantillon de chaque signal AI et un échantillon de position est lu à chaque changement d'état de ce signal de déclenchement.
Dans les exemples s'installant avec LabVIEW, vous trouverez des VIs montrant comment procéder pour une acquisition déclenchée par un signal externe.
Si la résolution de 5000 impulsions/tour du codeur est suffisante, il vous suffit d'utiliser le signal A (ou B) du codeur en l'adaptant si nécessaire pour les niveaux TTL de la NI-9215. En utilisant un LS7184 configuré en mode X4, cette résolution pourrait être facilement multipliée par 4 en ajoutant de plus un filtrage hardware pour éliminer les éventuels parasites sur les signaux.
C'est un principe que j'applique fréquemment avec les cartes DAQ multifonctions PCI. Il faudrait toutefois encore vérifier que le déclenchement externe est supporté par les deux modules que vous utilisez; vérification que je n'ai pas le temps de faire.

Similar Messages

  • Acquisition données analogiques par SCB 68

    Bonjour, Stéphane stagiaire chez EADS.
    Je dois mettre en place une chaîne d'étalonnage de capteurs par le biais de Labview.
    Pour cela, je dois acquérir deux signaux provenant d'un capteur à étalonner et d'un capteur étalon puis les comparer.
    J'ai une carte d'acquisition Ni (SCB 68) et j'ai essayé de visualiser mes deux signaux.
    Problème: je n'arrive pas à visualiser ces signaux.
    L'exécution du prog m'indique une erreur 10403 (le périphérique est reconnu mais le programme n'est pas adapté à la mesure).
    D'où peut provenir cette erreur?
    Erreur au niveau du programme ou bien périphérique mal installé?
    Dans l'attente de votre réponse,
    cordialement,
    Stéphane THIERRY.

    Monsieur,
    Quelle carte utilisez-vous? Quelle est votre version de driver?
    Le SCB-68 est le boîtier de connection pour acquérir vos signaux. Vous trouverez le type de votre carte dans Measurement & Automation Explorer, sous l'arborescence "Périphériques & Interfaces".
    De plus, quel type de mesure faîtes-vous avec votre carte ? Quelles fonction utilisez-vous pour faire l'acquisition de vos signaux ?
    Avez-vous essayer d'exéctuer un exemple fourni avec LabVIEW ? Si oui, fonctionne-t-il? Les exemples se trouvent dans Aide >> Recherche d'exemples... >> E/S matérielles.
    Sincères salutations
    Isabelle Jean
    Ingénieur d'application
    National Instrument
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Problème acquisition codeur incrémental

    Bonjour,
    Nous sommes actuellement en train de réaliser un projet d'asservissement numérique de position d'un moteur MCC.
    Nous avons deux soucis majeurs sur notre programme:
    - Afin de mettre le moteur en marche, il nous faut appuyer sur 'Enable drive' et activer 'Ordre moteur' jusqu'ici tout va bien mais en plus de cela nous sommes obligé d'appuyer sur le bouton 'Stop' et cela n'est pas normal.
    - Nous avons 3 voyants nous donnant la position (codeur phase A, B et Z). A vitesse élevée du moteur, le programme temps réel n'arrive pas à suivre et donc les voyants ne s'allument pas au bon moment. Le problème c'est que même à vitesse très réduite (en tournant le moteur manuellement) nous avons exactement le même souci.
    Comment pouvons nous remédier à ces problèmes ?
    Nous avons essayer au préalable de regarder les exemples disponibles sur Labview mais pas de réponses à nos questions.
    Matériel utilisé:
    - Labview 2011
    - Module cRIO NI 9075
    - DC Brushed Servo Drive NI 9505
    - Codeur incrémental HEDS-5540 A13
    Ci-joint vous trouverez le projet réalisé.
    Cordialement,
    Pièces jointes :
    essai2.lvproj ‏61 KB

    Bonjour fredou29,
    Merci d'avoir posté sur le forum de NI.
    En tout premier lieu, le .lvproj "n'est qu'un" fichier xml qui décrit votre projet LabVIEW que vous êtes en train de créer. Du coup il n'y a pas de source. N'hésitez pas à faire un zip de tout votre projet afin que la communauté puisse vous venir en aide .
    Bonne journée
    Flo
    Open Diagram First

  • 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

  • Synchronisation between an Acquisition and a Timer

    Hello,
    I work with LabView 6.i, with a DAQ-device type PCI 6040E and a block-connector type SC-2345. I have the following problems: First one, I want to synchronise an acquisition AI (1000 Hz, 16 channels) with a timer generation (Counter 1), and second one, I want to acquire (Counter 0) synchronously like a NI-TIO-based device.
    I want to know every millisecond the number of pulses I get at the source pin of Counter 0, so I use the Counter 1 to generate a 1000 Hz square signal which I put at the gate pin of the Counter 0 and then I count the number of impulses I get at the source pin of the Counter 0. Moreover, this countering must be synchronised with my acquisition.
    1)     To solve my synchronisation problem, I looked at examples in the help of LabView like the Simul AIAO BufTrig(E-series) and tried to do the same as shown but I am not sure whether I have to wire “hardwarely” the PFI0-line with any signal or if it is done internally. Where can I find information about hardware-wiring of trigger signals ?
    2)     To solve my synchronous countering, I also looked at examples in the help of LabView and I read in the description of the VI Counter Set Attribute that it is not possible to count synchronously with my DAQ-device, it is only possible with NI-TIO-based devices. I want to know how many impulses I get every second at the source pin of the Counter 0. If I select for the task type of the VI Group Config the task Buffered Event Counting, it sums the number of impulses and it is not what I want, and if I select for the task type of the VI Group Config the task Buffered Period Measurement, it counts the number of impulses I get every millisecond but if I do not get any impulse during a millisecond, it takes automatically the previously impulse number and it is also not what I want. I want to know the number of impulses I get every second but also if I do not get any impulse, it should give me the number zero !
    Answer accepted in French, German or English. Thanks for your help.
    Riri

    Hallo,
    du solltest Dir überlegen ein Upgrade zu machen. Ab der Version LabVIEW 7, gibt es eine neue Treiber-API namens DAQmx, diese ist sehr viel ausgereifter und es gibt viel mehr Beispiele und sie ist einfacher zu programmieren. Des weiteren ist es für mich schwierig dies zu supporten, da ich LabVIEW 6 nicht mehr auf dem Rechner habe. (LV 7.1, LV 8 und LV 8.2 reichen auch).
    Aber ein Multifunktionscounter hat weniger Eigenschaften wie ein TIO-Counter. Aber wie gesagt ein Upgrade würde sicher gut tun!
    Grüsse
    Alex

  • Z600 workstation missing pci data acquisition and signal processing controller driver

    I just installed Win7 Pro x86 on my Z600 workstation.  It was an upgrade from WinXP Pro.  In Device Manager I am missing the driver for the PCI Data Acquisition and Signal Processing Controller and Hardlock USB 1.02.  Can someone assist me in finding these drivers.  I looked on the Support/Drivers page for this  model but couldn't find anything.
    This question was solved.
    View Solution.

    Hi,
    You might get better assistance on the HP Enterprise Business Forum since you have a professional worktsation.
    HP DV9700, t9300, Nvidia 8600, 4GB, Crucial C300 128GB SSD
    HP Photosmart Premium C309G, HP Photosmart 6520
    HP Touchpad, HP Chromebook 11
    Custom i7-4770k,Z-87, 8GB, Vertex 3 SSD, Samsung EVO SSD, Corsair HX650,GTX 760
    Custom i7-4790k,Z-97, 16GB, Vertex 3 SSD, Plextor M.2 SSD, Samsung EVO SSD, Corsair HX650, GTX 660TI
    Windows 7/8 UEFI/Legacy mode, MBR/GPT

  • Driver missing - PCIe Data Acquisition and Signal .....

    Hello, i recently used Boot Camp to install Windows XP on my 2010 15" Macbook Pro.
    All the drivers are working (so far) and i haven't encountered many problems.
    However, there is one thing bugging me:
    When i go into Device Manager in Windows, and look down the list of installed/uninstalled devices, there is a device called "PCIe Data Acquisition and Signal Processing Controller" which has no driver installed.
    I'm PC savvy, but i have never seen this before. My guess is that one of the motherboard drivers is missing, and Boot Camp installer doesn't include that driver?
    Has anyone seen/resolved this, and if so, how?
    Thanks.
    Kaj.

    Okay, will do.
    Thanks.
    Also i wonder if you could help with another problem?
    http://discussions.apple.com/thread.jspa?threadID=2758766&tstart=0

  • PCI Data Acquisition and Signal Processing Controller driver

    I've installed win 8.1x64 on my HP Probook 450 G2 but I am missing the PCI Data Acquisition and Signal Processing Controller driver.
    Can you please help?
    Thanks,
    Leontina
    This question was solved.
    View Solution.

    Hi:
    Please see if installing the Intel Chipset driver installs that device.
    https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20775&lang=eng&ProdId=816

  • Pci data acquisition and signal processing controller -Device software not installed

    My pc shows me ,the driver software for pci data acquisition and signal processing controller is not installed  on my Device manager.
    Please suggest me a suitable solution.

    No its not working , Give me an alternate solution.

  • Envoi de signal analogique continu avec Labview

    Bonjour,
    Je voudrais savoir comment envoyer un signal analogique continue avec le DAQ assistant de Labview.
    En effet je possède une carte d'acquisiton NI 6008 et lorsque je veux envoyer un message analogique de 5V en tension ( ce qui est normalement possible avec ma carte ) il me met un message d'erreur. Je ne peux que envoyer un échantillon sur commande...
    Merci d'avance pour la réponse.
    Cordialement.

    What error message do you get??
    Plus, I suggest you to use appropriate example VI's shipped with LabVIEW for Analog generation.
    You will find it at Find Examples>>Hardware input output>> DAQmx>> Analog generation>> Voltage>> i suggest 'Generate Multiple Volt Updates-Int clock.vi,  to start with

  • FFT pour un signal analogique en temps réel

    Bonjour,
    Je souhaite calculer la FFT d'un signal sortant d'un générateur de fonctions?
    Comment je dois le faire sur Labview? J'arrive pas à trouver les bonnes fonctions qui transforment ce signal qui est en temps réel en un signal manipulable par la fonction FFT disponible. sur la palette de fonctions de Labview.
    Merci d'avance pour toute remarque, aide ou suggestion.

    Greetings Sir,
    You can find many examples of the correct use FFT functions inside the LabVIEW Example files. The FFT functions come in two version,the 'default' and the 'point by point'
    The links above show the wiring options of each of these functions.
    Be aware that these vi's do not come with the LabVIEW Base version, they are available in the LabVIEW Full and onwards.
    Kind Regards,
    Wouter
    Applications Engineering
    National Instruments Belgium

  • E5-571 PCI Data Acquisition and Signal Processing Controller & SM Bus Controller

    I upgraded from Windows 8.1 to Windows 10. Windows Update says that it is up-to-date. Windows Devices Manager shows a problem with two devices: PCI Data Acquisition and Signal Processing ControllerSM Bus Controller What are these devices and where do I locate the drivers for them?

    That should do it. I've been pleasantly surprised by how well older drivers are working in Windows 10. I had to install Vista 64bit drivers for an ATI video card (the latest working drivers for the card) and they actually worked!

  • Driver needed for PCI Data Acquisition and Signal Processing Controller of HP 15- r247tu

    Install the Windows 10 Intel IMEI Intel Management Engine Interface (MEI) Driverhttp://ftp.hp.com/pub/softpaq/sp69501-70000/sp69593.exe The latest version of the Intel chipset driverhttp://ftp.hp.com/pub/softpaq/sp69501-70000/sp69575.exe All Windows 10 drivers available from HP are at the following link.http://support.hp.com/us-en/drivers/selfservice/HP-15-Notebook-PC-series/7486447/model/7693973#Z7_3054ICK0KGTE30AQO5O3KA30R1

    Hi: Try the chipset driver directly from Intel...the second file is the auto install file. https://downloadcenter.intel.com/download/20775/Intel-Chipset-Device-Software-INF-Update-Utility- If that driver does not install the PCI Data Acquisition and Signal Processing Controller, which the chipset driver should install, download the first file listed above (zip file). Unzip and extract the contents to its folder. Go to the device manager and click on the above device needing the driver.  Click on the driver tab. Click on Update driver.  Select the Browse my computer for driver software option, and browse to the unzipped driver folder. Make sure the Include Subfolders box is checked, and see if the driver installs that way. Then reboot.

  • Lenovo 14 20DM correct driver for 'Data Acquisition and Signal Processing Controller'

    Hi Everyone, I am the happy owner of a new Yoga 14 20DM. A few days ago I made the decision to upgrade to Windows 10. Whilst the upgrade went smoothly I did have to install a number of drivers manually. At the moment I am stuck on trying to install the 'PCI Data Acquisition and Signal Processing Controller' (as shown below).  I have tried right clicking on the device then selecting Properties > Driver (tab) > Update Driver > Search automatically for updated driver software, however doing so only shows the screen capture below!  Furthermore I have searched the Lenovo support page for a suitable driver however none is available! http://support.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-yoga-series-laptops/thinkpad-yoga-14/20dm?TabName Finally I have also installed, and run, 'System Update 5' the software program available from Lenovo. However it was not able to install a correct driver for this device. I have done a little searching on this topic, and have read a couple of stories about people installing an incorrect driver for this device, and then experiencing blue screens! Can anybody suggest how I can go about locating and installing the correct driver for this device? Any help will be greatly appreciated. Kind Regards, Davo

    Hi Ingemann, Ultimately I decided on the newest version of the Intel Chipset Device Software (INF Update Utility), which at this time (on the Intel website) is version 10.0.27. https://downloadcenter.intel.com/download/20775/Intel-Chipset-Device-Software-INF-Update-Utility- Interestingly enough I was presented with the message below when I ran this executable.  I selected Downgrade (with some trepidation), and after rebooting was pleasantly surprised to see that the troubled device was missing from the list. I can only assume that this means the correct drivers were installed. Thanks you very much for your help. Kind Regards, David

  • How to make a synchronous acquisition of two analog signals with a one channel DAQ ?

    Hi !
    It is the first time I use Labview. I have just made some easy VIs, and now, I do not know how to deal with my problem...
    My problem : I have only one acquisition card (DAQ Ni 6034E) and I would like
    to acquire simultaneously two analog signals. It seems to be possible, in a quasi-synchronous acquisition if the card acquires one point of the first signal, then the first point of the second signal, then the second of the first signal, and so on ... I thougth that I could made two sequencies with a VI of data acquisition in each sequency, with the AI MULT PT. But with this, I think that I will lose the precision of the sampling frequency. And I have to know the sampling fre
    quency ...
    Thanks for your help !
    Carline

    Hi Carline,
    A PCI-6034E is a low-cost board, which only has one Analog to Digital Converter (ADC).
    With only one ADC you can't acquire different channels at the same time. That's why you find a multiplexer before the ADC in this type of board. This enables you to acquire multi-channels at the same rate quasi simultaneously. The samples of the different channels will be interleaved as it is explained in the following knowledge base :
    - http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/9379ea091c264b7c86256bc90082ca5d?OpenDocument.
    With this method, the sampling frequency is the same for all channels. The sampling frequency of one channel is determined with the "scan rate" parameter. There is only a small delay between the samples
    of each channels. When you perform an interval scanning acquisition, this delay depends on the "sample rate" that you specify. To have more informations about this terminology, please refer to the following KBs :
    - http://digital.ni.com/public.nsf/websearch/4D1435DF82EF494186256D8A006DD6D4?OpenDocument.
    - http://digital.ni.com/public.nsf/websearch/4D1435DF82EF494186256D8A006DD6D4?OpenDocument.
    To easily perform such a multi-channels analog acquisition, you can use the VI named "AI Acquire Waveforms.vi". You also can use an example provided with LabVIEW. You just have to browse the NI Example Finder in "Harware Input & output >> Traditional NI-DAQ >> General".
    Best regards,
    Benjamin
    National Instruments France

Maybe you are looking for