R&S SMC100A Instrument Model and Command Processing
1411.4060.32 5.21 E-1
Command Sequence and Command Synchronization
IEEE 488.2 defines a distinction between overlapped and sequential commands:
• An overlapped command is one which does not automatically finish executing before the next
command starts executing. Overlapped commands allow the program to do other tasks while being
executed.
• A sequential command is one which always finishes before the next command starts executing.
Sequential commands are not implemented in the generator, however the execution time of most
commands is so short that they act as sequential commands.
If a particular device action can be performed only after the execution of a previous overlapped
command, the controller must know when the overlapped command has finished. The necessary
interaction between the controller and the test instrument is called command synchronization.
Command Sequence
According to section "Database and Instrument Hardware", overlapped execution is possible in principle
for all commands of the signal generator. Equally, setting commands within one command line are not
necessarily serviced in the order in which they have been received.In order to make sure that
commands are actually carried out in a certain order, each command must be sent in a separate
command line (see also example in section "Database and Instrument Hardware").
Example : Commands and queries in one command line
The response from a query combined in a program message with commands that affect the queried
value is not predictable. Sending
SOURce:FREQuency 1E+9; LEVel -80
SOURce:FREQuency?
always returns 1E+9 (1GHz). When:SOURce:FREQuency 1E+9; FREQuency?; LEVel -80
is sent, however, the result is not specified by SCPI. The result could be the RF generator frequency
before the command was sent since the instrument might defer executing the individual commands until
a program message terminator is received. The result could also be 1GHz if the instrument executes
commands as they are received.
As a general rule, send commands and queries in different program messages.