I have a program where there are two VISA sessions, both doing a GPIB write immediately followed by a GPIB read to separate instruments on the same GPIB bus (imagine a loop polling data from two instruments at once to update a user interface). The two VISA sessions are not sequenced or connected to each other in any way.
I have actually done what I just described several times in LabVIEW programs, and never had problems. However, in a discussion with a colleague we debated whether or not this was just pure luck. I always thought that the VISA SW layer negotiated the communication to an extent that you did not have to worry about simultaneous GPIB calls as long as they were to different instrument addresses.
Am I wrong on this? Must GPIB calls to multiple instruments always be sequenced to avoid a possible communication error?
What you are doing works by design, not by luck. VISA and NI-488.2 do handle the use case that you're talking to two different instruments on the same GPIB bus. You would need to be careful about doing this if you were using board-level NI-488.2 calls. Since you are not, you shouldn't see any problems with what you're doing.
Thanks Craig- what is a "board-level" 488.2 call? I have used instrument drivers that use the old "488.2" functions in LabVIEW but I don't know if this would qualify as a board-level call and thus be subject to the problems you mentioned.