LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DAS combined with machine control

I am using LabVIEW to do a complete coding for a test rig that has heavy connected loads like 30kW DC drive, an array of hydraulic and pneumatic solenoids, inputs from a variety of stuff like user Push buttons, limits switches and such. Barring the DAS and plotting stuff, this is a job tailor made for a PLC. However I am doing it solely with a PCI6229 card and LV 7. Results are good.

As part of the sequence I have to capture / plot four analog channels ( rpm, flow, pressure, temperature ). And all four channels would qualify as DC signals. The maximum slew rate would be on the rpm which can go upto 1.0V/sec. What I have done is this :

- Have a master timed loop in the Main.vi running at 50ms capturing 1 sample / channel and storing this in a global variable. And plotting is done with a 10 sample moving average.

- The AutoMode.vi has another timed loop also at 50ms but with an offset of 10ms. This is coded as a state machine with a UI16 variable called "AutoStatus" which keeps track of the current state of the sequence.

- As of now things are fine with the plot also appearing quite normal. ( a typical screen shot is attached )

My question is this :

1. Is this the right approach in such sitautions where DAS is handled as part of machine control? Is LabVIEW the right choice or whether machine control is left to a PLC and LabVIEW does only DAS with a handshake with PLC ?

2.In my setup, suppose I want to increase the acquisition rate to 50 samples or 100 samples per channel and use the mean value instead of the single sample( to increase accuracy ) how do I do it ? And will there be any tangible benefit in doing it ?

3. If what I am doing is wrong, then what would be the right way ?

Thanks

Raghunathan
Raghunathan
LabVIEW to Automate Hydraulic Test rigs.
0 Kudos
Message 1 of 3
(2,586 Views)
Raghunathan,
It looks like your setup is fine. As you mentioned, a PLC is an option for this type of system, but as long as you can get the timing accuracy that you need with your LabVIEW application, you should be ok. About your acquisition rate, with any control algorithm, you want to keep the data acquisition at single point. It is not recommended to try to acquire multiple points, due to the importance of timing. Hope this helps!
-Alan A.
0 Kudos
Message 2 of 3
(2,556 Views)
suppose I want to increase the acquisition rate to 50 samples or 100 samples per channel and use the mean value instead of the single sample( to increase accuracy ) how do I do it ? And will there be any tangible benefit in doing it ?

The faster you want to go, the less timing accuracy you will have, using the internal system clocks. If you run at 10 Hz, the jitter of +/- 5 mSec (for example) won't matter much. If you're running at 100 Hz, that same jitter is a bigger chunk of your cycle. How much jitter you have depends on what else your CPU is doing during the DAQ time.

Whether there's a tangible benefit depends on what your signals looks like. If they're nice and clean (yeah, like THAT's going to happen with a 30kW Driver sitting nearby), then averaging is less important. The purpose of averaging is to remove noise. To really answer the question, you should look at the signals you have (with a storage scope) to see what you have to deal with. If you can filter it out with hardware, you don't need as much software conditioning.

I am working on a system reading 16 channels, and outputting two at a 100-Hz rate. For that, we use an RT card. It's got it's own processor and program and DAQ hardware, separate from the host PC. That's not a cheap solution, but it's necessary in some circumstances.
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


LinkedIn

Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 3 of 3
(2,544 Views)