Chapter 2
79
Programming Fundamentals
Improving Measurement Speed
• Read two characters (#D), where D tells you how many N characters
follow the D character.
• Read D characters, the resulting integer specifies the number of data
bytes sent.
• Read the bytes into a real array.
For example, suppose the header is #512320.
• The first character/digit in the header (5) tells you how many
additional digits there are in the header.
• The 12320 means 12 thousand, 3 hundred, 20 data bytes follow the
header.
• Divide this number of bytes by your current data format (bytes/data
point), 8 for real,64. For this example, there are 1540 data points in
the block of data.
Minimize the number of GPIB transactions
When you are using the GPIB for control of your instrument, each
transaction requires driver overhead and bus handshaking, so
minimizing these transactions reduces the time used.
• You can reduce bus transactions by sending multiple commands per
transaction. See the information on “Putting Multiple Commands on
the Same Line” in the SCPI Language Basics section.
• If you are making the same measurement multiple times with small
changes in the measurement setup, use the READ command. It is
faster then using INITiate and FETCh.
• If you are changing the frequency and making a measurement
repeatedly, you can reduce transactions by sending the optional
frequency parameter with your READ command.
(for example, READ:<meas>? {<freq>}) These optional parameters
are not available in some personality modes such as Spectrum
Analysis or Phase Noise.
The CONFigure/MEASure/READ commands for measurements in
the option Modes allow you to send center frequency setup
information along with the command. (for example,
MEAS:PVT?
935.2MHz
) This sets the power vs. time measurement to it’s defaults,
then changes the center frequency to 935.2 MHz, initiates a
measurement, waits until it is complete and returns the
measurement data.
• If you are doing bottom/middle/top measurements on base stations,
you can reduce transactions by making a time slot active at each of
the B,M,T frequencies. Then issue three measurements at once in
the programming code and retrieve three data sets with just one
GPIB transaction pair (write, read).
For example, send READ:PFER? <Freq_bottom>;PFER?