I have an application that has been in use for several years. The program communicates with a Keithley 7002 scanner and 6485 picoammeter to read currents from several channels. I recently upgraded NI software to CVI 2019 and NI-488.2 v19.5. The code has not changed, but I am now having problems with instrument communication. Specifically, I am getting a timeout error with ibrd() under certain conditions. I have attached a text file containing the relevant functions.
I first call InitializeInstruments() to perform initialization. The ibsic(0) call at the top of this function will cause subsequent ibrd() calls to fail. I commented that call out, but I run into the same issue when I send the "INIT" command at the end of the Init_6485() function. The GPIB_Communication_Routine() is invoked by a timer callback. If either of the aforementioned functions are called, the ibrd() response to the *OPC? query fails due to a timeout error. Commenting out the "INIT" command avoids this particular error, but this causes instrumentation errors to be displayed on the picoammeter (so I need to issue this command for things to work properly).
Have there been any changes to the NI software that would explain this behavior?