Remote Control Basics > Command Sequence and Synchronization > Preventing Overlapping Execution
Preventing Overlapping Execution

To prevent an overlapping execution of commands, one of the commands *OPC, *OPC? or *WAI can be used. All three commands cause a certain action only to be carried out after the hardware has been set. The controller can be forced to wait for the corresponding action to occur.

Synchronization using *OPC, *OPC? and *WAI

Command

Action

Programming the controller

*OPC

Sets the Operation Complete bit in the ESR after all previous commands have been executed.

  • Setting bit 0 in the ESE
  • Setting bit 5 in the SRE
  • Waiting for service request (SRQ)

*OPC?

Stops command processing until 1 is returned. This occurs when all pending operations are completed.

Send *OPC? directly after the command whose processing must be terminated before other commands can be executed.

*WAI

Stops further command processing until all commands sent before *WAI have been executed.

Send *WAI directly after the command whose processing must be terminated before other commands are executed.

Command synchronization using *WAI or *OPC? is a good choice if the overlapped command takes only little time to process. The two synchronization commands simply block overlapped execution of the command. Append the synchronization command to the overlapping command, for example:

SINGle; *OPC?

For time consuming overlapped commands, you can allow the controller or the instrument to do other useful work while waiting for command execution. Use one of the following methods:

*OPC with a service request
  1. Set the OPC mask bit (bit no. 0) in the ESE: *ESE 1

  2. Set bit no. 5 in the SRE: *SRE 32 to enable ESB service request.

  3. Send the overlapped command with *OPC.

  4. Wait for a service request.

    The service request indicates that the overlapped command has finished.

*OPC? with a service request
  1. Set bit no. 4 in the SRE: *SRE 16 to enable MAV service request.

  2. Send the overlapped command with *OPC?.

  3. Wait for a service request.

    The service request indicates that the overlapped command has finished.

Event status register (ESE)
  1. Set the OPC mask bit (bit no. 0) in the ESE: *ESE 1

  2. Send the overlapped command without *OPC, *OPC? or *WAI.

  3. Poll the operation complete state periodically (with a timer) using the sequence: *OPC; *ESR?

    A return value (LSB) of 1 indicates that the overlapped command has finished.

 


Imprint | Statement of Privacy | Terms & Conditions© 2017 ROHDE & SCHWARZ