10-06-2010 09:43 AM
My program is currently set-up to read a max 160 thermocouple channels from a PXIe-1073 with 5 PXIe-4353 thermocouple boards. The user has the option to read from all or some of the channels. From the channels activated the user can select up to 9 channels to chart. My DAQmx Create Channel vi reads a string of all the channels activated, these values I want to print to file at a certain rate. I also need to feed the chart channels selected to the chart on the front panel which will more than likely be at a different rate. What's the most efficient way to go about this? I've tried a few things and I know I'm getting an error because both functions are trying to execute at the same time. Do I read the array of waveforms which may have 160 channels and then somehow filter the active graph channels out of it? I tried feeding the string of chart channels to DAQmx Read property node but I'm still having trouble getting both reads to work together.
10-07-2010 11:33 AM
Well I went ahead and broke the waveform containing all the channels down using the Index Waveform Array function. I'm still having a problem with synchronization. I'm sure it has something to do with the daqmx timing principles that I don't fully understand. I would like to sample the channels with the highest resolution available since I probably won't sample any temperatures at anything less than a second. Thanks.
10-07-2010 04:16 PM
Hi,
What errors do you get? When you de-queue data in one place that data is not available to be de-queued in other places. You should notice gaps in your charts as the update with time as individual samples are sent to either bottom loop. Your subvi to filter the waveforms was missing but your basic idea is OK. The easiest solution may be to create two queues and que two sets of you data and have each loop look at a separate queque. Let me know how it goes.
10-08-2010 09:04 AM
The error I was referring was a timing hiccup. Whenever the program would write data to the file the chart would miss a second. Which is what you elduded to in your post I assume. If I set up two queues from the same source, the waveform generated by the daqmx read, how do I make sure both queues execute at the same time? Watching the data going to the chart and the data to the write file there should be the same value for the same channel every 5 seconds but that is not the case. Is there a way to read data at the fastest rate and somehow release data to the slower loop when needed? I've attached the sub vi used to break down the waveforms.