I have been using a VI to count edges of a pulsed signal of a particle counter. I have two 6024E cards (Dev1 & Dev2). I use the two counters on Dev1 and one counter on Dev2. The fourth counter (second on Dev2) is used for hardware timing of the Timed Loop. I write the acquired data to a Functional Global VI. Just to lay down all of the facts, in a separate autonomously running VI I acquire analog data from the two 6024E cards. This VI uses multi-device synchronization (with a RTSI cable).
I am using less than 20% of my computer resources when all is running. The problem is that the counter VI just stops as if a user has pressed the STOP button (so no error message or useful feedback). I think there is some logic in the counter VI which I am missing which would trap the error. I wait for hours during the day to wait for the error to occur, but it conveniently and often errors only at night when I am away.
I included the counter VI, the functional global, and a snapshot of the multi-device synchonization VI.
I would appreciate any suggestions you may have to help solve this problem.
Your counter VI will stop if an error occurs in your program, in which case you are setup to display an error dialog box, or if the timed loop finishes late. My guess is that overnight, the timed loop finishes late and stops the program. You can add an indicator to your program to display if this is the case. Many times, things such as virus scans, and windows updates are scheduled to run at night, which could cause your timed loop to finish late. You might check your computer's settings to see if this is the case, and change the time that they run or disable them on the nights that you need to run.