Programing Data Acquisition Card AT-DIO-32HS in LabView or ANSI C

Hello,my name is Andreas an I work the first time with LabView. We bought the NI AT-DIO-32HS card. My problem: I have a rnadom-generator application, with two data-outputs , data1 is the random data, data2 is the shifting frequency from the shift register which shifts the random-data out, I must aquire the random data each time when a positive edge of the "shift-frequency" occures. Do you have some programing examples in LabView or in ANSI C to give me a first idea for the programing of these aquisition cards? E_mail: [email protected]

Hi Andreasz,
Welcome to LabVIEW!
Any time I start working with a new device I start by searching the examples that ship with LabVIEW.
Goto search examples. Take a look at the examples located in
Hardware Input and Output >>> Solutions >>> 653x Logic Analyzer
There you will find four example that will get you sarted.
If you find these lacking, let us know what needs changed and we may be able to help.
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction

Similar Messages

  • Why ACK should be deasserted sometimes during the data acquisition with PCI-DIO-32HS burst mode handshaking?

    My peripheral device sends 32-bit data to the DIO board serially with PCLK 6MHz, about 300,000 times totally. The phenomenan like I mentioned in the summary above happens, and it causes some data missings.
    Though I know ACK is not always asserted as somewhere in the NI database says, I want to know why it happens. if I can. I wonder if it is just inevitable or not.
    Do I only have to add some buffer memories to my device and make it watch on the ACK changing? Or, is there any other good way to avoid this problem?

    Hi,
    Burst mode handshaking protocol needs to conditions to be meet before data can be transfered. The PCI-DIO-32HS need to be ready to transfer data and the external device needs to be ready to transfer data.
    The ACK line tells the external device when the PCI-DIO-32HS is ready and the REQ line tells the PCI-DIO-32HS when the external device is ready. When both are ready data should be transfered. This is the nature of Handshaking, guarenteed data transfer (when both devices are ready), but not at a guarenteed rate. Handshaking means that the two devices communicate with each other to determine when to transfer data.
    The PCI-DIO-32HS ACK line is toggling low because the PCI-DIO-32HS is busy catching up with the given transfer and is not ready to receive m
    ore data at this time. The ACK line is not something you can control, it is controlled by the PCI-DIO-32HS.
    Your application may be better suited for use with Pattern I/O if you are not using the handshaking lines, ACK and REQ, to control the flow of data. Pattern I/O does not use handshaking lines and clocks data in on every rising edge of the clock. You may receive an error if your system can not keep up with the transfer rate.

  • Help: can labview support anyone's designing Data acquisition CARD?

    I want to design a " Data Acquistion Card" with PCI interface,and want to drivedand process output data in labview, But I don't know whether Labview has this function to drive or read/write this kind of Data Acquisition Card which designed by myself not by NI company.

    What you use in LabVIEW will depend on what type of low level driver you write. LabVIEW has the Call Library Function Node for calling a DLL, the C Interface Node, Active X, and .NET functions. You can even use VISA and do register reads and writes.

  • 18f4550 USB Data Acquisition Card - Labview

    Hello!
    I made USB Data Acquisition Card from here:
    h...p://www.elektor.com/magazines/2007/november/usb-data-acquisition-card.271706.lynkx
    And I want controll this acquisiton card over Labview.
    Could you tell me please, is it possible and how!?
    What I need to do!? (step by step)
    Thank you!

    Hallo I got the same problem. I got the same DAQ, I have te DLL file and I found the Call Library Function Node but that is when I stuck. I don’t know which parameters I need to fill in. can some one thell me how to go on.  @124132543 maybe you already heave the DAQ working en can you help me.  
    Roy ( Holland)

  • Data acquisition from NI PXI 5152 using LabVIEW

    Hi,
        This might be really stupid question, I am new to LabVIEW and the Digitizer equipment. I was wondering if there are already any labVIEW based application available to read the data from PXI5152. I would be using both channels available and may be trigger. If there is no such application available, what would be port numbers I would be using for data acquisition. But, If I am to develop an acquisition software, I would be looking at every single specification of the equipment. I am assuming the output will be a digitized signal varying with the clock input, since It is used as oscilloscope. When working with labview how would I specify the port to read from and how would my PC recognize the port. I working on a pre-configured system and they won't let me unplug anything to check the configuration. Does NI provides a software to read into the signal fed into the channel and trigger inputs. I have tried looking into the different forum discussion but didn't find any that address my issue. May be it's too simple and stupid. But, it would be a great help if you could point out my misunderstanding.
    Thanks in advance.
    BP

    There are numerous examples. Help>Find Examples> Modular Instruments>Ni-Scope. There is a test panel available in MAX. On the Measurement I/O>NI-Scope palette, are all of the driver functions includeing the NI-Scope Express.
    I'm not quite sure I understand your references to 'port's. Once installed into the chassis, it should be listed in MAX. In the functions you will be using, there will be a dropdown menu that you will be able to select the scope resource name.

  • NI 9239, can a /-10V data acquisition card be used to measure 0-20V signal?

    Hello everyone,
                     I have NI9239 daq card, which has input range of +/-10V. Is it possible to measure 0-20V signal on same daq? if yes what would be the best approach?
    Thanks!
    Kudos are (always) welcome for the good post. :-)

    You'd need to level-shift your 20V signal down 10 Volts. Then you can compensate for it in software.

  • Pci dio 32hs burst mode

    We would like to use simultaneous input output data acquisition using the
    burst mode protocol.
    The problem is that we notice that the operations are not simultaneous: first
    a group and after the second.
    We have try all tipe of pclk (internal and external) and we connect req1 and
    req2 to an external manual trigger to have the same handshaking signal to
    both the groups. We also try to differ the active high or low of both the
    groups parameters.
    In the vi attachment, you find the simple 2 groups acquisition chains and
    it's easy to see that if you use an external clock of 1 Khz with 3000 input-
    output samples, the total acquisition time would be 6 second instead of 3.
    For our application it's necessary to use this protocol
    (not the pattern
    generation that we have tested in continuos and it worked) so we would like
    to have a solution to this problem.
    Since the pci DIO 32HS's manual asserts that it's possible to have 2
    handshaking operation simultaneous we didn't aspect so many problems.
    Thank you for your time
    Pier

    Hi,
    Burst mode handshaking protocol needs to conditions to be meet before data can be transfered. The PCI-DIO-32HS need to be ready to transfer data and the external device needs to be ready to transfer data.
    The ACK line tells the external device when the PCI-DIO-32HS is ready and the REQ line tells the PCI-DIO-32HS when the external device is ready. When both are ready data should be transfered. This is the nature of Handshaking, guarenteed data transfer (when both devices are ready), but not at a guarenteed rate. Handshaking means that the two devices communicate with each other to determine when to transfer data.
    The PCI-DIO-32HS ACK line is toggling low because the PCI-DIO-32HS is busy catching up with the given transfer and is not ready to receive m
    ore data at this time. The ACK line is not something you can control, it is controlled by the PCI-DIO-32HS.
    Your application may be better suited for use with Pattern I/O if you are not using the handshaking lines, ACK and REQ, to control the flow of data. Pattern I/O does not use handshaking lines and clocks data in on every rising edge of the clock. You may receive an error if your system can not keep up with the transfer rate.

  • Delay using block in with AT-DIO-32HS

    I inserted in a loop 4 sequential DIG_Block_In() calls to get input data with
    my AT-DIO-32HS in handshake mode.
    Before each call the program ensures that the previous transfer was completed,
    by means of DIG_Block_Check() calls, which indeed automatically call DIG_Block_Clear()
    at the end. The first call reads a small header (6 shorts) and retrieves
    how many data the next call should get. The second call reads that amount
    of data (which can be rather huge, say up to 2 Mbytes, dinamycally allocated).
    The third call reads a second header and the last call reads another huge
    block of data. This four operations must be repeated 100 times. What I experience
    is that the first time the loop is executed everything works fine,
    but before
    the second execution (getting next "first" header) the system waits for several
    seconds (!!). Note that the 4 calls use 4 distinct data buffers. I would
    avoid using double buffering in this case because my problem is really sequential
    and can be easily managed in the described way. Any help ?

    Hi Andreasz,
    Welcome to LabVIEW!
    Any time I start working with a new device I start by searching the examples that ship with LabVIEW.
    Goto search examples. Take a look at the examples located in
    Hardware Input and Output >>> Solutions >>> 653x Logic Analyzer
    There you will find four example that will get you sarted.
    If you find these lacking, let us know what needs changed and we may be able to help.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Data acquisition from multiple channels.

    Hello
    Right now, I am able to acquire the signal from a single load cell and display it.But I would like to know of how to acquire  acquire signals from two load cells simultaneously.I am using Labview 6i and I am using AI S-Scan with AI config to acquire the waveform.It would be of great help if you could suggest a simple method to acquire the signals.
    PS: Please find the attached file used for acquisition from a single load cell.
    Looking forward for your reply.
    Manasa
    Attachments:
    test 4.vi ‏102 KB

    Hi Manasa,
    If I understand what you are trying to do, it is relatively
    straightforward to configure your application to acquire data on two channels.
    I was unable to run your vi as it was missing some of the subVI’s
    from your application.  However, your
    attachment was sufficient to see what you are trying to do. 
    Here is how to add channels:
    1.      
    In the I/O Channel Constant, you can add
    additional channels by using a comma or a semi-colon.  For example, to scan the first four channels
    you would put 0:3 in the constant (see attached screenshot ChannelConfig.jpg).  To scan the first and third channel you would
    put 0,2.
    2.      
    The AI Single Scan VI will now read from
    multiple channels.  Often it easiest to
    configure the output of this VI for viewing by first putting the data into an
    array using the Build Array VI.  It can
    then be plotted in a waveform graph. (see attached screenshot ReadtoGraph.jpg
    and WaveFormGraph.jpg)
    Just a few notes about “simultaneous” sampling:
    Most of the NI data acquisition cards have a multiplexer
    between the various input channels and the Analog to Digital (A/D) converter
    creating a very small delay between each channel (usually ms range or
    smaller).  NI does make several data acquisition
    cards that can perform true simultaneous sampling, meaning that there is an A/D
    converter for each channel.
    For the large majority of applications, the small delay
    between channels is negligible.
    Jared T.
    Attachments:
    ReadtoGraph.JPG ‏21 KB
    ChannelConfig.JPG ‏288 KB
    WaveFromChart.JPG ‏61 KB

  • 6533 (DIO-32HS) card performance figures

    Hello all,
    I have a question about the fast data transfer using PC computer and 6533
    (PCI-DIO-32HS) card.
    I understand that the DMA is the bottleneck in transfer. The DIO 6533 manual
    offers
    some figures (10Ms/s for some PC mother boards) about performance when using
    pattern generation
    mode. Are these figures reliable ?
    Is it possible to obtain 10Ms/s performance ? The shortest timeslice in
    6533 is 50ns, which is enough but how
    about the DMA ?
    I'd appreciate overall data throughput figures in function of a certain PC
    configuration.
    Thanks in advance,
    Sami Laitinen

    Hi Adikus
    I have had the same problem recently - losing data points every time I transfer a half-buffer when acquiring in burst mode. Some application notes I found useful from the development library were:
    Measurement Hardware > Digital Input/Output > Handshaking >'Handshaking I/O Issues Using the DIO-32HS/6533 Device'
    Measurement Hardware > Digital Input/Output > General >'High-Speed Digital Considerations'
    and
    Measurement Hardware > Digital Input/Output > General > 'Digital I/O Applications'
    The problem you are having is due to the fact that you are not using the REQ and ACQ lines. The ACQ line is controlled by the PCI 6533 card and signals when the card is ready for a transfer. If you have a look at this line during acquisition you should see that
    it is set low briefly each time that you transfer a half buffer.
    You need to monitor the ACQ line and pause your external card from trying to input when the ACK line is low. I've added a FIFO between my instrument and the PCI 6533 card. I've found that I require this to be capable of holding 16k samples but I arrived at this value through testing alone (I am acquiring 2 bytes at 1MHz). My testing also illustrated how other activity on the PC can affect the acquisition, e.g. saving a large file would cause a pause.
    I've posted a couple of questions relating to this recently too which might be useful for you to check out.
    Regards,
    Cheryl

  • Data acquisition with daq card 6533

    Hi all,
    i need to develop a c++ (visual studio .net, no measurement studio)
    program that performs data acquisition at a sampling rate of 10Khz
    using a windows xp laptop and the daq6533 card.
    The program must sample 8 digital signals. Each signal has a limited
    time duration, say a few seconds, and acquisition should start on the
    first rising edge of a signal, and terminate on user input. Browsing
    through the code provided with the driver, i found the examples in the
    cdio folder. It seems to me they almost do what i actually need.
    Unfortunately, many of the functions used there are not supported by
    the 6533 card, in particular the GPCTR_* family. I've read somewhere
    else that this card does not have an hardware counter, is that exact?
    I'm a beginner in this field, so i don't know what are possible alternative solution to my problem (if any).
    Thanks for any help.
    walter

    Thanks for your reply.
    I don't know actually whether i need to use counter-related functions. My problem is the following:
    I need to sample 8 digital signals with a frequency of 10khz. Every signal have a duration of a few seconds in time, and they come from sensors attached to a train's railway. Acquisition begins on the first rising edge of a signal (which coincide with the passage of the train), and end with user input (which should be after the train has passed).
    It would be of great help if you can point me to a relevant example, or give me some basic guidelines on our to proceed. If you need more information, please just ask.
    thank you very much.
    walter

  • Data-acquisition with NI 6036E DAQ card & GPIB using an external trigger

    Hi all,
    I hope somebody could give me some help with the following and answer some questions:
    Simple system description:
    Labview 6.1
    PCI-GPIB card
    6036E DAQ card
    In my system, I am using an external analog trigger signal (A) for continuous data-acquisition. Characteristics of the analog trigger signal (A) are: ~40 Hz, signal height +1.48V, triggered by rising edge (the analog trigger signal (A) could be changed to a TTL signal). Each data-acquisition is done within ~1.0 ms after the rising edge of the trigger pulse. The timing of the data-acquisition and analyzing procedure is controlled by execution in a sequence structure placed in a loop.
    Now, I connected a power meter to the system, to measure the laser power during the data-acquisition. The power meter has two options to provide the laser power data:
    a) via analog signal output (voltage corresponds to laser power in watts)
    b) via GPIB (direct output reading of laser power in watts).
    Problem:
    During a certain point in my data-acquisition sequence structure (defined by a frame), I want to use the next occuring analog trigger signal (A) to acquire 1 value from the power meter.
    How do I do this in Labview programming for the following two situations?
    a) If I connect the analog output from the power meter to an analog input channel of the 6036E DAQ card. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    b) If I use the GPIB connection of the power meter. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    An other possibility would be to trigger the power meter directly, so it outputs constantly power meter values at ~40 Hz. How could I than acquire 1 power meter value (at a certain time im my sequence structure) via analog input at DAQ card or GPIB?
    Additional questions:
    How do I configure the PFI0/Trig pin on the 6036E DAQ board individually as an INPUT?
    How do I use an analog trigger signal (A) as counting signal for a loop, or as an activation signal for a sequence structure which includes GPIB commands?
    It would be very nice if somebody could give me some help.
    Kind regards,
    beam

    Hi beam,
    I just want to verify that I understand your situation correctly:
    An external trigger signal (A) is wired to one of your input channels (e.g. CH0) to trigger data acquisition of a second channel (e.g. CH1). Your power meter is connected to an analog input channel, which you would like to trigger with a certain rising edge at some of your sequence structure.
    Problem:
    During a certain point in my data-acquisition sequence structure (defined by a frame), I want to use the next occuring analog trigger signal (A) to acquire 1 value from the power meter.
    How do I do this in Labview programming for the following two situations?
    a) If I connect the analog output from the power meter to an analog input channel of the 6036E DAQ card. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    If a task has been configured to acquire signal from one analog channel, it's not possible to run a second analog input task or to add a second channel on the fly. You had mentioned that it's possible to read from the instrument through GPIB. Is it possible to perform a software trigger such that at a certain frame of your structure, when the trigger signal A reaches voltage "x", a GPIB command is written to your power meter to query a measurement reading?
    Additional questions:
    How do I configure the PFI0/Trig pin on the 6036E DAQ board individually as an INPUT?
    You do not need to explicitly configure the PFI0 line as an input. If you want to use it as an input such that it acts as an analog trigger, simply wire the trigger signal to this pin. When configuring the trigger in your software, specify PFI0 as the trigger source.
    How do I use an analog trigger signal (A) as counting signal for a loop, or as an activation signal for a sequence structure which includes GPIB commands?
    You can try using the Limit VI to find out when the trigger signal reaches a certain level, and count how many times this level is reached. Similarly, you can use this as the condition to execute GPIB commands.
    Hope this helps,
    Lesley

  • Digital Handshaking with two PCI-DIO-32HS Cards

    Hardware: two PCI-DIO-32HS Cards
    Software: LabVIEW 5.1, NI DAQ 6.6
    Problem:
    I'd like to do burst digital handshaking with two PCI-DIO-32HS cards.
    One being used for sending bit stream while the other receive.
    Suppose I want to use burst handshake mode.
    How should I wire the connections?
    Where should I wire the REQ, and ACK line from the sending card?
    Should I wire REQ from card one to REQ of the other card?
    Also, how do I configure labVIEW VI to do burst handshaking mode.
    Can anyone send me a VI that can do this.
    Thanks a lot.

    Matt,
    I would recomend using the DIdoubleBufPatternGen.C examples that ships with NI-DAQ. You can find it in your \NI-DAQ\Examples\VisualC\Di folder. If you don't have this example on your machine, you can get it by running NI-DAQ Setup and selecting support for C/C++.
    This example does double buffering to allow you to continuously acquire data from your card. Data is transfered only when a full 1/2 buffer is ready. You can set how long to acquire data by setting the number of half buffers to read, or by modifying the read loop conditional parameters to fit you needs. See the NI-DAQ help on how to set you REQ pulse rate to 100kS/s.
    Nick W.
    www.ni.com/ask

  • Register Level programming of the AT-DIO-32HS

    I am working with a piece of software that was written using the AT-DIO-32F card. The original programmer did NOT use the National Instruments driver with that card, but rather used a software library that allowed him to access and manipulate the registers directly on that board. The name of the library is called NTPORT (http://www.zealsoft.com/ntport/index.html).  He did this because he was not able to meet the timing requirements using the NI driver.
    We have to replace the AT-DIO-32F card with the AT-DIO-32HS card, and I would like to know if I can continue to do register level programming with the 32HS card.  I have found that I also can not meet my timing requirements using the driver that comes along with the 32HS card.
    I checked this web page (http://digital.ni.com/public.nsf/allkb/B08F4125A9325B3F862565CC0073E68F?OpenDocument), and did not find the AT-DIO-32HS listed. Does this mean I can not program its' registers ?
    Any feedback would be appreciated !!
    Thanks !!

    Hi Raminta-
    The Measurement Hardware Driver Development Kit (MHDDK) provides examples and register documentation for the 653x devices (which includes the AT-DIO-32HS).  The DIO-32F and DIO-32HS devices are quite similar, so it is possible that your existing code will work.  The resources on the MHDDK page should help you fill in any differences.
    Thanks-
    Tom W
    National Instruments

  • Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisition VI to predict when it is time to cease the acquisition to prevent the program crashing?

    Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisition VI to predict when it is time to cease the acquisition to prevent the program crashing?
    I am acquiring images and data to a buffer on the edge of the while loop, and am finding that the crashing of the program is unpredictable, but almost always due to a memory saturation when the buffers gets too big.
    I have attached the VI.
    Thanks for the help
    Attachments:
    new_control_and_acquisition_program.vi ‏946 KB

    Take a look at this document that discusses how to monitor IMAQ memory usage:
    http://digital.ni.com/public.nsf/websearch/8C6E405861C60DE786256DB400755957
    Hope this helps -
    Julie

Maybe you are looking for

  • Will MIM (Merchandize and inventory management) work with SAP AFS / SAP POS

    We are implementing SAP AFS ERP at the head office and SAP POS at the retail stores. We want to implement the MIM module for inventory management at retail store level. Does MIM work in conjunction with SAP AFS. A consultant was suggesting that MIM w

  • Co object assignment to a non-leading ledger account while posting

    Hi, while I m trying to post a document for non-leading ledger account which is opened as a cost element. for leading ledger it has to be filled by cost objects but in non-leading ledger is it a must ? In my opinion in non-leading ledger postings doe

  • New AD Server with existed IP address

    Hi, Our existed AD server is win 2003, and we are going to have a new Win 2012 AD Server. Since the win 2003 AD server is also the dns server in our domain, all our clients' dns setting is point to that win 2003 AD. I'm thinking let the new Win 2012

  • Expdp fail with ORA-39126 error

    When i trying to export partition table it throws following error. I have tried it with newly created table also. but still it gets fail. My DB version is: 11.1.0.6.0 (RAC) [oracle@db2 ORADATA8]$ [oracle@db2 ORADATA8]$ [oracle@db2 ORADATA8]$ ls -l to

  • Magma-box and DAQ PCI 6034E card

    I had installed a magma-box (64-bit 2 Slot Series) on my laptop. And I installed NI-DAQ 7.1. Than I had plug the PCI-6034E card in the magma-box. My laptop identify the PCI-6034E daq card in the Device Manager; but with a yellow exclamation point and