LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How fast should 7030E run Real Time (E Series) PID Control Loop?

I am running Real Time (E Series) PID Control Loop (from DAQ Solutions) but substituting the PID controller with a simple digital controller of my own. The input is random white noise. The input and output are seen through a vector analyzer. This VI has a sampling frequency that you can set (samples/s). After downloading, running it on the 7030E and looking at the output through the vector analyzer I am getting sampling rates of 1 kHz or lower. This is with graphing turned off. Also, when I increase the sampling rate from 1,000 to 10,000 samples/s I still get a rate of 1 kHz.

The same digital controller on the 6052, using PID Control Loop (DAQ Solutions) runs at 3 kHz. I would expect the 7030 RT to
be alot faster than the 6052.

Should the 7030E be faster? What could be slowing it down? Any help is appreciated.

Also, what is the difference between Real Time (E Series) PID control Loop.vi and PID Control Loop.vi in the DAQ solutions?
0 Kudos
Message 1 of 7
(4,382 Views)
RT proccessors are NOT faster, but they are deterministic.

The 7030 only has a 133 Mhz proccesor.

What kind of proccesor are you comparing this too?

A properly written RT app running on a high end PXI RT controller, can do 44kHz PID loop.

What the 7030 will give is determinism. You should find that the update rate of 1000Hz is rock solid re:update rate.

This is not possible on a non-RT platform.

I hope this helps,

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 7
(4,382 Views)
When you say deterministic do you mean that the VI will execute at a sample time with no variation? So this precision in execution time is what RT gives?

I'm comparing the 7030E to the 6052E using a 900Mhz processor.

My digital controller VI consists of about 3 additions, 3 multiplications and 2 shift registers. It is inserted into the Real Time (E Series) PID Control Loop.vi (from the DAQ Solutions). Is this RT VI not optimized or properly written for speed? If not, how do I maximize the speed? Where should I go for help with that?

Also, what would you consider a "high end" PXI RT controller?
0 Kudos
Message 3 of 7
(4,382 Views)
Hi Xeneca,

I recomend you adress your question to "ni.com/ask".

I am a consultant with DSA and am very busy today. The reaserch required to answer your question properly is not an option.

Yes, determinism is what you get from RT.

Anything over 800 MHz should handle all but the most extreme apps.

An app I co-developed was named as a finalist in NI-Week's parper contest. We closed 7 (or was it 11?, to bust don't remember) PID loops with 25 AI's at 1KHz with time to spare while doing status updates to the outside world and talking proprietary protocol on two RS-485 ports.

RT is wonderful, but must be approached properly if you want things to work.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 7
(4,382 Views)

Ben's comments are right on.

The 7030/6040E has a "motherboard" (7030) and DAQ "daughterboard" (6040E).

The DAQ board in use (6040E vs. 6052E) makes no difference in terms of maximum PID or other control loop rate. This is controlled by the processor the code runs on. In the case of the 6040E, your code is running on the 7030 which as a 133 MHZ 486 processor. As documented in the below link, the fastest you can expect to see on a single channel is just over 1 kHz, as you are seeing. A high-end PXI RT controller would be the PXI-8176, which has a Pentium III 1.2 GHz processor. This type of controller with a PXI-6052E or PXI-6040E or other E-Series DAQ device would likely be able to run your code (which sounds to not be the problem) at 40 kHz or faster, as shown in the second link below.

The fact that your code runs at 3 kHz on a Windows machine running a 900 MHz processor is not surprising, but what you will find with Windows is that this 3 kHz rate is not consistant. It might even run at 3 kHz 99% of the time, but every now and then Windows will take over your system and cause a loop to take a full ms or more to execute. That, as Ben mentioned, is what RT is for: to guarantee a small upper bound on this variation in loop time. In the case of your 7030, you can only achieve 1000 Hz, however, each loop iteration should be 1 ms with variation of only a few microseconds. In Windows you will find very large (ms-or-larger) variation in loop cycle times (this variation is also known as "jitter") that are generally unbounded in size.

Message 5 of 7
(4,382 Views)
Thank you Jeff!

Xeneca, let us know if you have more questions.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 6 of 7
(4,382 Views)
From both of your comments it seems I am using the wrong controller for the job. I need to run my loop at around 20 kHz. The 7030 seems to be inadequate for that.

I am new at LabView and LabView RT. I was unaware that RT is used for precision timing and not speed.

Thanks for your help, no more questions for now.

xenaca
Message 7 of 7
(4,382 Views)