I am using a Tektronix MSO5204B oscilloscope (firmware 10.8.3 build 3) and a Tektronix AFG3022C (Version 1.0.2) function generator. The scope is connected over USB and the function generator over the USB-GPIB adapter. PyVisa with the NI-Visa driver as a backend is used to interface with the scope and the tkafg3k driver for the function generator.
I have a python program that does some measurements (a couple of mean voltage levels and step response waveforms). If I run the program for the first time after booting the scope, everything runs through smoothly. However, on consequent runs, I get the following warning: VI_WARN_UNKNOWN_STATUS (1073676421) on viOpen().
Then the program sporadically fails with the following error: VI_ERROR_INP_PROT_VIOL (-1073807305).
If I try to record the error with NI IO Trace, things get funny: The function generator takes very long (~2s per parameter) to configure and the protocol error does not occur! So somehow NI IO Trace is interfering with the communication.
I tested the program with another scope, the Tektronix DPO7104C, and everything works fine there, even on multiple runs.
Furthermore I tried with the MSO5204B connected over ethernet, and while the error behaves identically, it gets reported as VI_ERROR_TMO (-1073807339). This time I was able to record the problem with NI IO Trace, which is the trace attached below (I wasn't able to create a minimum example, but I reduced the code to execute only the setup for the measurements, so that is why there aren't any measurements happening).
So, does anyone have an idea why this timeout/protocol error is thrown, even though the statement's syntax is correct (concluding from the runs that go smoothly)?
And how can I stop NI IO Trace from interfering with USB communication? Especially the slow configuration of the function generator is annoying.