10-24-2019 12:23 PM
Hello,
I made a program that essentially power cycles a vacuum pump for thousands of time and I record the vacuum from a transducer once every second.
When I ran the program, it stopped because the vacuum did not reach a certain set point within a certain amount of time. I reviewed the text data file to see when this event occurred but noticed that the program did not record this event. There is a 3 minutes segment in the data file that was not recording where I think the failure event occurred ( see screenshot below).
The way I have my program setup is, I have three loops running parallel. One loop to acquire all the data, a state machine loop, and a data recording loop. In the data recording loop, I just put a "wait" function in the loop so that it only loops once a second so that I can record only once a second. Maybe this is the wrong technique.
I have attached my project in a zip.
Anyone have any advise? Thank you
10-24-2019 12:54 PM
@ANON12345 wrote:
Hello,
I made a program that essentially power cycles a vacuum pump for thousands of time and I record the vacuum from a transducer once every second.
When I ran the program, it stopped because the vacuum did not reach a certain set point within a certain amount of time. I reviewed the text data file to see when this event occurred but noticed that the program did not record this event. There is a 3 minutes segment in the data file that was not recording where I think the failure event occurred ( see screenshot below).
Haven't looked over your project in much detail, just guessing here. Does your failure/error event throw a dialog? If so, you may have a case where the "root" loop is preventing other loops from running or your dialog is waiting for a response and that is preventing your loop from running. (Google root loop and LabVIEW.)
I typically make my own dialogs and call them asynchronously to prevent any blocking conditions unless I explicitly want to freeze the loops waiting for a user response. For example, if there is an error, does the user want to ignore and continue or exit the program. This would be a blocking call. If I just want to inform the user that the disk is almost full, this may be a non-blocking call. (I turn off logging automatically when the a certain disk threshold is reached.)
mcduff
10-24-2019 01:26 PM - edited 10-24-2019 01:45 PM
Hi Anoon,
I have a few questions on that.