GPIB Error Codes and Common Solutions (Part 2)

Publish Date: Feb 12, 2018 | 0 Ratings | 0.00 out of 5 | Print

Overview

This article provides solutions to GPIB error codes.

Table of Contents

  1. EDMA  (8)
  2. EOIP (10)
  3. ECAP (11)
  4. EFSO (12)
  5. EBUS (14)
  6. ESTB (15)
  7. ESRQ (16)
  8. ETAB (20)
  9. Additional Resources

Much of the following text is derived from the NI-488.2 User Manual for Windows (see Additional Resources):

 

1. EDMA  (8)

Error Condition: Error occurs while using DMA for data transfers.

Description: EDMA occurs if a system DMA error is encountered when the NI-488.2 driver attempts to transfer data over the GPIB using DMA.

Solutions:

  • You can correct the EDMA problem in hardware by using the GPIB Configuration Utility to reconfigure your GPIB board, so that it does not use a DMA resource.
  • You can correct the EDMA problem in software by using the ibdma function to disable DMA.

 

Back to Top

2. EOIP (10)

Error Condition: Function not allowed while asynchronous I/O is in progress.

Description: EOIP occurs when an asynchronous I/O operation has not finished before some other GPIB call is made. You can only use the ibstop, ibnotify, ibwait, or ibonl function during asynchronous I/O operations. If any other GPIB call is attempted, EOIP is returned.

Possible Cause: Calling any non-supported GPIB function calls during asynchronous I/O.

Solution: 

  • Resynchronize the driver and your application before making further GPIB calls. Resynchronization is accomplished by using one of the following functions: ibnotify (if the ibsta value passed to the ibnotify callback contains CMPL, the driver and application are resynchronized), ibwait (if the returned ibsta contains CMPL then the driver and application are resynchronized), ibstop (this cancels the asynchronous I/O operation, so that the driver and your application are resynchronized immediately), or ibonl (this cancels the asynchronous I/O operation and the interface is reset, so that the driver and your application are resynchronized immediately).

 

Back to Top

3. ECAP (11)

Error Condition: No capability for operation.

Description: ECAP results when your GPIB board lacks the ability to carry out an operation, or when a particular capability has been disabled in the software and a call is made that requires that capability.

Solution: 

  • Check the validity of the call, or make sure your GPIB interface board and driver has the needed capability.

 

Back to Top

4. EFSO (12)

Error Condition: File system error.

Description: EFSO results when an ibrdf or ibwrtf call encounters a problem performing a file operation. Specifically, this error indicates that the function is unable to open, create, seek, write, or close the file being accessed. The specific operating system error code for this condition is contained in ibcntl.

Solutions: 

  • Make sure the filename, path, and driver that you specified are correct.
  • Make sure that the access mode of the file is correct. For example, do not try to write to a read-only file.
  • Make sure there is enough room on the drive to hold the file.

 

Back to Top

5. EBUS (14)

Error Condition: Command byte transfer error.


Description: EBUS results when certain GPIB bus errors occur during device functions. All device functions send command bytes to perform addressing and other bus management operations. Devices are expected to accept these command bytes within the time limit specified by the default configuration or the ibtmo function. EBUS results if a timeout occurred while sending these command bytes.

Possible Cause: There are no GPIB devices attached to your GPIB controller. This can be because all of your instruments are turned off, one of your instruments is in error and is asserting a handshaking line, your GPIB cable is disconnected from your board, or your GPIB cable is broken.

Solutions:

  • Verify that all instruments are operating correctly, and that the ones you wish to communicate with are indeed powered-on.
  • Disconnect all instruments and connect them one at a time to determine if one instrument is causing the problem.
  • Check for loose or faulty cabling, and make sure that at least 2/3 of your instruments are powered-on (this is a requirement of the IEEE 488 specification).
  • If the timeout period is too short for the driver to send command bytes, increase the timeout period.

 

Back to Top

6. ESTB (15)

Error Condition: Serial poll status byte(s) lost.

Description: ESTB is reported only by the ibrsp function. ESTB indicates that one or more serial poll status bytes received from automatic serial polls have been discarded due to lack of storage space. Several older status bytes are available; however, the oldest is being returned by the ibrsp call.

Possible Cause: Instrument is repeatedly asserting the SRQ line.

Solutions:

  • Call ibrsp more frequently to empty the queue.
  • Disable autopolling with the ibconfig function (option IbcAUTOPOLL) or disable autopolling in the GPIB Configuration Utility.

 

Back to Top

7. ESRQ (16)

Error Condition: SRQ stuck in the ON position.

Description: ESRQ can only be returned by a device-level ibwait call, in which you have configured the ibwait function to return once the RSQ bit of the status word (ibsta) asserts. ESRQ indicates that a wait for RQS is not possible, because the GPIB SRQ line is stuck ON.

Possible Cause: This situation can be caused by the following events: a cabling problem may be causing the SRQ line to stay asserted; a device unknown to the software is asserting SRQ line - because the software does not know of this device, it can never serial poll the device to unassert the SRQ line; or a GPIB bus tester (or similar equipment) may be forcing the SRQ line to be asserted.

Solutions:

  • Check to see if one of the devices on the bus (even ones not used by your application) is asserting the SRQ line. Disconnect them from the GPIB, if necessary.
  • Inspect the GPIB cables and make sure that the connectors are seated properly.

 

Back to Top

8. ETAB (20)

Error Condition: Table problem.

Description: ETAB occurs only during the FindLstn and FindRQS functions. ETAB indicates that there was some problem with a table used by these functions.

Possible Cause: In the case of FindLstn, ETAB means that the given table did not have enough room to hold all of the addresses of the Listeners found. In the case of FindRQS, ETAB means that none of the devices in the given table were requesting service.

Solutions:

  • In the case of FindLstn, increase the size of the result arrays.
  • In the case of FindRQS, check to see if other devices not used by your application are asserting SRQ. Disconnect them from the GPIB, if necessary.

 

This troubleshooting information is continued in GPIB Error Codes and Common Solutions (Part 1) and GPIB Error Codes and Common Solutions (Part 3).

 

Back to Top

9. Additional Resources

Back to Top

Bookmark & Share


Ratings

Rate this document

Answered Your Question?
Yes No

Submit