We are running a RT desktop PC with a pair of M serires or E series cards acquiring between 12 and 20 analog inputs 2 to 4 analog outputs and as many as 16 DO. We do a 1 second control loop where the RT is not communicating with the host and just acquiring the AI's, doing some math and sending out the AO and DO.
Our control loop, which is not multithreaded, runs at 10kHz. It works ok, but the structure is old and horrible and I am goign to rewrite it.
We currently use dual core intel chips in the 2.0Ghz range and run 8.6.1. The new software will need to run on the same chips but will be written in LV2011.
What is the fastest loop time that anybody has gotten off a desktop RT, what kind of structure do most people use for very large industral controls that requrie short periods of high speed control and acquisition. I wanted to do a multithreaded comand processor arcacture where we acquire all the time at 10khz, but I have had troubles in the past getting this to run fast enough in other applications. Just wanted to make sure peope had gotten this kind of thing to work at these speeds.
This is Andrew Brown, an Applications Engineer from National Instruments. I will be able to help determine feasibility for your application. As part of that, I would appreciate if you could clarify some details:
1. What M series or E series DAQ cards will you been working with?
2. Is your sampling frequency 10kHz for your Analog Input? If not, could you clarify what AI sampling rates you will be using?
3. What dual core intel card will you be working with?
4. Could you clarify the desired period of the control loop (1 second, etc.)?
5. Finally, do you have desired loop rates for other aspects of the program?
E series we use a DIO98( not used in the high speed part of the applictiaon) and a PCI-6071E
M series we use PCI/PCIe 6259 and 6224 cards
In the future we intend to swith to current generation i series processors but we have some units in the feild that would need to run on this software for some years to come. I think the slowst one we have out there is a 2.0GHz proc LGA774
Sampling at 10kHz on the AI and controllign the AO at the same rate
The primary control loop runs at 10kHz also.
For the most part we would want some other loops to be run at 10kHz such as controlling a limited number of DO channels .
Then at a lower sample rate we would send data to the host computer and recieve commands over TCP.
We would also wan the ability to log the data save it locally so that after a test event it can be transfered topside (we currently just save it the memory buffer then TCP it up but I would like to keep some data on the RT only)
I appreciate the clarification on the hardware and loop rates. The large variation in desktop RT hardware (especially CPUs) lead to drastically varying performance possibilities. Thus, the best resources I located on possible loop rates relate to PXI controllers (which are just small form-factor RT PCs). One such article is Benchmarking Single-Point Performance on National Instruments Real-Time Hardware. The big caviat to mention is that the PXI controller used has a Core 2 Duo processor running at 2.53 GHz.
In order to reach peak performance, multithreading the application with higher and lower priority loops is definitely recommended. Some good resources on improving performance and structuring your program include:
Also, good methods for performing file I/O can be found at Best Practices for Target File IO with LabVIEW Real-Time.