7. Instrument Error Checking

Instrument error checking (further referred to as error checking) is the second most important aspect of your remote-control application. The goal of error checking is to assure error-free communication with your instrument, so that all desired settings have been correctly performed, and the measurement results obtained have been acquired using the desired settings.

A part of the instrument status subsystem is a error messages buffer called Error Queue. If you, for example, send a SCPI command that the instrument does not recognize, it generates a new entry in the Error queue. Error queue has a finite length, usually 10 entries and the oldest entry is discarded to make space for a new one.

Explained in chapter Measurement Sychronization, the Status Byte contains Bit 2 - Error Message Available. To find out whether the Error queue is empty, query the *STB? bit 2. If its value is 0, continue further with no additional actions. Otherwise, use the SCPI query SYSTem:ERRor?. The instrument returns the last generated error e.g. -113,”Undefined Header”. At the same time, this entry is deleted from the Error queue. To read all the entries, you need to call the SYSTem:ERRor? in a loop until you receive the response 0,”No Error” indicating that there are no more errors pending.

The following VISA Trace shows error checking in action:

  • The first command *RST is sent correctly, resulting in no error being generated.
  • The second command *RSaT is misspelled, which generates -113, "Undefined Header" error. The SYST:ERR? query is sent in a loop until the response is 0,"No Error"
RsVisaTraceTool log with error checking
RsVisaTraceTool log with error checking
Open Lightbox

If you use instrument drivers, the error checking is already implemented and performed in every function and after setting every Property (Attribute). This is very convenient, since you are immediately informed that the error that has occurred and after which command it has occurred. If you require maximum speed, the drivers offer the possibility to switch this feature OFF (see the first tip of the next Chapter 8: Speed Optimization).

If you use direct SCPI commands, you need to take care of the error checking yourself. We recommend to do the error checking after logical block of commands. Here, keep in mind that the more commands you send in one block, the harder it is to point to a specific command that has generated the error.

Let us take the example from the previous Chapter 6: Measurement Synchronization and focus only on the actions in the PC. Practical implementation of error checking we show in the examples that are linked in that chapter. The picture below shows the error checking performed after logical blocks of commands:

Request information

Do you have questions or need additional information? Simply fill out this form and we will get right back to you.

I want to receive information from Rohde & Schwarz via

Marketing permission

What does this mean in detail?

I agree that Rohde & Schwarz GmbH & Co. KG and the Rohde & Schwarz entity or subsidiary company mentioned in the imprint of this website, may contact me via the chosen channel (email or postal mail) for marketing and advertising purposes (e.g. information on special offers and discount promotions) related to, but not limited to, products and solutions in the fields of test and measurement, secure communications, monitoring and network testing, broadcast and media, and cybersecurity.

Your rights

This declaration of consent may be withdrawn at any time by sending an email with the subject "Unsubscribe" to news@rohde-schwarz.com. Additionally, a link to unsubscribe from future email advertisements is contained in each email sent. Further details on the use of personal data and the withdrawal procedure are set out in the Statement of Privacy.

Your request has been sent successfully. We will contact you shortly.
An error is occurred, please try it again later.