08-31-2008 12:58 PM
Hi,
Quick question. I'd like to know the best way to make sure my AO on my USB 6008 card is still alive.
I am using LV 8.0 and DAQmx 8.7.1
Background: We have been using these 6008s for a while, but we have some trouble with them dropping out periodically. We've resigned ourselves to that because they aren't in prime reliant situations and we can accept occasional failures in exchange for cost savings. However, I'd like to report to the user if one of them fails.
This is easy in the AI loops, because I grab the data often and if I get an error, the card has probably failed. on the other hand, my AO loops rarely talk to card, usually writing 1Chan 1Samp and then holding the DC value for long periods of time. I use an event structure, so it only writes to the card when it has to. What I would like to do is put some sort of check in the timeout event frame (Timeout=200ms), so that I know if there is a communcation problem.
I can write the value out again, but is this the best way to accomplish this task? I guess my real question is, what error returning function to talk to my card requires the least system resources? I know that 200ms gives me a lot of time to play with, but I'd rather do it right from the get-go rather than having to go back and change it if I have to lower the timeout time later for a different reason.
Thanks,
Greg
08-31-2008 02:38 PM
Hi Greg
What kind of an error message are you getting from your card when it fails. Do you even get an error message from your AO loop when your 6008 fails. If you do then you can just do a simple error check each itteration in your generatin loop. If your not getting an error message then I would probably have a small separate loop of sporned VI that did some kind of output input continously in the background. This would then not effect your the running speed of your test system and it would mean that in your main VI you would only have to check maybe the status of a shared variable which is a very fast process.
This of course would only work if you have spare channels on your 6008 and you would also need to be carefull if the resourse is being reserved by other aquisitions etc. What sort of check were you thinking of 6008 is mainly a passive so its hard to just check to see if its "alive" or its status.
best regards
09-01-2008 10:48 AM
Hi Graham, Thanks for your help. I do get an error on my generating loop when it fails, but the generating loop only runs may once an hour (It's a long DC output). Do you have a recomendation as to what input/output I would use in this secondary loop, or does it matter?
What is a sporned VI?
Thanks,
Greg
09-01-2008 11:17 AM
It shouldn't really matter, just some kind of output that reads straight back to an input. Externally short the two ports and then flag up when for example you stop reading the high you put in. In this way your "test loop" could run as fast as you want. Would it be possible for you to post your code so that I can have a look at what your architecture looks like. If you have IP troubles with your code then some kind of example code that has the same idea.
best regards