I am having trouble with my USB cameras hanging a production machine. We are using 4 usb cameras from uEye for inspection and vision correction on a pick and place robot. The application is multithreaded, yet when the SNAP VI hangs, all threads in the application hang.
I can repeat this problem by disconnecting the USB cable to a camera. The system does not recover even after the USB is reconnected.
I have found in the past the Microsofts USB driver power managment seems to have an effect on the reliability of the USB system. The machine is also exposed to vibration which could cause intermittent connections.
While we are trying to solve all of these issues, I seem to have no way to detect if the camera is present before snapping the image. I cannot seem to prevent the system from snapping while the USB is disconnected.
Is there anything than can be done in order to have the SNAP vi return an error rather than hanging, or to tell the status of the device before snapping?
I have attached two example VI's which both repeatably cause the freeze. Just run the sample, plug in the usb camera, then disconnect it.
Im not sure if this is a LVDirectShow level issue, a DirectShow level issue, or a Camera Manufacturer(driver) issue (uEye).
If anyone has another brand of usb camera and can give my tests a quick run I would appreciate the feedback.
Thanks,
-Tim
Certified LabVIEW Developer