Dynamic Signal Acquisition

cancel
Showing results for 
Search instead for 
Did you mean: 

Turn ICP of 447X on for a few seconds before start AI

Is it possible to turn on the ICP power supply of 447X for a few seconds before actually start acquiring analog data. Many ICP transducers takes a few houndred ms to become stable, some may even be longer. It would be nice if we can turn ICP on/off independent of AI Start.

At the moment, I just ignore the data of first few hundred ms.

Thanks.

Regards

Ian
0 Kudos
Message 1 of 11
(9,426 Views)
Hello Ian,

Take a look at the KnowledgeBase I have linked below. This will show you various methods of enabling/disabling the ICP for your board. You can use the AI Parameter VI to control the ICP circuit.

Therefore, you could place AI Parameter in a sequence structure with two frames. The first frame would be AI Parameter where you enable the ICP. The second frame would be a wait VI where you wait for a few seconds. The sequence structure would then end and your program would continue to AI Start.

292AIT2L: How Do I Use LabVIEW to Generate a 4 mA Current Excitation on the NI 4472 DSA Device?
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/90e485a463517c3686256a41005b2d2c?OpenDocument

Looking at the example program attache
d to this KnowledgeBase you will see a VI called "DSA Excitation Control". You could place this in the sequence structure since it is a fancy call to AI Parameter.

Best Regards,
Justin Britten

Applications Engineer
National Instruments
0 Kudos
Message 2 of 11
(9,425 Views)
Thanks, Justin.

It seems, however, DSA excitation is not activated untill AI start is called, so it does not matter how long I wait, I still have the same problem.

Ian
0 Kudos
Message 3 of 11
(9,425 Views)
I'm working on a vibration application using CVI. Once ICP is turned ON for a channel, it seems to remain on and only switches OFF on power down, my dll is removed from memory, or if power is turned OFF on that channel and data is resampled. In this project, one of the things that I do is use a strip chart component to show input data in "real time" during sampling. To set a satisfactory full scale value for the chart, I first get a short sample to get the peak input value to set full scale on the following "real" data and, at the same time, allow for some settling time. In any case, if you are concerned about settling time, you need to discard a first sample block if ICP power is OFF. You might take a short DC coupled measurement on ano
ther channel, if available to sense whether ICP power is already on but doing so on the same channel isn't useful because the 447X board also has some settling time when switched from DC to AC coupling. In the dll that I'm working on, I can save the channel status between measurements and, if the input ICP accelerometer hasn't been switched between measurements by external hardware, the saved status will determine whether a delay is necessary. Since the default state for the ICP power is OFF, it always must be turned ON at least once after power up.

Another possible solution that comes to mind is to test the average value of successive small blocks, the size of which would be determined by the measurement application and the board input time constant, during preliminary sampling and see if settling is occurring. If settling exceeds some preset value, you could repeat the process until acceptable settling has occurred.

Some older accelerometers have settling times as long as
10 seconds.

Thanks for asking the question as it prompted me to improve what I'd already done on my own current project.

Duncan
0 Kudos
Message 4 of 11
(9,425 Views)
Hi, Duncan

Thanks for your e-mail, it's really helpful. I have just tested in LabVIEW, it works the same way as you described.

Once the ICP is turned on (after running AI Start), it stays on even after AI clear, in fact it stays on even after I quit the LabVIEW program. I can turn ICP off by running AI start again with ICP turned off.

It's just an extra step, but I know how to do it now.

Something that I did not realise before is that after I acquire the data I want, I need to run AI start one more time to turn off ICP before I quit the program.

Thanks again.

Regards

Ian
0 Kudos
Message 5 of 11
(9,425 Views)
Hello Ian --

You bring up a good point. Although you can call the AI Parameter to set the IEPE excitation, this actually just modifies the "soft copy" for the acquisition task and does not physically take affect on the board until you call AI Start. The good news is that, unless you explicity turn it off, the excitation will remain on even after you call AI Clear to stop the task. This means that you can call one "dummy acquisition" at the beginning of your application to enable the IEPE, and it will stay on indefinitely. Than you won't need to reset the excitation in future acquisitons.

NI-DAQ 7.2 has added support for the 4472 in the DAQmx API. When using DAQmx, you can physically enable the excitation current before starting the acquisiton. To
see an example illustrating the excitation, take a look at the DAQmx 7.2 analog input shipping example called "Cont Acq Accel Samples-Int Clk-Analog Start.vi". This illustrates how the program IEPE on a 4472. If you would like to actually turn it on prior to starting the task, you can add a call the DAQmx Task Control.VI and select "commit" for the task control option. In general, "committing" the task is a new concept in DAQmx that allows you to request specific hardware actions before the acquisition begins.

Bryan
Message 6 of 11
(9,425 Views)
Thanks, Bryan

Something obvious but took me sometime to figure out is that when Device Reset.vi is called, everything is reset to default, including ICP setting (ICP default is off). Therefore, if Device Reset.vi is called between AI start calls, ICP will be turned off by "Device reset" and turned back on by "AI start", problem associated with settling time will occur.

Thanks again for you help.

Ian
0 Kudos
Message 7 of 11
(9,425 Views)
Hi, Bryan

Just found out that Device Reset.vi does NOT reset ICP to off. However, If I call Device Reset.vi between AI Start.vi, I have settling problem on the channels with ICP turned on.

It appears that ICP is turned off sometime between AI Start calls. Can you explain why?

Regards

Ian
0 Kudos
Message 8 of 11
(9,425 Views)
Hello Ian --

I believe that what you are seeing is because Device Reset.vi switches the input coupling backt to DC (the default selection). Even though IEPE remains on, the input circuitry will experience an offset transient when the coupling switches from DC to AC upon calling AI Start again. Electrically, this is nearly equivalent to switching IEPE on (or off) while maintaing AC coupling.

The possible workarounds should remain the same... you can use a dummy acquisition to allow settling, or if you are able to migrate to DAQmx you can commit the settings to the hardware before starting the acquisiton.

Bryan
0 Kudos
Message 9 of 11
(9,425 Views)
Is there a function in CVI that would allow me to read the current values of the AC/DC coupling variable and the ICP/IEPE variable directly from the board or from the hidden values that CVI stores? I can write them to global variables within my dll that remain as long as the dll is not unloaded and I assume that something similar could be done in LABView. I looked for a suitable function unsuccessfully.

I'm guessing that CVI does something similar to the DeviceReset.vi when the dll is unloaded; could you tell me exactly what is done then as there's nothing in my code to change these values on the board. I'm also curious about what happens to these parameters if the board is controlled from an executable that terminates after
each use.
0 Kudos
Message 10 of 11
(9,425 Views)