01-10-2014 07:10 AM
Hi All
I am planing to do a test bench with 3 x NI9178 racks controlled by one PC.
I am using the NI-DAQmx API (nidaqmx.lib) and have created a C++ wrapper class to control the IO's.
I have approximately 300 IO's. The signals are primary DI and DO (NI9425, NI9476).
My question: Is there a limit to how many IO's or racks that can be controlled with the NI-DAQmx?
Best Regards
Peter Dalgaard Hansen
01-13-2014 02:36 AM
Hi Peter
There is no software defined maximum number of IO you can target in DAQmx.
Offcourse there is a maximum, but this maximum is much more floating because it depends on the computer speed you have, the bus speed of the daqmx application, and even more on the sample rate and data type you use to sample the data.
I've seen applications in scales much larger (and complex) than yours so there is no reason to be afraid here.
Best Regards
Anders Rohde | CLD | Platinum Applications Engineer | National Instruments Denmark
01-13-2014 01:45 PM - edited 01-13-2014 01:46 PM
Hi Anders.
Thank you very much for your answer.
With respect to sample rate: Do you know how much it takes to set an output (DO) and to read an input (DI)?
I was planing on a reading 150 signals and set 150 outputs within a scan rate cycle of 100ms. But perhaps this is to quick?
Br
Peter
01-14-2014 04:24 AM
Hi Peter
That depends on how you set it (one bit) vs. in bytes, and again what plaform your DAQ device is on. There will be a small overhead. But if we look at 300 signals that is represented in 38 bytes of information. That you would like to do 10 times per second = 380 bytes / s.
In my last project I sent more than 10 times that information on a slow USB 2.0 device so you are no where near the maximum either in speed nor channel count.
I can do some test for you if you have an application where you really need to know the boundaries and you need to plan you purchase after it, but for this it doesn't seem nessasary since you are no where near the limit.
Best Regards
Anders Rohde | CLD | Platinum Applications Engineer | National Instruments Denmark
01-20-2014 02:50 AM
Hi Anders
Thank you for your answer- much appreciated.
The platform is a Core2Duo, Win Xp machine.
My first approach was to read one bit at the time and set one bit at the time for all 300 signals within 100ms. I have now changed my approach so that I read 32 inputs (unsigned long - one input card) and set 32 outputs at the time giving less trafic on the USB bus and a leaner source code.
/Peter
01-20-2014 02:54 AM
Hej Peter
Sounds great.
Let me know if you need any more help.
Best Regards
Anders