04-23-2007 06:39 AM
04-23-2007 08:17 AM
1. In general, this kind of technique is something I've been using successfully for years. (Ben recently wrote up a very nice treatment of these "Action Engines" as a "Community Nugget.") So I don't start by expecting this to be a bug in the LV execution system.
2. Your description of the problem sounds almost backwards. You say you manually start the 2nd vi ("Config AD") *after* running the 1st vi ("Read AD"). Seems like you'd need to do the Config 1st and then do the Read, right? I kinda suspect you actually did it in the right order, but described it wrong.
3. The next likely scenario is that the Config failed, but you didn't trap the error and were unaware of it. Then it makes sense that the Read would also fail.
4. A couple issues I regularly deal with in these DAQ Action Engines is internal error handling. I often keep a shift register inside to store errors generated inside the Action Engine. But it can get a little tricky doing sensible things with both the internal error and any other error being wired in as input.
I said all that so I can say this: if you have complex nested case statements, or lots of different action cases to handle, double check that the task wire makes it from all the way from left shift register to right. Sometimes they get lost if they go through a case statement, the output tunnel is set to "use default if unwired", and 1 or more of the cases don't wire the output.
-Kevin P.
04-23-2007 09:20 AM
05-02-2007 07:15 AM
One more thought along the lines of generic troubleshooting...
Your first screenshot showed successful runs with 2 parallel loops in 1 main vi. What if you were to select on loop and choose from the menu "Edit-->Create sub-vi"? Does it fail when calling it from the newly created sub-vi when you automatically create it directly from working code?
-Kevin P.