216
S:\agilent\8920\8920b\PRGGUIDE\BOOK\SECTIONS\ieee.sec
IEEE 488.2 Common Commands
*OPC? (Operation
Complete Query)
The *OPC? query allows for synchronization between the Test Set and an external
controller by reading the Output Queue or by polling the Message Available
(MAV) bit in the Status Byte Register. The *OPC? query causes the Test Set to
place an ASCII character, 1, into its Output Queue when the Test Set completes all
pending operations. A consequence of this action is that the MAV bit in the Status
Byte Register is set to the 1 state.
NOTE: The Test Set contains signal generation and signal measurement instrumentation. The
instrument control processor is able to query the signal measurement instrumentation to
determine if a measurement cycle has completed. However, the instrument control
processor is not able to query the signal generation instrumentation to determine if the
signal(s) have settled. In order to ensure that all signals have settled to proper values, the
instrument control processor initiates a one-second delay upon receipt of the *OPC, *OPC?
and *WAI commands. In parallel with the one-second timer the instrument control
processor commands all active measurements to tell it when the measurement(s) are done.
When all active measurements are done and the one-second timer has elapsed, the *OPC,
*OPC? and *WAI commands are satisfied.
CAUTION: The *OPC? command should not be used for determining if a call processing state
command has completed successfully. Call processing subsystem states do not complete, a
state is ither active or inactive. Using the *OPC? command with a call processing
subsystem state command results in a deadlock condition. The control program will
continuously query the output queue for a 1, but a 1 will never be placed in the output queue
because the command never “completes.”
For example, the following command sequence should not be used:
OUTPUT 714;"CALLP:ACTive;*OPC?"
The *OPC? command should not be used with any of the following call
processing subsystem commands: :ACTive, :REGister, :PAGE, :HANDoff,
:RELease.
The Call Processing Subsystem Status Register Group should be used to control
program flow. Refer to Chapter 8, “Programming the Call Processing
Subsystem,” on page 425 for more information on controlling program flow
using the call processing subsystem status register group.