03-24-2006 10:44 AM
03-27-2006 02:23 AM
03-27-2006 07:28 AM
03-27-2006 07:54 AM
I'm not familiar with the term "automation-manager." I'm guessing this is either something new in LV 8 or else a feature known by a different name in my native country (USA), such as the DAQ Assistant or a MAX global channel/task. I don't generally use these features so I can't comment on specifics.
However, given the earlier exacting timing needs of the counter tasks I suspect that the method you describe for Analog In won't meet your needs. It sounds like you're describing a technique whose sampling rate depends on software loop timing. I would have expected you to want timing based on a daq hw clock.
Here's a technique I've used that may work for you. Outside your main loop, configure your AI task for continuous sampling and start it. Inside the loop, you can use a DAQmx Read property node to specify that you want to read 1 or more of the most recently sampled values. This gives you the freshest available data without ever needing to wait to retrieve future data. The properties in question are "RelativeTo", and "Offset". If you simply want the N most recent samples, set RelativeTo=MostRecentSample, Offset=-N.
You might get more speed by setting those properties just once after starting the task and before entering the loop, but am not sure I've tested that. In my recent app, I always set them inside my loop because some function calls wanted recent data and others wanted to wait for future data.
-Kevin P.
03-27-2006 09:33 AM
03-27-2006 10:23 AM
Sorry, I didn't explicitly mention how/where to read the actual AI values. Here's how: INSIDE the loop, right after calling the DAQmx Read property node, call the standard DAQmx Read.vi with "# to read" = N. (same N as previous post)
-Kevin P.
03-28-2006 03:30 AM