We are using cDAQ-9178 for a system that is supposed to run autonomously for 30 days unattended. During development we had a labview crash or programming state issue that put the system into a failure mode we didn't anticipate. To de specific, DIO module ni9375 outputs got stuck in a state that was no bueno. Root cause still unknown.
Since this particular system doesn't have a hardware watchdog that will failsafe if there is a crash we need to come up with another way to safe the system if the application crashes.
One thing we noticed is that the system will failsafe correctly if the USB to the cDAQ is disconnected, all ni9375 outputs go low which works as a failsafe for us.
Question1: Is there a function we can use that will disconnect the usb or can we deinitalize the cdaq for the same effect?
Question2: What should we be looking at to address application crashes? Whitepapers? Are there proven architectures that are robust to handle application crashes?
Question 3: if we can program a the DIO 9375 to output /input loopback a heartbeat and program a watchdog on that if it stops, can we trigger something that will be immune to application crashes?
Question 4: Is there a good whitepaper to make sure LabVIEW is handling memory well? no memory leaks in my application?
Thanks!!