I have two signals I need to sync up, measuring with a PXI-6071E (yes, it's old). One is a motion controller with an irregular movement speed, the other is an optical sensor. The motion controller has an output that stays at 5V, then drops very quickly (<1 µs) to 0V for 10 µs, then climbs back up to 5V again (much slower, on the order of 100 µs). It produces this output at around 100Hz for now, though I can change the speed (it's just signalling each time it moves 10 microns). If you download the "Sample waveforms" VI you can see the output for yourself (I wired it up temporarily to an Analog In input to capture it).
I need to measure the optical sensor (AI16 in the code) each time the motion controller output drops, starting approximately the first time it happens (it could skip the first few if needed). I've wired its output signal into PFI3 on the 6071E via a SCB-100 box. I then attempted to set up measurements as you can see in the "Sample reader" VI. Each time I run the sample reader VI, I get between 0 and 15 points and then it ends with an error of -200019. I saved one such final readout as default so you can see it.
My best guess is that the clock is too irregular and it gets confused?
I do see that PFI0 and PFI1 are labeled as start and reference triggers for AI, but I need to hook up 3 different axes of motion controllers at once and I was under the impression they were interchangeable.
This is under LabVIEW 7.1 on Windows XP (for reasons beyond my control, we use 2015 almost everywhere else), but you should still be able to load the VIs to look at them.
I tend to agree with your assessment that the external clock signal has some irregularity (glitches, ringing, etc.) that lead to the error -200019. The clocking circuitry would be sensitive to things much briefer than what you'd be sure to catch with your 1 MHz capture of that signal.
The fact that you can capture at 1 MHz with a clean internal clock but rapidly produce the error when using the external clock at only about 100 Hz is telling.
Can you pass that signal through a Schmitt trigger and see if that helps?
At this point I'm thinking that it might work better just to "brute force" it, i.e. instead of using an elegant trigger setup with the PFI lines, I'll just capture both signals using analog in at the highest sample speed I can set it to, and then scanning for the 5V → 0V transition on the first line and matching those to samples on the second line with the same time stamp. The card can capture at 1.25Ms/s, and only 100Ks/s should be needed to pick up a 10 µs voltage drop, so dividing the max among 2 channels should be fine.