I'm trying to design a system that has two devices that are each independently controlled by an analogue and digital signal using a PCIe-6363 NI DAQ card. The digital signal is defined as a series of duty cycles and frequencies on a counter line and the analogue signal is a 0-10V signal that is sampled at 1kHz. These signals are then convolved to get the device's output:
The digital signals I can control using counter lines, so that isn't a problem. However, I'm having trouble with controlling the analogue outputs. They need to send a data point at 1kHz sample rate, so I was hoping to control them with a clock. The attached VI does work, but the two analogue inputs are timed by the same sample clock, and so I've had to set them up on the same task. This means I can't control the analogue outputs independently i.e. they have to be turned on and off or altered simultaneously. Is there a way for me to use the sample clock to time both of the analogue output lines independently at the same sample rate?
If you run the code, it won't actually do anything without the devices in between, but I hope it makes sense despite that. Here's an image of what it reads with the devices in:
Solved! Go to Solution.
If you need to truly control each AO line independently, you need a simultaneous output DAQ, unfortunately, your DAQ has only one Timing Engine that can support AO task and hence any AO that needs control has to use the same Timing Engine and hence same task.
Thanks for the quick reply. That seems pretty definitive. So there's no way to, say, link the two analogue outputs to the same clock at a constant sample rate, and then write to them separately? Or would that still require more than one Timing Engine?
It's still workable if I have to run them through the same task. I'm just going to have to modularly create tasks based on the number of active devices.
Thanks for the quick reply! That sounds pretty definitive then. So there's no way to link two analogue output lines to a sample clock at a constant sample rate and then activate those independently? That would require more than one Timing Engine?
I can still work around it if I can't control them independently. I'll just need to create the tasks modularly based on which devices are active. It's less flexible, but I think it should work.
You've to update all channels in a task and not selectively.