Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Instron 5800 EABO during data readout

Hi,

 

I am very new to LabVIEW and having only used it in the last 3 months, I've managed to put together some codes to get the Instron 5800/8800 to work partially. There's a lot of things that I still do not understand but it has been quite exciting learning so much. So far, I've managed to set the crosshead to move based on my criteria, but I will experience an error mid-way through data logging. Currently, I set the data to read out while the crosshead is still moving, and I realised that it's when the cross-head reaches its end point that I will experience an EABO error (sent by the machine). The extraction of data from my buffer will continue for a few rounds but will eventually terminate without full readout. The machine uses GPIB and I'm using VISA in my codes. The data readout is done in a loop and has delays that match the time required for the buffer to be filled. I've looked through the NI website on EABO (https://www.ni.com/en/support/documentation/supplemental/22/gpib-error-codes-and-common-solutions.ht... error but I still can't figure out what is wrong. Any idea what is causing the problem? Any help or suggestion would be much appreciated.

 

Thank you!

 

0 Kudos
Message 1 of 8
(5,217 Views)
The error will often occur if you send a command before before a read has finished. Without seeing your code, it is hard to give a definitive answer. When doing a read, be sure to request enough bytes. A read will automatically terminate on EOI so the number of bytes should be some arbitrarily high number. GPIB communication is sequential so do not attempt anything in parallel.
0 Kudos
Message 2 of 8
(5,214 Views)

Thanks Dennis for your reply. Should the EOI be counted as 1 byte? Right now I'm reading 4008 bytes, which is calculated from a buffer size of 500 x 2 columns x 4 bytes per column + 8 bytes for header. I have included the section of my code that doesn't work properly. In my TDMS file, my samples are in multiples of 500 (which is expected. I get a range of 6-8 buffer read out). The wait time is set at 1000ms, which is the amount of time required for my buffer to fill. The part before the loop calls the machine and data logger to start, and similarly the part after the loop clears the machine and data logger.

0 Kudos
Message 3 of 8
(5,206 Views)
EOI is not a byte at all. It's a GPIB control line for 488.2 compliant instruments. Assuming your instrument is compliant, don't calculate anything. For example, if the instrument returns 5 bytes or 5000, requesting 10000 will work exactly the same for both.
0 Kudos
Message 4 of 8
(5,202 Views)

Yes it's compliant, as I managed to get a read out for a few loops. I wasn't exactly calculating; just showing how the value of 4008 bytes was derived. Since my return byte is correct, then the error is not to do with the visa read...then what is wrong?

0 Kudos
Message 5 of 8
(5,199 Views)
I have no idea what you mean by return byte is correct. If the return count is equal to the requested amount, increase the requested bytes to read. If they are still equal, keep increasing until they are not.
0 Kudos
Message 6 of 8
(5,197 Views)

Sorry but now I'm not following you. The instrument returns 4008 bytes, so I've set VISA to read 4008 bytes. I have tried with 5000 to VISA Read and it still reads 4008 bytes.

0 Kudos
Message 7 of 8
(5,194 Views)
Good. Leave it at 5000.
0 Kudos
Message 8 of 8
(5,189 Views)