Main Content


(To be removed) Read binblock data from instrument

This serial, Bluetooth, tcpip, udp, visa, and gpib object function will be removed in a future release. Use serialport, bluetooth, tcpclient, tcpserver, udpport, and visadev object functions instead. For more information on updating your code, see Compatibility Considerations.


A = binblockread(obj)
A = binblockread(obj,'precision')
[A,count] = binblockread(...)
[A,count,msg] = binblockread(...)



An interface object.


The number of bits read for each value, and the interpretation of the bits as character, integer, or floating-point values.


Binblock data returned from the instrument.


The number of values read.


A message indicating if the read operation was unsuccessful.


A = binblockread(obj) reads binary-block (binblock) data from the instrument connected to obj and returns the values to A. The binblock format is described in the binblockwrite reference pages.

A = binblockread(obj,'precision') reads binblock data translating the MATLAB® values to the precision specified by precision. By default the uchar precision is used and numeric values are returned in double-precision arrays. Refer to the fread function for a list of supported precisions.

[A,count] = binblockread(...) returns the number of values read to count.

[A,count,msg] = binblockread(...) returns a warning message to msg if the read operation did not complete successfully.


Create the GPIB object g associated with a National Instruments™ GPIB controller with board index 0, and a Tektronix® TDS 210 oscilloscope with primary address 2.

g = gpib('ni',0,2);
g.InputBufferSize = 3000;

Connect g to the instrument, and write string commands that configure the scope to transfer binary waveform data from memory location A.

fprintf(g,'DATA:ENCDG SRPbinary');
fprintf(g,'DATA:WIDTH 1');
fprintf(g,'DATA:START 1');

Write the CURVE? command, which prepares the scope to transfer data, and read the data using the binblock format.

data = binblockread(g);

If the scope sends a terminating character after the binblock, binblockread does not read the terminating character. Read it by using fread. In this example, count is the number of bytes of the terminating character and can be 1 or 2.

if g.BytesAvailable == count


Before you can read data from the instrument, it must be connected to obj with the fopen function. A connected interface object has a Status property value of open. An error is returned if you attempt to perform a read operation while obj is not connected to the instrument.

binblockread blocks the MATLAB Command Window until one of the following occurs:

  • The data is completely read.

  • The time specified by the Timeout property passes.

If msg is not included as an output argument and the read operation was not successful, then a warning message is returned to the command line.

Each time binblockread is issued, the ValuesReceived property value is increased by the number of values read.

Some instruments may send a terminating character after the binblock. binblockread will not read the terminating character. You can read the terminating character with the fread function. Additionally, if obj is a GPIB, VISA-GPIB, VISA-VXI, VISA-USB, or VISA-RSIB object, you can use the clrdevice function to remove the terminating character.


To get a list of options you can use on a function, press the Tab key after entering a function on the MATLAB command line. The list expands, and you can scroll to choose a property or value. For information about using this advanced tab completion feature, see Using Tab Completion for Functions.

Version History

Introduced before R2006a

expand all

Not recommended starting in R2021b

Not recommended starting in R2021a

Not recommended starting in R2020b

Not recommended starting in R2019b