5-8
IM WT310E-17EN
5.5
Synchronization with the Controller
The
STATus:FILTer1 FALL
command sets the
transition filter so that bit 0 in the extended event
(FILTer1) is set to 1 when bit 0 in the condition
register changes from 1 to 0, in other words when
the updating of measured data is finished.
The
STATus:EESE 1
command is used to only
change the status byte based on bit 0 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
:NUMeric[:NORMal]:VALue?
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:FILTer1 FALL;:STATus:
EESR?<PMT>
(Read the response to
STATus:EESR?
)
Loop
COMMunicate:WAIT 1<PMT>
:NUMeric[:NORMal]:VALue?<PMT>
(Read the response to
:
NUMeric[]NORMal]:VALue?
)
:STATus:EESR?<PMT>
(Read the response to
STATus:EESR?
)
(Return to
Loop
)
For a description of
STATus:FILTer1 FALL
and
STATus:EESR?
, see the previous section about the
extended event register.
The
COMMunicate:WAIT 1
command specifies
that the program will wait for bit 0 in the extended
event register to be set to 1.
:NUMeric[:NORMal]:VALue?
is not executed
until bit 0 in the extended event register becomes 1.
Overlap 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 commands of this instrument are sequential
commands. Even when only sequential commands
are available, there are times when it is necessary
to achieve synchronization to properly query the
measured data. For example, if you want to query
the most recent numeric data each time that the
measured data is updated, you can attempt to do
this by sending the
:NUMeric[:NORMal]:VALue?
command with some arbitrary timing. However,
because this instrument returns the current measured
data regardless of whether the measured data has
been updated since the previous query, this method
may return data that is the same as the previous data.
If this happens, you must use the following method to
synchronize with the end of measured data updating.
• Using the STATus:CONDition? Query
STATus:CONDition?
is used to query the contents
of the condition register (see page 7-5). You can
determine whether the measured data is being
updated by reading bit 0 of the condition register.
If bit 0 of the condition register is 1, the measured
data is being updated. If it is 0, the measured data
can be queried.
However, in the case of this instrument, it is difficult
to determine the updating of measured data with
STATus:CONDition?
because the period during
which bit 0 of the condition register remains at 1 is
very short.
• Using the Extended Event Register
The changes in the condition register can be
reflected in the extended event register (see page
6-5 for details).
Example
:STATus:FILTer1 FALL;:STATus:
EESE 1;EESR?;*SRE 8<PMT>
(Read the response to
STATus:EESR?
)
Loop
(Wait for a service request)
:NUMeric[:NORMal]:VALue?<PMT>
(Read the response to
:
NUMeric[]NORMal]:VALue?
)
:STATus:EESR?<PMT>
(Read the response to
STATus:EESR?
)
(Return to
Loop
)