Replacing an AT-MIO-16X with a PCI-MIO-16XE

Updating an old system we upgrade DAQ card with one we tough was "all" identical, but I found that the DIO port is not. In fact the MIO-16X can be define as an 4 bits port but not the new card PCI-MIO-16XE-10. Unfortunately the Vi we are using was design with the 4 bits capability (4: Input, 4 Output). To minimize the modification of the software any suggestion...

Hello;
You didn't mention what Software language is being used to program the board, but, the best way to go about that is to mask the port, so you can have 4 bits working as input or output.
If you mask the port, you can still use your code as the port was a 4 bit port.
Hope this helps.
Filipe

Similar Messages

  • How to do a single channel DAQ using NI-DAQ driver software with a PCI-MIO-16XE-10 card

    Hi,
    I would like to find out how I could do a simple one channel Data Acquisition from a signal generator using the NI-DAQ driver software with a PCI-MIO-16XE-10 card.
    I have written some test problem but even when the signal generator is turned on/off I get back some weird values.
    Here is my code.
    CString sFunctionName("");
    double volt[OUTPUT_POINTS*2];
    double out[OUTPUT_POINTS*2];
    short timebase, ready, code, stopped;
    unsigned short sampleInterval;
    int i, status, count=0;
    unsigned long update, points;
    short* ai_buffer;
    short output_ch_vector[16];
    int local_ITERATIONS = 2;
    SAFEARRAYBOUND bound[1];
    double dataItem = 9.9;
    long j;
    long k;
    double* pTheValues;
    LPTSTR lpsz_ErrMsg;
    // Initialise device
    status = Init_DA_Brds (deviceNumber, deviceNumberCode)
    Initializes the hardware and software states of a National Instruments
    DAQ device to its default state and returns a numeric device code that
    corresponds to the type of device initialized
    Init_DA_Brds(DEVICE, &code);
    // Check return code from Init_DA_Brds
    Code return should be 204: PCI-MIO-16XE-10.
    if (code < 0)
    CString sError;
    sError.Format("Code error: %d", code);
    if (code == -1)
    sError = sError + ": No device found";
    LPTSTR lpsz = new TCHAR[sError.GetLength()+1];
    _tcscpy(lpsz, sError);
    AfxMessageBox(lpsz);
    delete lpsz;
    return S_FALSE;
    // Allocate memory for analog output and input arrays
    //ao_buffer = new short[OUTPUT_POINTS*2];
    ai_buffer = new short[OUTPUT_POINTS];
    // Set double-buffering
    status = DAQ_DB_Config (deviceNumber, DBmode)
    Enables or disables double-buffered DAQ operations.
    status = DAQ_DB_Config(DEVICE, 1);
    if (status < 0 )
    sFunctionName = "DAQ_DB_Config";
    goto TidyUp;
    // Get the rate parameters
    status = DAQ_Rate (rate, units, timebase, sampleInterval)
    Converts a DAQ rate into the timebase and sample-interval
    values needed to produce the rate you want.
    status = DAQ_Rate(RATE, 0, &timebase, &sampleInterval);
    if (status < 0 )
    sFunctionName = "DAQ_Rate";
    goto TidyUp;
    // Setup scan
    status = SCAN_Setup (deviceNumber, numChans, chanVector, gainVector)
    Initializes circuitry for a scanned data acquisition operation.
    Initialization includes storing a table of the channel sequence
    and gain setting for each channel to be digitized
    status = SCAN_Setup(DEVICE, 1, ai_channels, gain);
    if (status < 0 )
    sFunctionName = "SCAN_Setup";
    goto TidyUp;
    status = SCAN_Start (deviceNumber, buffer, count, sampTimebase,
    sampInterval, scanTimebase, scanInterval)
    Initiates a multiple-channel scanned data acquisition operation,
    with or without interval scanning, and stores its input in an array
    status = SCAN_Start(DEVICE, ai_buffer, OUTPUT_POINTS, timebase, sampleInterval, timebase, 1000);
    if (status < 0 )
    sFunctionName = "SCAN_Start";
    goto TidyUp;
    while(count < local_ITERATIONS)
    // Check whether we are ready to input another half-buffer
    status = DAQ_DB_HalfReady(DEVICE, &ready, &stopped);
    if (status < 0 )
    sFunctionName = "DAQ_DB_HalfReady";
    goto TidyUp;
    if (ready == 1)
    status = DAQ_DB_Transfer(DEVICE, ai_buffer, &points, &stopped);
    if (status < 0 )
    sFunctionName = "DAQ_DB_Transfer";
    goto TidyUp;
    count++;
    // Clear the analog input
    status = DAQ_Clear (deviceNumber)
    Cancels the current DAQ operation
    (both single-channel and multiple-channel scanned) and reinitializes the DAQ circuitry.
    status = DAQ_Clear(DEVICE);
    if (status < 0 )
    sFunctionName = "DAQ_Clear";
    goto TidyUp;
    status = SCAN_Demux (buffer, count, numChans, numMuxBrds)
    Rearranges, or demultiplexes, data acquired by a SCAN operation
    into row-major order, that is, each row of the array holding the
    data corresponds to a scanned channel
    status = SCAN_Demux(ai_buffer, OUTPUT_POINTS * 2, 2, 0);
    if (status < 0 )
    sFunctionName = "SCAN_Demux";
    goto TidyUp;
    //Convert binary values to voltages (Doesn't actually take a reading from board)
    status = DAQ_VScale (deviceNumber, chan, gain, gainAdjust, offset, count, binArray, voltArray)
    Converts the values of an array of acquired binary data and the gain setting for that data
    to actual input voltages measured.
    status = DAQ_VScale (1, 0, 1, 1.0, 0.0, OUTPUT_POINTS , ai_buffer, volt);
    if (status < 0 )
    sFunctionName = "DAQ_VScale";
    goto TidyUp;

    Hello,
    Please take a look at lots of examples available at :
    1. www.ni.com >> NI Developer Zone >> Development Library >> Measurement Hardware
    2. C:\program files\national instruments\ni-daq\examples\visualc
    Sincerely,
    Sastry V.
    Applications Engineer
    National Instruments

  • Can I generate sine and square waves with NI PCI-MIO-16XE-50 card??

    Can I generate sine and square waves with NI PCI-MIO-16XE-50 card??
    How Do I generate those signals?

    Hello;
    You certainly can do that. The way to go about that is to use one of the Analog Output channels your board have available.
    If you are using Labview to program the board, you can find good examples at Search Examples->I/O Interfaces->Data Acquisition->Analog Output->Multiple Point (buffered) Analog Output.
    If you are using other Software language to program the board, you can fing examples at C:\Program Files\National Instruments\NI-DAQ\example\VisualC\AO.
    Hope this helps.
    Filipe

  • Simultaneous sampling with a PCI-MIO-16XE-10 board

    Hello,
    I am using LabView with a PCI-MIO-16XE-10 board. I would like to make simultaneous sampling in multi channels. How can I do?
    Thank you for your help.

    Your question should be posted under "Measurement Devices >> Multifunction I/O" instead of "Real-Time DAQ" because the PCI-MIO-16XE-10 board is not a real-time device. The category "Real-Time DAQ" is reserved for 7030 real-time devices.
    The PCI-MIO-16XE-10 multiplexes channels across one amp and one A/D converter; therefore, it cannot perform true simultaneous sampling. Consider using the SC-2040 accessory, which has 8 simultaneously sampling differential amplifiers. Alternately, you can purchase a different board like the PCI-6110, which can perform true simultaneous sampling because it has individual A/D converters and amps for each channel.

  • Configuring executable labview programs originally configured with a PCI-MIO-16XE-10 on a system with a PCI-MIO-16XE-50 card

    I'm hoping someone can help me. I have executable labview programs created in another lab which used a PCI-MIO-16XE-10 card. I need to install these programs in a new lab which has a PCI-MIO-16XE-50 card installed. When downloading the executable files, Measurement and Automation Explorer gave a message that the physical devices could not be located. I presume this is because the executables are configured for the PCI-MIO-16XE-10 but the PCI-MIO-16XE-50 is installed instead. Any suggestions on how to get these programs configured with the PCI-MIO-16XE-50 would be greatly appreciated? Thanks.

    As long as you have the device identifier of the PCI-MIO-16XE-50 set the same as the PCI-MIO-16XE-10 for which the program was written, you shouldn't have a problem doing what you describe.
    One thing that confused me about your posting, however, is the statement When downloading the executable files, Measurement and Automation Explorer gave a message that the physical devices could not be located. This doesn't make sense to me. You're getting an error from MAX when downloading your program? MAX shouldn't be involved at all here, and especially not when just downloading your program. If you can provide more details about exactly what you are doing (maybe post some screenshots) then I'm sure we can help you get your program working.
    Good luck,
    Joe

  • Can i measure resistance with a PCI-MIO-16X-10

    good day!
    In my work we measure inflator resistance with an external ohmeter and switch selector, for now we're working in update this method of measure resistance. The program used to activate the inflators was built in labview 7.0 and use a GPIB and PCI-MIO-16X-10 boards only.
    The question is if we can measure resistance with this board (PCI-MIO-16X-10), we can do it?
    thanks for all...

    Cordero,
    Not directly but with some auxiliary circuit elements you can.  To measure a resistance you need to know both the voltage and current associated with the resistor.
    One way you can do this with a DAQ device is to create a voltage divider using a known external resistor. By measuring the voltage drops across both the known and unknown resistances, you can calculate the value of the unknown resistance.  You can use the analog output or the board power supply as excitation voltage for the voltage divider. Use two analog input channels to measure the voltages across the resistors. As long as the values of the resistors are much lower than the input resistance of the analog input channels, you can get good results.  The accuracy is limited by how well you know the value of the "known" resistor, the resistance of the inputs, and the accuracy of the A/D converter.  The accuracy of the known resistor is probably the largest contributor to the overall error.
    Lynn

  • Simultaneo​us sampling with a PCI-MIO-16​XE-10 board.

    Hello,
    I work with LabView and a PCI-MIO-16XE-10 board.
    When I sample 2 channels, it's sampling channel 1 and after channel 2. like this:1 2 1 2 1 2 ..
    I want to sample the both channel on the same time, like (1-2) (1-2)...
    How can I do?
    Thanks for any answer

    You buy two boards
    I'm not familiar with that particular card, but generally they have a single
    digital to analogue converter and measure multiple channels with it by
    connecting it to each in turn. This is done very quickly and usually the
    time between channels is much less than the time between readings or the
    times over which the measured parameters vary and it's convenient to think
    of all the readings in each scan as being instantaneous even though they're
    not. If the switching time is significant to the application, then you need
    multiple A-D converters all triggered simultaneously.
    Check in the manual to see what the switching time is. What are you
    measuring that it's such a problem?
    tao wrote in message
    news:506500000008000000D4160000-984
    [email protected]..
    > Hello,
    > I work with LabView and a PCI-MIO-16XE-10 board.
    > When I sample 2 channels, it's sampling channel 1 and after channel 2.
    > like this:1 2 1 2 1 2 ..
    > I want to sample the both channel on the same time, like (1-2)
    > (1-2)...
    > How can I do?
    > Thanks for any answer

  • I get error code 200324 with my PCI-MIO-16E-1 card

    I use Labview 7 and my A/D card was working until last week. Now I hardly find a PCI slot at my PC that the card doesn't crash my PC, and when I do I get this errod code 20034 from the measurement and automation explorer.
    I have tried mounting the card at other pci slots, it didn't work.
    the services nidevldu and nipxirmu are running - checked.
    Any ideas that could help me?
    Regards
    Christos
    Attachments:
    Error200324.bmp ‏2305 KB

    Christos,
    Aside from the services that you have already checked and they're running, another common cause of this error is needing to reset the DAQ device. After running an example in Traditional NI-DAQ, the board needs to be reset before running an NI-DAQmx example. In MAX, expand Devices and Interfaces. Then right-click on Traditional NI-DAQ Devices and select Reset driver for Traditional NI-DAQ. Hopefully, you will now be able to use the board with NI-DAQmx. Hope this helps. Have a great day!

  • Does pci-mio-16e-1 and pci-mio-16xe-10 function the same?

    Please excuse my lack of understanding for this hardware. I am not an engineer, just a computer tech tasked to build new pc's with this hardware.
    I need to know if the two cards can be interchanged. One is a 12 bit card, the other 16bit. The 12 bit card is the calibrated card to be used, replacing the 16 bit card.
    Thanks

    I'm not exactly sure what you mean by interchange, but both use the same driver, NI-DAQ. So if you have a version of NI-DAQ that is compatible with both devices (the last few versions are), the driver will recognize both devices. NI-DAQ will probably associate a different device number for the new board, when you put it in. So programs written for the other board might have to be changed slightly to account for the different device number. FYI - you can download (free) the most recent version of NI-DAQ here:
    http://digital.ni.com/softlib.nsf/webcategories/85256410006C055586256BBB002C128D?opendocument&node=132060_US
    -Alan A.

  • Installing PCI-MIO-16XE-10

    I am completely new to National Instruments and/or LabView. I need to do some project development with the PCI-MIO-16XE-10 board.
    I need to install the board. Where can I find up-to-date drivers?
    Also:
    What is Measurement Studio? Should I use it ?
    The purpose of this excercise is to develop a program for a medical application with extensive test of parameters and then dumping everything into firmware that will run a Microchip controller.

    Hi Mentamax,
    To find the latest drivers available for your DAQ board, check out our website at DAQ Driver Support Page
    Measurement Studio is a suite of native measurement and automation controls, tools, and class libraries for Visual Studio .NET and Visual Studio 6.0. Measurement Studio dramatically reduces application development time with ActiveX and .NET controls, advanced analysis libraries, scientific user interface controls, mewizards, interactive code designers, and highly extensible classes.
    There is a great application note on our website that talks about all the benefits of using Measurement Studio. I found it really helpful and its a great resource.
    Measurement Studio Application Note

  • PCI-MIO-16E-1 Drivers

    Hello,
    can any one let me know where can i get PCI-MIO-16E-1
    Drivers.PCI-MIO-16E-1 is from NI.
    Thanks in advance
    Bye
    Irfan

    http://forums.ni.com/ni/board/message?board.id=170&message.id=186319&jump=true

  • How to install NI6711 (PCI) & MIO-16X (ISA) on the same PC?

    NI6711 & MIO-16X work with two differents versions of NI-DAQ: Each version can detect only one DAQcard. What the solution to install them on the same PC?

    I know that the pci-6711 is supported since nidaq 6.5 and that since that version the at-mio-16x is no longer supported. Thus, there is no way to get them to install in the same computer. Either you must install them in different computers, or you should get a new board which performs the same operations of the mio-16x. There is a huge variety of E series boards which perform operations much better than that legacy board. Maybe you can get it to exchange with your Sales Rep.
    Hope this information is useful.
    L Aguila
    Applications Engineer
    National Instruments

  • Data acquisition and generation with PCI-MIO-16E-4 card help!!!!

    Hello,
    I'm using a PCI-MIO-16E-4 card with labview7 (in using DAQmx)and I
    would like to draw a frequency response.
    My problem is: my program can run correctly in low frequency but, it
    can't work correctly in high frequency (after 2KHz the signal is
    false).
    For verifying my program: I only try to generate and acquire a sweep
    sine. I constate after 2KHz the sine I read dosn't resemble to a sine
    I wrote.
    Can you say me where is the problem?
    Thank you.
    Le Trong Thao.

    "Dr. Imad" wrote in message news:<[email protected]>...
    > my understanding is that you are generating a sine wave (on one of the
    > anlogoutput channels) and you are trying to read the signal.
    > Since you can verify the signal at low frequency, but not at high
    > frequency, it looks like you should increase the scan rate of the data
    > acquistion (if you can, set it to 10 times the signal frequency)
    > You can also use an oscilloscope to verify the signal is what you
    > really generated.
    Thank you for your response.
    I've tried to do it, and I've tried several other possibilities but it
    doesn't work correctly.
    In fact, I think the problem is in my program. Do you have a program
    that works correctly? I f
    ound examples in the help but they don't run
    correctly.
    Le Trong Thao.

  • Is it possible to start a PCI4472 and a PCI-MIO-16E-1 simultaneously using an analog trigger (with pre-trigger)?

    I would like to start several PCI 4472 and a PCI-MIO-16E-1 simultaneously. All boards are connected via a RTSI cable.
    My program works fine if I use software trigger, or an analog trigger from a PCI4472 channel. However, the analog trigger works only when I set pre-trigger (or pre-scan) to 0.
    Is it possible to start a PCI4472 and a PCI-MIO-16E-1 simultaneously using an analog trigger (with pre-trigger)?
    Thanks.
    Ian Ren

    Hi, Bill
    I think it is possible to set more than 38 pre-trigger scans on a single 4472 card. I've done this before. You can verify this by running the Labview example "Acquire N - Multi-Analog Hardware Trig.vi" which comes with LabView.
    What I try to do but without success/luck so far is to start data acquisitions of several 4472 cards and a PCI-MIO-16E-1 card using an anlog trigger (with pre-trigger).
    Thanks for your help.
    Ian

  • How can I wire two PWM outputs of Accelerometer into PCI-MIO-16E boad with SC-2043-SG?

    I have been using counter/timer pin since the accelerometer (ADXL202AE, Analog Device) provides about 550Hz PWM signal. The purpose of the project is:
    - To acquire PWM signals with Full cycle(ms) and Posity duty cycle(ms) generated in Accelerometer.
    - To convert the cycles into acceleration value.
    By using counte/timer(GPCTR0_Source) and Trigger(Trig1) on SC-2043-SG board, the signal was obtained.
    However, after converting the PWM signal to acceleration value and plotting with labview on-line, the sampling rate was pretty low (26-28samples/sec).
    Then, I began to doubt that there is a wrong wire connection. Even though I am using one counter/timer pin, the sampling rate
    was low. The purpose of using the acceleration was to obtain two output using two counter/timer pins.
    Could anyone help me wire pins and solve the problem?
    GINO.

    Gino,
    You should definitely be getting many more values in your buffer. You should actually be getting 500,000 values every second because a measurement is being taken for every pulse. I found a couple knowledgebases that describe error -10920 and how to remedy it. One is pasted below and the other can be found through the link.
    But I'm not sure if you're going to be able to fix this problem because you're measuring pulses at a very high rate. What is happening is every time a pulse width measurement is taken it is put into an onboard (DAQ board) FIFO buffer that is 9 samples long. The computer then reads these samples out of the FIFO and into an a buffer that you can see in LabVIEW. I think the FIFO is filling up too fast and the computer is not able to read the data out fast enough. Therefore you are losing samples because they are being overwritten. This is all dependent on your system.
    Here are some benchmarks for pulse measurements:
    The following numbers were derived from a Gateway with 128 MB-RAM and an Athlon 700 for ONE counter of the PCI-6602. The number of counters you are using will affect these numbers.
    Finite Buffer
    Buff Period - 7.25 MHz
    Buff Pulse Width - 7.25 MHz
    Buff Semi-Period - 3.35 MHz
    Continuous Buffer
    Buff Period - 250 kHz
    Buff Pulse Width - 250 kHz
    Buff Semi-Period - 140 kHz
    You should still be getting many more samples than 26 though. Try using this example with a very slow frequency pulse to make sure it operates correctly. Then start speeding up the pulse and determine when you get error -10920.
    Here is an internal knowledgebase that may help you:
    Title:
    After Long Periods of Acquisition with AI and Counters, a -10920 Error Occurs
    Problem:
    A customer has a PCI-MIO-16E-4 and his application is acquiring analog input signals and performing event counting with the buffered event counting mode. The problem is that the buffered event counting is at some arbitrary amount of time (e.g., after 2 days) getting an error with the number -10920. The questions are:
    1. Why is he getting this error?
    2. Do you know how big the FIFO is for this buffered event counting?
    3. When he shares a DMA channel with the floppy controller, how can we make sure they use separate DMA channels?
    Solution :
    Here are the answers to the above questions:
    1. There is probably just some noise on the signal line coming in at some point. The STC is VERY sensitive, so if there is any fast glitching, it will attempt to transfer all of these. This can also happen if the signal does not ramp up fast enough, resulting in double-triggering in the middle region. Use a filter, or a Schmidt trigger*, to clean up the signals. Another suggestion is to use the PCI-6602 with filtering.
    2. There is no FIFO used for the counters. The mMite has its own FIFO, but it is only about 9 samples long.
    3. PCI does not "share" DMA channels. It may technically be the same DMA channel number, but this is just for reference. PCI cards use Bus Mastering. With Bus Mastering, the operating system gives up control of the PCI bus so that the hardware (in this case, our DAQ board) can handle its own data streaming, eliminating the extra step of having the OS monitor the transfers. The DMA channel numbers are just the "channels" that are supported by the mMite chip. You can have 3 PCI cards in the PC, each with DMA 1, 2, 3, and none of them will actually be sharing any resources.
    And another knowledgebase about error -10920
    http://digital.ni.com/public.nsf/websearch/8FB9091CB9BB452B8525642000554799?OpenDocument
    Hopefully this all helps,
    Erick D.
    NI Applications Engineer

Maybe you are looking for

  • NOT BE ABLE TO PRINT IN IE10

    I have windows 7 x64 bit OS and 16GB ram.  I used Ie8 before and it printed without any issues on either printer.  If I upgrade to IE9, I get an error when trying to print - "An error has occurred in the script on this page.  Line : 2053 Char: 1  Err

  • How to use CALL FUNCTION '/1BCDWB/SF00000014' in smartform

    hiiiiiiiii Iam doing classical report n i want my output to be printed in smartform. So my output is in IT_FINAL table.In smartform in Form Interface Table column i had declare ::: Parameter Name: IT_FINAL Type Assignment:LIKE Associated Type:ZSD_FIN

  • How To Count Filtered Records

    Hi We have a report, which has a couple of sections in it, and are trying to include a count in the summary section, which should correspond to the number of records shown in the detailed section. The detailed section has a filter applied, and that f

  • Salary Payable wrt to Profit Center wise

    Dear All, I am finding a particular issue regarding the posting document creation of salary from HR to FI. I like to know that can we allocate Profit Center to employees in any of the infotype of HR. if so let me know. We have allocated Cost Center t

  • Calling a applet in JSF page

    Hello Folks I am having problem accesing the applet from the web application my applet runs fine if i run it in the IDE. These are my methods in the bean public String getApplet() {           applet = "<applet code=\"applet.PrinterApplet.class\" code