12-8
IM 2558A-01EN
12.5 Synchronization with the Controller
• Using the Extended Event Register
The changes in the condition register can be
reflected in the extended event register (see section
14.4).
Example
:STATus:FILTer4
FALL;:STATus:EESE 8;
EESR?;*SRE 8;:SOURce:LEVel
1000V
<PMT>
(Read the response to
:STATus:EESR?
)
(Wait for a service request)
:SOURce:READ?<PMT>
The STATus:FILTer4 FALL command sets the
transition filter so that bit 3 in the extended event is
set to 1 when bit 3 in the condition register changes
from 1 to 0.
The
:STATus:EESE 4
command is used to
only change the status byte based on bit 3 in the
extended event register.
The
:STATus:EESR?
command is used to clear the
extended event register.
The
*SRE 8
command is used to generate service
requests based only on the changes in the extended
event register bits.
The
:SOURce:READ?
command is not executed
until a service request is generated.
• Using the COMMunicate:WAIT Command
The
COMMunicate:WAIT
command is used to wait
for a specific event to occur.
Example
:STATus:FILTer4
FALL;:STATus:EESR?;:
:SOURce:LEVel 1000V<PMT>
(Read the response to
:STATus:EESR?
)
:COMMunicate:WAIT
#H0008;:SOURce:READ?
<PMT>
For a description of
:STATus:FILTer4 FALL
and
:STATus:
EESR?
, see the previous section about the extended
event register.
The
:COMMunicate:WAIT #H0008
command
specifies that the program will wait for bit 3 in the
extended event register to be set to
1
.
:SOURce:READ?
is not executed until bit 3 in the
extended event register becomes 1.
Overlap Commands and Sequential
Commands
There are two types of commands: overlap and
sequential.
With overlap commands, the execution of the next
command may start before the execution of the
previous command is finished.
With sequential commands, the execution of the next
command is held until the execution of the previous
command is finished (even if multiple commands are
sent consecutively).
All 2558A commands are sequential commands.
Even when only sequential commands are available,
there are times when it is necessary to achieve
synchronization to properly query the output voltage
or current. For example, if you want to change the
output and query the most recent output value, sending
:SOURce:READ?
at arbitrary times will cause the
2558A to return values even before the specified output
is reached. This means that the correct output after the
change may not be received. If this happens, you must
use the following method to synchronize to the point in
time when the new output value is reached.
Achieving Synchronization without Using
Overlap Commands
• Using the STATus:CONDition? Query
STATus:CONDition?
is used to query the contents
of the condition register (see section 14.4). You can
determine whether the value has reached 90% as
a result of an output change by reading bit 3 of the
condition register. If bit 3 of the condition register is 1,
the output is less than 90%; if the bit is 0, the output
has reached 90%.
Example
:SOURce:LEVel 1000V<PMT>
:STATus:CONDition?<PMT>
(Read the response. If the bit 3 is 1,
return to the previous line.)
:SOURce:READ?<PMT>
:SOURce:READ?
is not executed until bit 3
in the condition register becomes 0.