Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

USB 6210 for 3 channel, 500 Hz sampling using queues: time stamping

The task:

Continuous monitoring, and logging, of vibration signal plus some other diagnostics. Sampling rate: 500 Hz, three channels. Divided into user-defined intervals of 1 to 20 minutes.

The components:

- PCB 356B18 triaxial accelerometer + PCB 480B21 signal conditioner
- NI USB 6210 card
- LabVIEW 8.6 on Windows

I'm modifying code that was written by someone else, for a different set of equipment (e.g. PXI 4461 card) and specifications. This is my first confrontation with LabVIEW. I've gotten help from my local colleagues on several points, but none of them have experience with queues so I think it is time to ask my questions here. I've attached an image of the block diagram. Bits that look really peculiar are probably my contribution... please feel free to suggest improvements. Here then are some of the questions I'm trying to answer:

 

0. I know the code doesn't have a release queue command. Stupidly, I can't see where/how I need to put this in.

1. Hardware error:

At the property node I'm getting a -200452 error. I assume this is because my USB 6210 DAQ does not support the 'Overloaded channels' thing.
Is this correct? What do I need to do to fix this?

2. Time stamp

If I understand this correctly, for each run interval (loop), the time stamp that is assigned is that what is "measured" at the end of the samples collection period. For example, if I start a 500 Hz, 60000 samples collection at 08:22, the time stamp assigned to it is 08:24. I would appreciate suggestions on how I should go about reading the actual start time into the file.


Thanks!
-zc

 

 

accel-8d.png

0 Kudos
Message 1 of 9
(4,156 Views)
Hey zc,

please post your VI instead of that image. It's a lot easier to see what you're doing if I can see the code itself.

You release the queue after the upper loop has finished.

The error -200452 inidcates that you use a property your hardware doesn't support. But I need to have to code or a screenshot of the error message to be sure.

Stefan
0 Kudos
Message 2 of 9
(4,136 Views)

Hello Stefan,

 

Thanks for writing. I didn't realize the image was illegible, sorry about that. I've attached the version of the VI that I'm working on at the moment (I'm trying to implement the basic level trigger detection function in place of the comparisons I had).

 

I had the same idea about the error.

 

Thanks, and best wishes.

 

-zc

 

 

0 Kudos
Message 3 of 9
(4,132 Views)

I took a look at your code.

 

Please look at the examples shipped with LabVIEW, especially the frameworks. Go to File -> New and a window will appear. Select VI -> From Template -> Frameworks -> Design Patterns and open the Producer/Consumer Desing Pattern (Data). This is the basic framework of a design pattern with two parallel while loops and a queue for transfering data.

 

If you go on the property itself and click the right button to get the shortcut menu you will see the help for this property. If you then follow the links "device-specific" and then "E-Series ..." you will see all property you can set while the task is running.

 

What do you exactly mean with your Time Stamp?

 

Stefan

0 Kudos
Message 4 of 9
(4,109 Views)

Hi Stefan,

 

I did explore the Producer/Consumer Design Pattern (Data) VI and I've tried to mimic the release queue command in my code but I haven't been able to get it to work yet (the program just hangs up). I'll keep trying and I'll report back if I make progress.

 

As for the property node, I don't see a "device specific" option. Under Select Filter/Configure Filters Settings I do see an option for the NI USB 6210 but nothing about E-Series... Any ideas on what I'm doing wrong?

 

As for time stamp, I would like to save the data with its 'real' time information. But maybe this is not possible using the structure I currently have.

Let me see if I can explain the problem:

 

Say I have a loop running that takes 60,000 samples (at 500 Hz, this is 2 minutes of data collection) in each pass.

Say the measurement started at 09:13:31.

As the code stands at the moment, the time (t_0) that gets assigned in the file is 09:15:31 (after the collection ends), not 09:13:31

Maybe I just have to live with this and make the necessary adjustment after the fact.

 

Thanks for your continued help!

 

-zc
0 Kudos
Message 5 of 9
(4,102 Views)
Attached are the steps I took to see what property nodes are possible when using M-Series devices.
0 Kudos
Message 6 of 9
(4,086 Views)

Hello Stefan,

 

Oh, I see now that I wasn't clicking in the correct area (D'oh!) Sorry to waste your time on this.

 

Thank you.

-zc

0 Kudos
Message 7 of 9
(4,079 Views)

I dont have your VI where you save the data but the information in the waveform data type should be the time stamp when you aquire the data.

 

Stefan

0 Kudos
Message 8 of 9
(4,074 Views)

Hi Stefan,

 

Thanks for all your efforts. I'm going to try a different approach to the problem because I think this code is not right for what I need to do.

 

-zc

0 Kudos
Message 9 of 9
(4,071 Views)