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:

需要更多信息。

如果您有任何疑问或需要了解更多信息,请填写此表格,我们会尽快回复您。

我同意通过以下方式接收罗德与施瓦茨提供的信息:

推广许可

我同意通过电子邮件或邮政信件接收罗德与施瓦茨公司和本网站版权标记指明的罗德与施瓦茨实体或子公司提供的营销或广告信息(例如特价优惠和折扣促销信息)。有关个人数据使用和撤销程序的详情,请参阅隐私声明推广许可

你的申请已提交,我们稍后会联系您。
An error is occurred, please try it again later.