The only posts I saw close to this are quite old and I didn't see any real solutions so....
I am using LabVIEW 2014 with a PXIe-6612 counter/timer to count fringes in a Michelson interferometer. I need to check the count so I can know the location of the travelling mirror. "Checking the count" means I send a pulse to the counter to dump the count to a buffer so it can be read. I noticed when I put a 3 ms delay in the loop that checks the counter, few if any error occurred in a short-duration count but if I let the loop go as fast as possible, or I kept the counter going for a long period of time (or worse, both), errors would always occur. Errors always manifested as a count that was too low - I was missing counts. Further checking showed that the slower I checked the counter, the fewer errors I had.
I am convinved now that this happens when the request to read the count coincides with the actual event arriving at the counter. Obviously, the more times the "read count" request is made, the higher the probability that there will be a collision with the actual event arriving at the counter. This is a hardware issue and the only fix I can see is to implement synchronous read requests that are separated from the actual event by some minimum time. I have done this and I now get zero errors. The question arises as to how one might get around the problem if the events are random, say in a photon-counting experiment. Does anyone know a workaround that allows you to count random events with zero errors (other than not checking the count)?