05-02-2016 05:13 AM
Hi everybody!
First of all thank you for your help in advance!
I am pretty new using PXI systems. Previously I used Labview for simple DAQ applications only. Now I am in a great time pressure to solve a DAQ problem using PXI. Your comments and inputs are greatly appreciated.
For an academic project we need to continuously acquire and log acceleration signals from 6 channels and voltage signals from 7 channels simultaneously at 22050 Hz sampling rate each. We have a remotely controlled PXI-1031 chassis with PXI-6221 DAQ card which I connected the voltage cables and PXI 4472B which I connected the acceleration cables. I collect the signals using the attached VI for around 15-20 sec for each experiment I conduct.
When I opened the collected signals with Diadem afterwards I realized that there are data losses for some channels. When I searched the forum and internet for answers I came up with 2 main ideas: Data queing and low level VIs but I am not sure. So my questions are:
- Is there a basic step that I miss which would solve my problem without applying queing or low level VIs?
- Can I solve this data loss problem with queing and low level VIs or is there something else that I should do?
- Do you know any additional documentation or link to solve such a problem?
I know I miss some fundemental knowledge and am constantly trying to improve myself buts ince I have a great time pressure I thought posting here and getting some answers would speed up the process. So thank you for your patience as well !!
Cheers,
Bircan
05-04-2016 04:29 AM
HI beercan,
without looking into your VI in detail I strongly suggest that you use low level VIs.
I guess your data loss is a result of writing your data to a file in the same loop that you acquire signals.
There are various examples how to use low level VIs in LabVIEW from where you can start.
Go to "Help" -> "Find examples" -> "hardware Input and Output" -> "DAQmx" -> "Analog Input".
I would suggest the example "Voltage - Continous Input". There is also a VI for logging in that example. You can just expand this examples to your needs. (Be careful that you don't override the original example!)
If your e.g. voltage channels have the same configurations (I guess they have) you can just put something like "Dev1/ai0:6" as your physical channel.
For your application you would have two tasks: one for your acceleration signals and one for your voltage signals. THere are also synchronization examples in LabVIEW (same folder). Look into those as well.
I hoped that helped.
Best,
Anna
05-05-2016 01:45 PM
Hi Anna,
Thanks a lot for your reply!!
I changed the DAQ assistants with the low level VIs as you suggested (See attachment). When I ran the VI in highlight execution mode the read daqmx runs only for a single loop and then gives an error -200279 so I tried queueing as suggested here:
http://digital.ni.com/public.nsf/allkb/A224DA0551EEA073862574F60060AB6F
However I couldn't get rid of this error. Additionally on my graphs I see only 1 of my 12 channels.
Sorry for the elementary questions and thanks for your patience.
Best regards,
Bircan
05-06-2016 02:28 AM
Hi,
don't run the VI in highlight execution mode to test it. This can resolve in problems with measurment timing.
Do you run also into this error if you execute it normally?
Please attach your current program so I can figure out why you only see one plot.
Best,
Anna
05-10-2016 12:43 PM
Hi Anna,
Sorry for replying late, I didn't have Internet connection.
In the meantime I improved my VI. Now I can monitor the signals and log them into a file. There is one more step that I'd like to do.
I'd like to trigger the logging from one of my analog channels. So I will monitor the process without logging until I have a 3V external trigger signal that starts the logging and finishes when the trigger signal drops back to 0.
My VI is in the attachments. Currently it doesn't plot anything on the graphs and also doesn't save the signals. However when I change the true false control to constant and run for each case, each case seems to work well independently.
Thanks again for your help!!
Cheers,
Bircan
05-11-2016 03:40 AM
Hi,
do you really want to implement your code so that the data is logged after the measurement and then gets plotted in your graphs?
You could display your graphs during the measurment in a diagramm...
There are various ways how to trigger your logging. You could use a Daqmx Trigger VI and then implement your logging after that VI. You could poll your signal and start logging when it is greater than 3V.
I don't know how you want to implement that.
Best,
anna