LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to remove channels from a running DAQmx task on the fly (without restarting the task)?

Solved!
Go to solution

I have a testing application where I'm reading a large number of DAQ channels until I see a specific threshold, after which I no longer care about that channel. For example, pretend I'm reading battery voltages to track discharge time. Once the voltage hits a "discharged" threshold I can mark that channel as "depleted", after which I no longer care about that channel. (It's not actually battery voltage, it's a much higher sample rate application than that but it's not relevant).

 

Is there a way to stop monitoring that channel in my DAQmx task? The reason I ask is because of a couple of reasons-

1- The input impedance may change after the individual DUT has reached its "finished" point, which may affect subsequent channel's settling times

2- My sample rates are quite high and have a large amount of data throughput per channel

 

My primary concern is with measuring two subsequent channels with drastic impedance differences. Can I drop one of the channels from the task while it's still running?

 

I can obviously just stop and restart the task, but doing will lose my timing information and there will be a period of time where I am not measuring the output (while the task restarts) which means I may miss some events.

 

I see the property node "DAQmx Read: ChannelsToRead" but I'm not seeing how to use it just yet.

0 Kudos
Message 1 of 3
(2,602 Views)
Solution
Accepted by topic author BertMcMahan

No, you can't do this directly.  Even if you can make use of "DAQmx Read : channels to Read" to stop retrieving the data from the buffer, the hardware won't stop multiplexing in the undesired channel with its high impedance.

 

I've never personally used the NI Switch products, but I believe this is one of the kinds of things it would help with.   That may be too steep a price and learning curve for this one application, so you could also look into a more manual version of that based on some relay-like intermediate device inline with each channel.  Something that you can control on command when you detect that a channel is "finished", and make a switch to keep that channel's high impedance away from your DAQ board.

 

Not an area of experience for me, maybe others have a very specific recommendation?

 

 

-Kevin P

CAUTION! New LabVIEW adopters -- it's too late for me, but you *can* save yourself. The new subscription policy for LabVIEW puts NI's hand in your wallet for the rest of your working life. Are you sure you're *that* dedicated to LabVIEW? (Summary of my reasons in this post, part of a voluminous thread of mostly complaints starting here).
0 Kudos
Message 2 of 3
(2,588 Views)

Good to know, thanks. I didn't think it would be possible but I had my fingers crossed 🙂 Even if I could just divert the channel to somewhere with a known impedance that would work, but I assume I can't switch the "target" pin either. Looking at the internal signal routing it appears the only internal routes supported are digital/counter routes. This makes sense but I'm glad to have it confirmed.

 

I may be able to work around it externally with a biasing resistor of some kind. I'll need to talk to my electrical guys to see if it's possible to keep a "failed" device somewhat close to the original impedance without killing my original signal.

 

Thanks for the help!

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