I have a software solution that is used in over 20 different installations. It is written in .NET and uses continuous sampling with an asynchronous callback reader to read 100S/ch and 1000S/ch/s. The next call for samples will not fire until the last is complete. I am using one USB cDAQ chassis and one ENET (9188) chassis. I have used these devices extensively on other systems. I am installing two nearly identical systems and one seems to throw a 200284 error every 30 minutes or so (random). I swapped out the network cable to see if that was the problem, yet the problem persists.
Typically, when this happens the device will fail a self test and I have to go through a series of restarts/reboots to establish connection again. The power is connected to an automotive 12V battery with a 60A supply for charging purposes, so power should be consistent. I did a wiggle test and it passed. There are other devices on the same power that do not glitch (engine ECU, etc.). I have five days left here and I must solve this problem ASAP.
If I disconnect the power supply, the failure mode is the same.
Is it possible to recover from this without killing and restarting the task?
Any help would be greatly appreciated.
This is a very interesting issue. So the VI project that you are using is the same throughout all of these systems?
You say that only one of the two systems is throwing this error. Is there a way that we can swap the hardware between systems (and leave the software unchanged between the two) and verify if the problem follows the hardware to the other, previously working, system?
Generally when these errors occur, a producer/consumer architecture is the best way to solve it. Also, we have knowledgebase articles that cover errors 200284 and 200279 that will be helpful tools for you as well.
You should be able to recover from an error like this by simply restarting the device rather than the controlling PC. There is an option for this in Measurement & Automation Explorer, but there is also a DAQmx function called "DAQmx Reset Device.vi" found in the DAQmx Device Configuration Palette. If this reset reestablishes the connection properly, you can programmatically run this VI whenever the errors occur.
The only issue with this is that you will need to restart the task because after resetting the device, the configuration that the task established is cleared.
I hope this helps! Have a great day!