Generating Srq On Buffer Full - Keithley 2016 User Manual

Thd multimeter
Table of Contents

Advertisement

Generating SRQ on buffer full

When your program must wait until the Model 2016 has completed an operation, it is more
efficient to program the 2016 to assert the IEEE-488 SRQ line when it is finished, rather than
repeatedly serial polling the instrument. An IEEE-488 controller will typically address the
instrument to talk, then unaddress it, each time it performs a serial poll. Repeated polling of the
Model 2016 will generally reduce its overall reading throughput. Therefore, use the
function call.
The Model 2016 provides a status bit for nearly every operation it performs. It can be
programmed to assert the IEEE-488 SRQ line whenever a status bit becomes true or false. The
IEEE-488 controller (your computer) can examine the state of the SRQ line without performing
a serial poll, thereby detecting when the 2016 has completed its task without interrupting it in
the process.
The following example program segment sets up the Model 2016 to assert SRQ when the
reading buffer has completely filled, then arms the reading buffer, initiates readings, and waits
for the Model 2016 to indicate that the buffer is full.
This is not a complete program. Not shown are the commands to configure the trigger model
and the reading buffer (see the next example). The example shown here can be modified for any
event in the Model 2016 status reporting system.
'Reset STATus subsystem (not affected by *RST)
CALL SEND(16, "stat:pres;*cls", status%)
CALL SEND(16, "stat:meas:enab 512", status%)'enable BFL
CALL SEND(16, "*sre 1"' status%)'enable MSB
CALL SEND(16, "trac:feed:cont next", status%)
' Start everything
CALL SEND(16, "init", status%)
WaitSRQ:
IF (NOT(srq%)) THEN GOTO WaitSRQ
CALL SPOLL(16, poll%, status%)
IF (poll% AND 64)=0 THEN GOTO WaitSRQ
Notice that after the program has detected an asserted SRQ line, it serial polls the Model 2016
to determine if it is the device requesting service. This is necessary for two reasons:
Serial polling the Model 2016 causes it to quit asserting the SRQ line.
In test systems that have more than one IEEE-488 instrument programmed to assert
SRQ, your program must determine which instrument is actually requesting service.
Once an event register has caused a service request, it cannot cause another service request
until you clear it by reading it (in this case using
the
command.
*CLS
Example Programs
STATus:MEASurement[:EVENt]?
C-5
srq%()
) or by sending

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

20152015p

Table of Contents