06-19-2016 08:28 PM
Hello Eeveryone,
We are a Disel Engine Testing Lab. In one of our test cells, we 've installed a cDAQ 9178 chassis w/ 5 C modules:
- Slot # 1: NI 9205
- Slot #s 2 & 3: NI 9213
- Slot #s 4 & 5: Ni 9219
We developed and have been using, for a couple of years, a LV app for monitoring, datalogging & reporting several engine parameters. We used a "DAQ Assistant" for setup channels scales, sampling mode as "On-Demand", and rate = 4Hz (Low Speed).
Now, we've interest in monitoring "In-Cylinder pressure" related w/ Crank-angle. For to accomplish this task, we will require a High Speed acquisition w/ a special Transducer, an encoder, and a hardware capable to acquire data at specific sampling rate.
Details: - Max Speed: 1050 rpm
- Encoder: 7200 ppr
-- > Sampling rate = 126 000 S/sec = 126 kHz
Here my questions:
1) As cDAQ 9178 include 3 different timing engines: Can we execute, in this chassis and at the same time, 2 tasks w/ different sampling rates (Low Speed & High Speed)???
2) Can we include both tasks, in the same LV App, using 2 different "DAQ Assistants", and running in parallel???
3) Can we use the ports PFI0 & PFI1 for to Trigger & Clock directly, using the "Z" and "A" signals from the encoder???
4) As NI-9205 has a Sampling Rate=250kHz, and can be triggered: Can we add an extra NI-9205 module, let say in Slot# 8, for to acquire the "In-Cylinder pressure" while is "Clocked" through PFI1 ???
We appreciate in advance your answers / suggestions / recommendations.
Thanks,
Michel
06-20-2016 02:37 PM
Michel,
I'll try to answer some of those questions at least.
1) You should be able to run multiple tasks with different sampling rates.
2) You can include both in the same LabVIEW VI. I would recommend not using DAQ assistant for high speed data aquisition. You should consider using lower level functions for better performance. See the link below for help getting started.
3) I believe you should be able to trigger and clock in this manner.
4) You should be able to do this.
Thanks,
06-20-2016 11:13 PM
Thanks a lot Wild_man for your replay.
As soon as we've installed the encoder I'll be creating a preliminary code for to test this whole configuration, and I'll let you know the results.
Just for curiosity, when you mention "low level functions" are you refering to some code like the one below?
If so, I would like to comment you that I obtained it by right-click over DAQ Assistant and selecting "Generate NI-DAQmx code". Also, for learning, why "Low Level" is more eficient??
The link suggested is missing. Pls, could you re-posted it?
Thanks again and always appreciate your support.
Michel OC
06-21-2016 11:08 AM
This is what I was reffering to. Also referencing the examples included with LabVIEW you can find a lot of pre-built code to adapt to what you need.
http://www.ni.com/product-documentation/2835/en/
Also, the low level DAQmx functions allow finer control over the execution of DAQ tasks. For example you can explicitely change states or you can start and stop tasks outside of a while loop (as you should) in order to speed up execution. They also allow you to run and syncronize multiple tasks.
06-21-2016 11:26 AM
Thanks again Alex for your info and explanation. I'll be reading the doc you sent me.
We'll keep in touch.
Michel OC