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

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:






我同意,在网站Imprint中提到的Rohde & Schwarz GmbH & Co. KG和罗德与施瓦茨实体及分支机构 可出于营销和广告之目的(例如提供特价优惠和折扣促销信息)而通过选定渠道(电子邮件或邮政信件)与我联系并提供相关信息,包括但不限于测试与测量、安全通信、监测与网络测试、广播电视与媒体以及网络安全领域的产品和解决方案相关信息


您可以随时发送电子邮件至 news@rohde-schwarz.com 撤销此同意声明,邮件主题注明“Unsubscribe”即可。此外,我们发送给您的每一封电子邮件中都含有电子邮件取消订阅链接。有关个人数据使用和撤销程序的详情,请参阅“隐私声明”

An error is occurred, please try it again later.