It's not the case that ibln doesn't work with our instruments.
The reason we use a 300sec timeout is because we occasionally do a read from an instrument before the instrument is ready to respond (some instruments don't support SRQ or polling status byte). In which case, if we did a ibln prior to doing the receive, it'd fail, since it is currently processing and not listening to the bus. In these circumstances we do a receive and wait around for a while. Problem is that sometimes the response never arrives.
A lot of this is to do with the way we are programming the GPIB driver. We're using the low-level send/receives, so we can't set individual timeouts for each instrument. One instrument make take 4 minutes to respond, which is o
k, but another may take 30 seconds. If we don't receive a response after this period, we wish to abort the read.
It's a bit of a dodgy arrangement, but we are stuck with these instruments and their method of responding. What we are trying to achieve is a "controlled" failure, rather than the NI driver blocking for the full length of time.